計算機相關理論基礎

1、爲什麼要學習計算機基礎?

  基礎不牢地動山搖,基礎知識很重要。就像建房子同樣,先要打好地基,再去往上添磚加瓦。    c++

  世界上有不少種語言,好比:漢語,英語,阿拉伯語等等衆多的語言。要想用這些語言去和人溝通,若是你想和英國人說話,你必須得會英語吧。而計算機也有它本身的語言,要想讓計算機幫助咱們作事情,就須要和它進行溝通和交流,就得懂得計算機語言吧,也就是編程。固然計算機也有不少語言,好比:C,Java,PHP,Python,C#,c++等。因此咱們就先從學習基礎知識開始。每每學習基礎理論知識是一個很枯燥的過程,但仍是得學。要把它當成本身的興趣,一點一點的去投入,相信你會是很棒的。程序員

  用編程語言來寫程序,最終開發的結果就是一個軟件。就像你們都知道的QQ,騰訊視頻,酷狗音樂等一系列軟件。這些軟件要想運行必須得有系統控制它吧。固然,有人會問:爲何要用操做系統呢?固然,好久之前的那些程序員確實是在沒有操做環境下,編程語言是操做硬件來編寫的。你可能以爲沒問題,可是其實問題很嚴重。若是一直像之前那樣會嚴重影響效率的。操做系統是出如今硬件之上的,是用來控制硬件的。因此,咱們開發時只須要調用操做系統爲咱們提供的簡單的接口就能夠了。數據庫

  

   如上圖所示,計算機的系統能夠分爲三大塊:硬件,操做系統,應用程序。要想學習軟件知識,我想那些硬件的知識或多或少仍是得了解點的,如今咱們就來談談硬件一類的知識。編程

2、計算機硬件介紹

  1. 硬件:爲了運行軟件給它的一些指令。咱們能夠優先從硬件中提取出三個主要的東西,分別是: CPU,內存,硬盤緩存

       CPU:在現實生活中,人腦是用來計算的,在計算機中,用來計算的是什麼呢?固然是CPU了。多數CPU都有兩種模式,即內核態與用戶態。這裏的即內核態與用戶態將會在下面的內容中講到。若是咱們把計算機理解爲人的大腦,咱們能夠總結爲幾句話:框架

  # CPU是人的大腦,負責運算
  # 內存是人的記憶,負責臨時存儲
  # 硬盤是人的筆記本,負責永久存儲
  # 輸入設備是人的耳朵或眼睛,負責接受外部的信息傳給CPU
  # 以上全部的設備都經過總線鏈接,總線至關於人的神經    

 

                                                                                            總線示意圖編程語言

3、處理器(寄存器及內核態與用戶態切換)

  1. 計算機的核心是CPU,它從內存中取指令 ---> 解碼 ---> 執行,而後再取指令,解碼,執行,周而復始,直至整個程序被執行完成。學習

  2. 寄存器是一個存儲設備,最快的一種存儲設備就是寄存器。spa

       3. 寄存器的分類操作系統

  # ①通用寄存器:用來保存變量和臨時結果的。

  # ②程序計數器:它保存了將要取出的下一條指令的內存地址。在指令取出後,程序計算器就被更新以便執行後期的指令

  # ③堆棧指針:它指向內存中當前棧的頂端。該棧包含已經進入可是尚未退出的每一個過程當中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變量
以及那些沒有保存在寄存器中的臨時變量
  # ④程序狀態字寄存器(Program Status Word,簡稱PSW):這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各類其餘控制位。
用戶一般讀入整個PSW,可是隻對其中少許的字段寫入。在系統調用和I/O中,PSW很是重要。

  4. 內核態與用戶態

       多數CPU都有兩種模式,即內核態與用戶態。        

    ①當cpu處於內核態時,運行的是操做系統,能控制硬件(能夠獲取全部cpu的指令集)     

    ②當cpu處於用戶態時,運行的是用戶軟件,不能控制硬件(能夠獲取全部cpu的指令集中的一個子集,該子集不包括操做硬件的指令集)

  有些人可能會含糊什麼是內核態,什麼是用戶態?下面解釋一下:  

    # 內核態:當cpu在內核態運行時,cpu能夠執行指令集中全部的指令,很明顯,全部的指令中包含了使用硬件的全部功能,(操做系統在內核態下運行,從而能夠訪問整個硬件)
因此,歸根結底也就是上面①解釋的那樣
# 用戶態:用戶程序在用戶態下運行,僅僅只能執行cpu整個指令集的一個子集,該子集中不包含操做硬件功能的部分,所以,通常狀況下,在用戶態中有關I/O和內存保護
(操做系統佔用的內存是受保護的,不能被別的程序佔用),固然,在用戶態下,將PSW中的模式設置成內核態也是禁止的。

  5. 內核態與用戶態切換

       用戶態下工做的軟件是不能之間操做硬件的,可是像咱們的一些軟件,好比暴風音影啊一類的軟件,咱們要想從磁盤中讀取一個電影文件,那就得從用戶態切換成內核態,爲此,用戶程序必須使用系統調用(system call),系統調用陷入內核並調用操做系統,TRAP指令把用戶態切換成內核態,並啓用操做系統從而得到服務。

