計算機基礎之計算機硬件系統

一.計算機硬件系統概述

所謂計算機硬件系統,就是指構成計算機看得見的,摸得着的實際物理設備。html

常見的計算機硬件組成主要由下圖各部件組成:java

計算機基礎之計算機硬件系統

現代計算機的結構更復雜,包括多重總線。python

簡單打個比方,方便你們理解計算機各部件的主要功能:linux

cpu是人的大腦,負責運算;程序員

內存是人的記憶,負責臨時存儲;數據庫

硬盤是人的筆記本,負責永久存儲;編程

輸入設備是耳朵或眼睛,負責接收外部的信息傳給cpu;緩存

輸出設備是你的表情,負責通過處理後輸出的結果;app

以上全部的設備都經過總線鏈接,總線至關於人的神經。框架

二.編程語言的做用及與操做系統和硬件的關係

編程語言就是程序員與計算機溝通的介質,經過編程語言可使得計算機可以根據程序員的指令一步一步去工做,完成某種特定的任務。

程序員用編程語言寫程序,最終開發出的結果就是一個軟件,軟件不能直接操做硬件,必須運行在操做系統之上,操做系統是用來管理計算機硬件設備的。操做系統是電腦的軟件基礎。它和電腦的硬件組成了系統。使電腦可以爲人類工做。

三.應用程序、操做系統、硬件之間的關係

應用程序的功能執行須要經過操做硬件之間的相互配合才能得以實現,可是應用程序不能直接操做硬件,只能經過調用操做系統,讓應用程序的功能經過操做系統來操做相應的硬件才能得以實現其功能。

四.CPU、內存、磁盤之間的關係

1.CPU即中央處理器, CPU從內存或緩存中取出指令,放入指令寄存器,並對指令譯碼分解成一系列的微操做,而後發出各類控制命令,執行微操做系列,從而完成一條指令的執行。

2.可是,CPU並不能直接調用存儲在硬盤上的系統、程序和數據,必須首先將硬盤的有關內容存儲在內存中,這樣才能被CPU讀取運行。於是,內存(即物理內存,是相對於硬盤這個「外存」而言)做爲硬盤和CPU的「中轉站」,對電腦運行速度有較大影響。

3.當運行數據超出物理內存容納限度的時候,部分數據就會自行「溢出」,這時系統就會將硬盤上的部分空間模擬成內存——虛擬內存,並將暫時不運行的程序或不使用的數據存放到這部分空間之中,等待須要的時候方便及時調用。

4.因爲內存是帶電存儲的(一旦斷電數據就會消失),並且容量有限,因此要長時間儲存程序或數據就須要使用硬盤(外存儲器)。硬盤也會影響系統速度,由於系統從硬盤中讀取數據並經過總線存入內存的速度也會影響系統運行的快慢。

五. CPU與寄存器,內核態與用戶態及如何切換

因CPU訪問內存以獲得指令或數據的時間比cpu執行指令花費的時間要長得多,因此,全部CPU內部都有一些用來保存關鍵變量和臨時數據的寄存器。

寄存器是用與cpu相同材質製造,與cpu同樣快,於是cpu訪問它無時延。用來避免內存速率比CPU慢幾個數量級的瓶頸問題。

寄存器的分類:

 a.通用寄存器:用來保存變量和臨時結果

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

 c.堆棧指針: 指向內存中當前棧的頂端。該棧包含已經進入可是尚未退出的每一個過程當中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變量以及那些沒有保存在寄存器中的臨時變量。   

 d.程序狀態字寄存器(Program Status Word,PSW): 這個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各類其餘控制位。用戶一般讀入整個PSW,可是隻對其中少許的字段寫入。在系統調用和I/O中,PSW很是重要。

內核態與用戶態

  除了在嵌入式系統中的很是簡答的CPU以外,多數CPU都有兩種模式,即內核態與用戶態。一般,PSW中有一個二進制位控制這兩種模式。

  內核態:運行操做系統內核,能夠操做硬件,能夠獲取全部CPU的指令集。(操做系統在內核態下運行,從而能夠訪問整個硬件)

  用戶態:運行應用程序,不能夠操做硬件,能夠獲取全部CPU的指令集的一個子集,該子集不包括操做硬件的的指令集。(應用程序在用戶態下運行)

內核態與用戶態切換  

全部用戶程序都是運行在用戶態的,可是有時候程序確實須要作一些內核態的事情,例如從硬盤讀取數據, 或者從鍵盤獲取輸入等。 而惟一能夠作這些事情的就是操做系統, 因此此時用戶程序就須要使用系統調用,操做系統請求以程序的名義來執行這些操做,此時就會從用戶態切換到內核態。

六.存儲器系列,L1緩存,L2緩存,內存(RAM),EEPROM和閃存,CMOS與BIOS電池

存儲器包括:寄存器,高速緩存、內存、磁盤、磁帶。

L1緩存即寄存器:

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

L2緩存即高速緩存:

主要由硬件控制高速緩存的存取,內存中有高速緩存行按照0~64字節爲行0,64~127爲行1。。。最經常使用的高速緩存行放置在cpu內部或者很是接近cpu的高速緩存中。L1與L2的差異在於對cpu對L1的訪問無時間延遲,而對L2的訪問則有1-2個時鐘週期(即1-2ns)的延遲。

內存:

