32位系統 2級頁表詳解

來源:互聯網
上載者:User

進程頁表兩級結構:頁目錄和頁表頁

  
進程頁表的基本結構僅適合於小進程地址空間,在大地址空間下,該結構發生了變化。大虛址空間下的記憶體進程頁表結構採用頁表頁和頁目錄。

   32位意味著虛址空間可達4GB

  
虛址空間計算方法:32位的編址為
232,232=210*210*210*22=4GB

1k=1024b

1m=1024K

1g=1024M

  
若虛址空間為2GB,在頁長4KB時共有

2G=1024K*1024K*2

   
(2*1024*1024KB/4KB)= 219頁  

  
若每頁的物理頁號用4B表示,則該進程頁表本身占

     219*4B = 210*29*22B = 210*210*2B = 2MB

  
該進程頁表佔用的空間為

     
(219*4B)/4KB =(219*4B)/(4*210B)= 512頁

1)算一算: 32位電腦進程頁表多大?

2)由於進程頁表大但是空,故對進程頁表採取動態分配、動態伸縮的策略

  
即:進程建立時並不馬上分配完整的進程頁資料表空間,當用到某頁時(缺頁中斷或分配頁時)才將該頁的物理頁號放入頁表。顯然頁表中的邏輯頁號不連續,頁表中每行同時要存放物理頁號和邏輯頁號。

  
頁表頁:頁表本身的空間分配也是以頁為單位。一個進程頁表的不同頁表頁之間不一定連續。

3)由於頁表所佔的巨大記憶體空間和其大部分內容在大部分時間內未使用,故進程頁表也被列入頁淘汰的範圍。

  
即:進程頁表的某些頁可能被淘汰到盤交換區中。

4)頁目錄:由於進程頁表的多個頁之間不再連續,因此頁表頁本身也需要地址索引,這種地址索引稱為頁目錄。

  
頁目錄中存放著進程頁表的所有頁表頁的地址。

   
採用由頁表頁和頁目錄共同構成的二級頁表機制來實現進程頁表,Intel CPU對二級頁表提供了硬體支援。

5)二級頁表結構及其地址映射

  
每個虛址分為三個部分

      
頁目錄號+虛頁號+頁內位移

6)多級頁表結構

   
對於更大的虛址空間,採用二級進程頁表結構可能不夠,需要三級甚至更多級頁表結構,圖3.27給出了三級頁表結構及地址映射過程。

7)多級表頁結構本質

   
由於頁表的不連續存放,導致對物理頁進行地址索引,這就是進程頁表,而進程頁表又是不連續導致對進程頁表頁進行地址索引,這就是頁目錄。

  
頁目錄是頁表頁的索引,頁表頁是進程物理空間本身的索引

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.