在計算機系統中程序之間是共享物理記憶體和其他系統資源的。為了更加有效管理記憶體和減少出錯,現代系統提供了一種對主存的抽象概念,叫做虛擬記憶體,它為每個程序提供了乙個大的、私有的和一致的記憶體空間。物理記憶體通常是具有掉電就丟失的高速ram構成,而虛擬記憶體通常是指在硬碟上開闢的一塊區域。虛擬記憶體有三個主要的作用:
1.它將主存看成是乙個儲存磁碟上的位址空間資料的快取記憶體,在主存中只儲存活動區域,根據需要在主存和磁碟之間來回交換資料,這樣可以高效利用記憶體。
2.它為每個程序提供了一致的位址空間,這樣便於記憶體管理,以及便於鏈結器鏈結和載入器載入**到記憶體中執行。
3.虛擬記憶體還可以保證每乙個程序的位址空間不被其他的程序破壞。
物理定址
cpu通過直接傳送實體地址到主存讀取所在位址的資料內容的方式稱為物理定址,物理定址速度快,簡單直接,在大多數嵌入式處理器中都採用的是這種方式定址。
虛擬定址
在虛擬定址系統中,cpu將虛擬位址傳遞給記憶體管理單元mmu,mmu將虛擬位址翻譯成實體地址傳遞給主存來讀取對應實體地址的資料內容到cpu。這種定址方式常用於比較複雜的系統中,cpu中必須具有硬體mmu才能使用這種定址方式。一般能夠跑作業系統的cpu都具有硬體mmu並且採用這種定址方式。
虛擬頁面
虛擬定址過程實際上是乙個從虛擬位址空間到實體地址空間的對映。虛擬位址空間對應的是磁碟上一塊連續的位址空間。實體地址空間對應的是主存的位址空間。通常將一塊大的虛擬空間分割成乙個個等大小稱為虛擬頁面(vp)的塊,將物理空間也分割成和vp等大小的物理頁(pp)。
vp有三種狀態:
物理頁面
為了使系統判定乙個虛擬頁面是否已經快取到記憶體中,在物理記憶體上開闢了一塊區域稱為頁表(page table)用來存放一組頁表條目(pte),pte實際上反映的是虛擬位址到實體地址的對映以及訪問物理頁面的一組狀態控制。
每個pte條目由有效位和乙個位址域構成,有效位表明該位置對應虛擬頁面是否已經快取到記憶體中,如果快取了即為1,並且位址域存放的即為該虛擬頁面對應的物理頁面位址。如果沒有快取即為0,此時位址域存放的是虛擬頁面位址或者為空(虛擬頁面未分配時)。
頁命中
如上圖,當cpu給出乙個虛擬位址準備訪問vp2中的一段區域時,首先會根據虛擬位址到主存的頁表中找到對應的pte,然後查閱有效位為1,表明該虛擬頁面已經快取到主存中了,此時讀出位址域的實體地址。即所需的資料在主存中稱為頁命中。
缺頁
當cpu給出乙個虛擬位址準備訪問vp3中的一段資料時,首先在主存的頁表中找到對應的pte,然後查閱該pte的有效位為0,即vp3並沒有快取到主存中,此時核心會觸發缺頁異常,然後核心在主存中找出乙個犧牲頁(頁中資料已經被更改)將它複製回磁碟,然後空出該犧牲頁的位置。在上圖中即為物理頁面pp3。然後核心將虛擬頁面vp3複製到記憶體中並且修改pte3的狀態和實體地址域,此時再重新通過虛擬位址訪問即可頁命中。
位址翻譯
mmu將虛擬位址對映到實體地址的過程稱為位址翻譯。
虛擬位址由虛擬頁號(vpn)以及虛擬頁偏移(vpo)構成。根據vpn可以在主存的頁表中找到對應的pte,然後查閱該pte的狀態控制字以及位址域,可以獲取到對應物理頁的實體地址,將得到的實體地址加上虛擬頁偏移(也是物理頁偏移)即可得到完整的實體地址。然後通過該實體地址來讀取資料。
計算機系統
一陰一陽之為道。早在幾千年我國古人就知道天地萬物皆由正反兩個東西組成的。自從人類進入電氣時代,隨著電子元件的快速發展,各種裝置隨之誕生了。一些元件 例如閘流體 可以根據電壓的高低變化自行導 通或者關斷。如果是高電壓導通,就規定是1 低電壓導通規定是0,那麼眾多的這些元件組成的乙個整體就可以0 和1來...
計算機系統
做加法時,主要判斷是否溢位 無符號加溢位條件 cf 1 帶符號加溢位條件 of 1 舉例 若n 8,計算107 46 107 0110 1011 46 0010 1110 01001 1001 溢位標誌of 1 零標誌zf 0 符號標誌sf 1 進製標誌cf 0 無符號 sum 153,因為cf 0...
計算機系統
計算機系統概述 1 馮諾依曼計算機系統組成 2 計算機五大構成 3 計算機軟體系統 4 高階語言程式轉換過程 5 計算機系統組成 6 典型的計算機主機板組成框圖 7 微機工作示意圖 8 儲存器工作過程 計算機記憶體容量計算常識 計算機系統對記憶體的識別是以byte 位元組 為單位,每個位元組由8位二...