4、存儲器系列

       1.  計算機中第二重要的就是存儲了,全部人都意淫着存儲:速度快(這樣cpu的等待存儲器的延遲就下降了)+容量大+價錢便宜。而後同時兼備三者是不可能的,因此有了以下的不一樣的處理方式

  由上圖能夠很清楚的看見寄存器存儲是速度很是快的,可是它的容量卻不多。下來就是高速緩存了。我就不一一介紹了,我相信你們應該能夠看得懂這個圖。

L1緩存:

  寄存器即L1緩存:用與cpu相同材質製造,與cpu同樣快,於是cpu訪問它無時延,典型容量是:在32位cpu中爲32*32,在64位cpu中爲64*64,在兩種狀況下容量均<1KB。

L2緩存:

  高速緩存即L2緩存:主要由硬件控制高速緩存的存取,內存中有高速緩存行按照0~64字節爲行0,64~127爲行1。。。最經常使用的高速緩存行放置在cpu內部或者很是接近cpu的高速緩存中。當某個程序須要讀一個存儲字時,高速緩存硬件檢查所須要的高速緩存行是否在高速緩存中。

內存(RAM):

  主存一般稱爲隨機訪問存儲RAM,就是咱們一般所說的內存,容量一直在不斷攀升,全部不能再高速緩存中找到的,都會到主存中找,主存是易失性存儲,斷電後數據所有消失

EEPROM和閃存、CMOS:

  EEPROM(Electrically Erasable PROM,電可擦除可編程ROM)和閃存(flash memory)也是非易失性的。還有一類存儲器就是CMOS,它是易失性的,許多計算機利用CMOS存儲器來保持當前時間和日期。CMOS存儲器和遞增時間的電路由一小塊電池驅動,因此,即便計算機沒有加電,時間也仍然能夠正確地更新,除此以外CMOS還能夠保存配置的參數,好比,哪個是啓動磁盤等,之因此採用CMOS是由於它耗電很是少,一塊工廠原裝電池每每能使用若干年,可是當電池失效時,相關的配置和時間等都將丟失。

5、磁盤

    # 1.磁盤由磁頭,磁道,扇區組成的。
    # 2.磁道:每一個磁頭能夠讀取一段換新區域。把一個戈丁手臂位置上因此的磁道合起來,組成一個柱面
    # 3.每一個磁道劃成若干扇區,扇區典型的值是512字節。
    # 4.數據都存放於一段一段的扇區,即磁道這個圓圈的一小段圓圈,從磁盤讀取一段數據須要經歷尋道時間和延遲時間,

 

那什麼是尋道時間和延遲時間呢?

    平均尋道時間:機械手臂從一個柱面隨機移動到相鄰的柱面的時間成爲尋到時間,找到了磁道就覺得着招到了數據所在的那個圈圈,可是還不知道數據具體這個圓圈的具體位置

    平均延遲時間:機械臂到達正確的磁道以後還必須等待旋轉到數據所在的扇區下,這段時間成爲延遲時間

 

 

6、磁帶

1.有些人會想磁帶是用來幹什麼的呢?固然,它也是內存之一,是用來存儲東西的,它的存儲量是至關大的,並且價錢也便宜。當趕上火災等緊急狀況時,能夠用磁帶來存儲咱們的重要文件。經常用來作備份(常見於大型數據庫系統中)。可是,它也有缺點,就是運行速度特別慢,效率低。

2.cpu和存儲器並非操做系統惟一須要管理的資源,I/O設備也是很是重要的一環。I/O設備通常包括兩個部分:設備控制器和設備自己

  控制器的功能:一般狀況下對設備的控制是很是複雜和具體的,控制器的任務就是爲操做系統屏蔽這些複雜而具體的工做,提供給操做系統一個簡單而清晰的接口

  設備自己:有相對簡單的接口且標準的,這樣你們均可覺得其編寫驅動程序了。要想調用設備,必須根據該接口編寫複雜而具體的程序,因而有了控制器提供設備驅動接口給操做系統。必須把設備驅動程序安裝到操做系統中。

7、總線

  北橋即PCI橋:鏈接高速設備

  南橋即ISA橋:鏈接慢速設備

8、操做系統的啓動流程

  1.計算機加電

  2.BIOS開始運行,檢測硬件:cpu、內存、硬盤等

  3.BIOS讀取CMOS存儲器中的參數,選擇啓動設備

  4.從啓動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446爲引導信息,後64爲分區信息,最後兩個爲標誌位)

  5.根據分區信息讀入bootloader啓動裝載模塊,啓動操做系統

  6.而後操做系統詢問BIOS,以得到配置信息。對於每種設備,系統會檢查其設備驅動程序是否存在,若是沒有,系統則會要求用戶按照設備驅動程序。一旦有了所有的設備驅動程序,操做系統就將它們調入內核。而後初始有關的表格(如進程表),穿件須要的進程,並在每一個終端上啓動登陸程序或GUI

9、應用程序的啓動流程

前提:應用程序是運行於操做系統之上的

流程:

  1.雙擊快捷方式

  2.告訴操做系統一個文件路徑

  3.操做系統從硬盤讀取文件到內存中

  4.cpu從內存中讀取數據執行

 10、白話計算機硬件

  主要包括:輸入輸出設備、CPU、硬盤、內存、操做系統、應用程序

  輸入: 與人做對比,至關於人的眼睛,耳朵

  輸出: (嘴巴)

  CPU:中央處理器,處理各類數據(人的大腦)

  內存:臨時記憶

  硬盤:永久記憶

  操做系統:控制計算機的工做流程

  應用程序:安裝在操做系統上的軟件

相關文章
相關標籤/搜索