常稱爲隨機訪問存儲RAM,全部的程序都是在內存中運行的,計算機在運行中,操做系統也會在內存中運行。全部不能再高速緩存中找到的,都會到主存中找,主存是易失性存儲,斷電後數據所有消失,除了主存RAM以外,許多計算機已經在使用少許的非易失性隨機訪問存儲如ROM(Read Only Memory,ROM),在電源切斷以後,非易失性存儲的內容並不會丟失,ROM只讀存儲器在工廠中就被編程完畢,而後不再能修改。ROM速度快且便宜,在有些計算機中,用於啓動計算機的引導加載模塊就存放在ROM中,另一些I/O卡也採用ROM處理底層設備的控制。

內存的速度會慢於L1和L2緩存,CPU訪問的前後順序是先訪問L1緩存嗎,而後訪問L2緩存,再訪問內存,最後訪問硬盤。

EEPROM閃存都是一種儲存器,能夠擦除和重寫,可是重寫的速度介於內存和磁盤之間。被應用於便攜式電子設備的存儲媒介,磁盤,固態硬盤等,都是應用閃存。

CMOS也是一類存儲介質,它是易失性的,斷電既消失,可是由於它的耗電亮很小,因此採用它來保存一些系統的參數配置,一塊電池能使用若干年。

七.磁盤結構,平均尋道時間,平均延遲時間,虛擬內存與MMU

計算機基礎之計算機硬件系統

計算機基礎之計算機硬件系統

磁盤低速的緣由是由於它一種機械裝置,在磁盤中有一個或多個金屬盤片,它們以5400,7200或10800rpm(RPM =revolutions per minute 每分鐘多少轉 )的速度旋轉。

信息寫在磁盤上的一些列的同心圓上,是一連串的2進制位(稱爲bit位),爲了統計方法,8個bit稱爲一個字節bytes,1024bytes=1k,1024k=1M,1024M=1G,因此咱們平時所說的磁盤容量最終指的就是磁盤能寫多少個2進制位。

每一個磁頭能夠讀取一段換新區域,稱爲磁道

把一個戈丁手臂位置上因此的磁道合起來,組成一個柱面

每一個磁道劃成若干扇區,扇區典型的值是512字節

數據都存放於一段一段的扇區,即磁道這個圓圈的一小段圓圈,從磁盤讀取一段數據須要經歷尋道時間和延遲時間

平均尋道時間

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

平均延遲時間

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

虛擬內存:

許多計算機支持虛擬內存機制,該機制使計算機能夠運行大於物理內存的程序,方法是將正在使用的程序放入內存取執行,而暫時不須要執行的程序放到磁盤的某塊地方,這塊地方成爲虛擬內存,在linux中成爲swap,這種機制的核心在於快速地映射內存地址,由cpu中的一個部件負責,成爲存儲器管理單元(Memory Management Unit, MMU)

PS:從一個程序切換到另一個程序,成爲上下文切換(context switch),緩存和MMU的出現提高了系統的性能,尤爲是上下文切換

八.磁帶

在價錢相同的狀況下比硬盤擁有更高的存儲容量,雖然速度低於磁盤,可是因其大容量,在地震水災火災時可移動性強等特性,常被用來作備份。(常見於大型數據庫系統中)

九. 設備驅動與控制器

控制器:是插在主板上的一塊芯片或一組芯片(硬盤,網卡,聲卡等都須要插到一個口上,這個口連的即是控制器),控制器負責控制鏈接的設備,它從操做系統接收命令,好比讀硬盤數據,而後就對硬盤設備發起讀請求來讀出內容。控制器的任務就是爲操做系統屏蔽這些複雜而具體的工做,提供給操做系統一個簡單而清晰的接口。

設備驅動:要想調用設備,必須根據該接口編寫複雜而具體的程序,因而有了控制器提供設備驅動接口給操做系統。必須把設備驅動程序安裝到操做系統中。設備驅動是操做系統和輸入輸出設備間的粘合劑。驅動負責將操做系統的請求傳輸,轉化爲特定物理設備控制器可以理解的命令。

十. 總線與南橋和北橋

1.總線將計算機內部各部件鏈接,而且實現了計算機各功能部件之間的信息傳輸。

2.南橋即ISA橋:鏈接慢速設備,硬盤,顯示器等設備。

3.北橋即PCI橋:鏈接高速設備,CPU,內存等設備。

十一. 操做系統的啓動流程

在計算機的主板上有一個基本的輸入輸出程序(Basic  Input Output system)

BIOS就至關於一個小的操做系統,它有底層的I/O軟件,包括讀鍵盤,寫屏幕,進行磁盤I/O,該程序存放於一非易失性閃存RAM中。

1.計算機加電

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

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

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

5.根據分區信息讀入bootloader(grub),選擇內核(kernel),找到內核後將內核代碼讀到內存裏,而後CPU加載運行,啓動操做系統

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

十二.應用程序的啓動流程

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

舉例:啓動暴風影音

雙擊快捷方式-->告訴操做系統一個文件路徑-->操做系統從硬盤讀取文件內容到內存中-->CPU從內存讀取數據執行

原文連接:

https://www.cnblogs.com/huchong/p/7152292.html

 


 

計算機基礎之計算機硬件系統

識別圖中二維碼,領取python全套視頻資料

相關文章
相關標籤/搜索