【操作系統】第三章:計算機體系結構(Part1)

OS.StudyLog.Ch3.Computer architecture and memory layering system.計算機體系結構及內存分層體系

計算機體系結構

在這裏插入圖片描述
計算機體系結構分爲三大塊內容。如圖所示
CPU:CPU完成了整個程序、軟件的控制
內存:放置程序的代碼和它所處理的數據
設備:各種外設,配合執行一系列額外的工作(比如保存數據到硬盤中,需要鼠標點點點)。輸入輸出(IO操作)
在這裏插入圖片描述

內存的層次結構

在這裏插入圖片描述
內存層級結構:就是CPU要訪問的指令或者數據他所在的位置在什麼地方。從上到下,CPU可以訪問的數據是寄存器和閃存。這兩部分是位於CPU芯片內部的,操作系統不能對其直接管理。他們速度很快容量很小,所以訪問的數據有限。爲此我們需要主存(物理內存),主存需要存放OS本身和OS運行的代碼,主存的容量比寄存器和閃存大很多,速度相對比較慢。主存一掉電,其中的數據就會丟失,而且主存容量仍然小於硬盤容量,所以我們需要保存數據到硬盤上。
所以越靠近CPU,讀取速度越快,存儲容量越小。

操作系統在內存中的目標

在這裏插入圖片描述
1.抽象:應用程序在內存中運行時,由於OS的管理,能夠不用考慮過多的底層細節(不需考慮物理內存在哪,外設在哪)只需要掌握一個連續的地址空間(邏輯地址空間)。
2.保護:內存中可以同時運行多個應用程序,多個不同的應用程序相互之間可能會訪問彼此的地址空間,所以我們需要隔離這些應用程序隔離。這個機制的實現就需要OS來完成。
3共享:訪問相同內存,使進程之間可以安全可靠的數據傳遞。
4.虛擬化:當內存中儲存程序比較多時,很容易出現內存不夠的情況。所以我們需要更多的地址空間,我們把最需要放到內存中的數據放在內存中,把那些沒那麼必要的程序暫時放到硬盤中。這個管理過程我們希望對應用程序透明,同時令應用程序儘量用所需要的數據和空間。這個過程就是虛擬化。
在這裏插入圖片描述

地址空間&地址生成

在這裏插入圖片描述
有兩種地址空間。物理/邏輯地址空間(連續的物理地址空間)
物理地址空間和硬件直接對應,比如內存條代表的主存和硬盤代表的另一種存儲空間。
邏輯內存空間是一個運行中的程序所看到的內存空間,相對而言嗎他看到的地址空間更加簡單(線性的),我們的應用程序因此很容易去訪問和做控制及數據訪問操作。圖中的指令最終一定會放在主存或者硬盤中,現在位於箭頭指向的程序中的某一位置。這個映射關係是需要OS進行管理的。
我們在機器裏,總線上看到的地址是物理地址。所有的物理地址構成的空間由硬件支持的。
邏輯地址空間的生成
在這裏插入圖片描述
C程序變爲彙編語言再變成機器語言,他會把編的函數名和符號名變成新的地址。.o程序起始地址全都是從零開始,裏面的函數名和符號名都會變成相應的地址。另外一個編譯過程中用到的工具lniker會把多個.0程序變成單一的應用程序,這個程序可以在內存中執行但是目前還存在硬盤中的程序,最後一步,放在硬盤中的執行程序再通過loader放到內存中去運行,這一步需要去完成一個分配邏輯地址的工作。相對於執行程序而言,地址會有一定的偏移量,可以爲0,然後所有的程序會依照偏移量進行正確的訪問和指令的操作。
程序放到內存中去後,他仍然是一個邏輯地址,而不是物理地址。
在這裏插入圖片描述

地址空間的定義

在這裏插入圖片描述
映射關係完成了一個從邏輯地址到物理地址的映射,一個邏輯地址具體的對應的物理地址知道了的話,就可以從具體的外設中讀寫數據。
流程描述:當CPU需要某條指令時,當前指令需要ALU,會將相應參數傳給ALU。CPU裏的MMU會去查找邏輯地址的映射表中是否有對應的物理地址,如果有直接找到對應地址;沒有的話,就會去內存中找。找到後會給CPU發出請求,需要某條物理地址的指令內容,主存會把內存的內容通過總線傳給CPU,然後CPU開始執行指令。這過程裏OS起到的作用就是:1,在這些步驟之前需要建好這個映射關係表,這就是物理地址生成的過程。這個關係可以放在內存中由CPU來緩存,可以加快這個訪問的過程。

操作系統的作用

在這裏插入圖片描述
操作系統需要確保放到內存中的程序之間不能相互干擾,爲此需要保證每個程序訪問的地址程序是合法的(限制在約束範圍之內的)。限制和約束也由OS完成。
一個程序可以有效訪問的地址空間:1,起始地址;2,長度(有一塊區域屬於這個程序的合理訪問區間,超出這個範圍,那麼這個程序的訪問就不合法)。邏輯地址如果不滿足區域限制,CPU會產生一個內存訪問異常,OS將會進一步處理這個問題;滿足則正常的去找到對應物理地址的位置,從中取出指令的數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章