系統的硬件組成
1.總線(xiàn)
2.CPU
3.內存
4.主板
5.光驅
6.硬盤(pán)
7.鼠標
8.鍵盤(pán)
9.顯示器
這是我所能一下子想到的一臺完整PC的硬件了,圖形表示:

總線(xiàn):貫穿整個(gè)系統的是一組電子管道,稱(chēng)為總線(xiàn),它攜帶信息字節并負責在各個(gè)部件之間傳遞。通??偩€(xiàn),被設計成傳送定長(cháng)的字節快,也成為”字“。字中的字節數是一個(gè)基本的系統參數。
I/O設備:圖中下面4個(gè)都屬于輸入輸出設備,磁盤(pán)作為存儲設置,也可以讀取。
每個(gè)I/O設備都是通過(guò)一個(gè)控制器或適配器與I/O總線(xiàn)連接起來(lái),控制總線(xiàn)和適配器之間的區別,在于他們的組成方式,。無(wú)論如何,他們的功能都是在I/O總線(xiàn)和I/O設備之間傳遞信息。
主存(內存):
是一個(gè)臨時(shí)的存儲設備,在處理器執行程序時(shí),它被用來(lái)存放程序和程序處理的數據。物理上來(lái)說(shuō),主存是一組DRAM(動(dòng)態(tài)隨機訪(fǎng)問(wèn)存儲器)芯片組成的。邏輯上來(lái)說(shuō),存儲器是一個(gè)由一個(gè)線(xiàn)性的字節數組組成的,每個(gè)字節都有自己唯一的地址(數組索引),這些地址都是從0開(kāi)始。一般來(lái)說(shuō),組成程序的每條機器指令都由不定量的字節構成。
處理器:CPU
處理器的核心是一個(gè)被稱(chēng)為程序計數器(PC)的字長(cháng)大小的存儲設備(或者說(shuō)寄存器register)。在任何一個(gè)時(shí)間點(diǎn)上,PC都指向主存中的某條機器語(yǔ)言指令。
緩存
根據機械原理,較大的存儲設備,要比較小的存儲設備運行得慢,而塊數設備的造價(jià)高于低速同類(lèi)設備。比如,一個(gè)典型系統上的磁盤(pán)驅動(dòng)器可能要比主存大100倍,但是對處理器而言,從磁盤(pán)驅動(dòng)器上讀取一個(gè)字的時(shí)間開(kāi)銷(xiāo)要比從主存中讀取的開(kāi)銷(xiāo)大00萬(wàn)倍。

處理器芯片上的L1高速緩存的容量可以達到數萬(wàn)字節,訪(fǎng)問(wèn)速度幾乎和寄存器堆一樣快,一個(gè)容量為數十萬(wàn)到數百萬(wàn)的更大的L2高速緩存是通過(guò)一條特殊的總線(xiàn)連接到處理器的。進(jìn)程訪(fǎng)問(wèn)L2的時(shí)間要比訪(fǎng)問(wèn)L1的開(kāi)銷(xiāo)大5倍,但是仍然比訪(fǎng)問(wèn)主存的時(shí)間快5~10倍。L1L2采用的是一種叫做靜態(tài)隨機訪(fǎng)問(wèn)技術(shù)SRAM實(shí)現的。
操作系統管理硬件

虛擬存儲器
虛擬存儲器是一個(gè)抽象的概念,它為每個(gè)進(jìn)程提供了一個(gè)假象,好像每個(gè)進(jìn)程都在獨占地使用主存,每個(gè)進(jìn)程看到的存儲器都是一致的,稱(chēng)之為虛擬地址空間。

程序代碼和數據:代碼從同一固定地址開(kāi)始,緊接著(zhù)是和C全局變量對應的數據區代碼和數據區是由可執行目標文件直接初始化的。
堆:代碼和數據區后緊隨的運行時(shí)堆,代碼和數據區是在進(jìn)程一旦開(kāi)始就被執行了大小的,堆可以動(dòng)態(tài)擴展
共享庫:在地址空間的中間附近是一塊用來(lái)存放像C標準庫和數學(xué)庫這樣的共享庫
棧:位于用戶(hù)虛擬地址空間頂部的是用戶(hù)棧,編譯器用它來(lái)實(shí)現函數調用。和堆一樣,用戶(hù)棧在程序執行期間,可以動(dòng)態(tài)地擴展和收縮。
內核虛擬存儲器:內核是操作系統總是駐留在存儲器中的部分,地址空間是頂部的1/4部分是為內核預留的。
程序的執行,基本
從系統通電開(kāi)始,到系統斷電,處理器一直在不斷地重復執行基本任務(wù):從程序計數器(PC)指向的存儲器讀取指令,解釋指令中的位,執行指令指示的簡(jiǎn)單操作,然后更新程序技術(shù)區指向下一條指令,而這條指令并不一定在存儲器中和剛剛執行的指令相鄰。
這樣的簡(jiǎn)單操作,在主存/寄存器堆(register file)、算術(shù)邏輯單元(ALU)之間循環(huán)。寄存器是一個(gè)小的存儲設備,由一些字長(cháng)大小的寄存器組成,這些寄存器每個(gè)都有唯一的名字。ALU計算新的數據和地址值,下面是一個(gè)CPU指令,在要求下可能會(huì )執行的操作:
1.加載:從主存拷貝一個(gè)字節或者一個(gè)字到寄存器,覆蓋寄存器原來(lái)的內容
2.存儲:從寄存器拷貝到一個(gè)字節或一個(gè)字到主存的某個(gè)位置,覆蓋這個(gè)位置上原來(lái)的內容。
3.更新:拷貝兩個(gè)寄存器的內容到ALU,ALU將兩個(gè)字相加,并將結果存放到寄存器中,覆蓋該寄存器中原來(lái)的內容
4.I/O讀:從一個(gè)I/O設備中拷貝一個(gè)字節或者一個(gè)字到一個(gè)寄存器
5.I/O寫(xiě):從一個(gè)寄存器中拷貝一個(gè)字節或者一個(gè)字寫(xiě)到一個(gè)I/O設備
6.跳轉:從指令本身抽取一個(gè)字,并將這個(gè)字拷貝到程序計數器中,覆蓋PC中原來(lái)的值
聯(lián)系客服