作業系統 頁式儲存方式,頁,頁表,頁表項

2021-08-13 08:30:18 字數 1221 閱讀 2934

//

//作業系統和計算機組成原理裡都講到記憶體管理的頁式管理,但是本人以及很多初次學習分頁的時候,都會迷茫頁表大小和頁表項大小之間的關係,本人仔細分析了後寫了這篇blog,僅當學習交流,個人理解之用,如果有錯或者分析不夠嚴謹,歡迎指正。

//按字、圖結合起來分析,相信還是比較容易看懂。

頁:將程序劃分的塊,對應的大小就叫頁面大小。

頁框:將記憶體劃分的塊。

頁和頁框二者一一對應,乙個頁放入乙個頁框,(理論上)頁的大小和頁框的大小相等。

頁表:就是乙個頁和頁框一一對應的關係表。【存放在記憶體中】 關係表只是起到乙個索引的作用,說白了就是能根據關係錶能查到某乙個頁面和哪乙個頁框所對應。

分析:

​ 首先

位的虛擬位址可表示的程序大小應該是2^32b = 4gb(暫時別去想頁號p佔多少位,w佔多少位)

2.(根據頁的定義和頁面大小的定義)將程序進行分頁:

3.我們已經知道了頁面的數目為:2^20頁。現在的迷茫點就在於頁表項的問題上。

上圖在頁表上已經給出了幾個資料:20位,12位,32位,2^20項。一一解釋如下【請結合上圖乙個乙個資料分析】:

​ 2^20項:因為頁表的作用是要將頁面的頁框一一對應起來,所以,每乙個頁面在頁表中都應該有乙個頁表項:用來表示乙個頁號對應一頁頁框號(記憶體中的塊號),故應

​ 該有2^20項。【不應該有問題吧,就好像乙個班有50個同學,每個人都應該有乙個位址一樣】

32位:已知條件裡告訴了頁表項大小為4b,那麼自然就應該是32位了。

12位:32位-20位 = 12位。為什麼頁框號位址為12位,只能表示2^12個頁框,要小於2^20個頁面呢,因為並不是程序的每乙個頁面都要調入記憶體。其實32位、12位、20位這三個資料還是有一定依據的,在二級分頁的時候就會發現「哦,原來剛剛好」。此處暫不討論二級分頁。

4.通過上面的分析我們得出了哪些資料:

頁面:大小4kb,數量:2^20頁。

頁表項:4b,數量:2^20項。所以頁表就需要4b*2^20 = 4mb的空間儲存(這就是書中說:頁表項大小為4mb的由來)進一步,主存的頁框大小和頁面大小是相等的,也為4kb,所以將頁表存在主存就需要占用4mb/4kb = 1024頁(因為頁表也是存在主存中的,而主存也是按頁框劃分的。這的確是一種資源浪費,所以就需要建立二級頁面,將其大小控制在1頁之內,將二級頁面存入主存即可)

頁 頁表 頁表項

作業系統和計算機組成原理裡都講到記憶體管理的頁式管理,但是本人以及很多初次學習分頁的時候,都會迷茫頁表大小和頁表項大小之間的關係,本人仔細分析了後寫了這篇blog,僅當學習交流,個人理解之用,如果有錯或者分析不夠嚴謹,歡迎指正。按字 圖結合起來分析,相信還是比較容易看懂。號單元開始編址,稱之為目標模...

頁 頁表 頁表項

作業系統和計算機組成原理裡都講到記憶體管理的頁式管理,但是本人以及很多初次學習分頁的時候,都會迷茫頁表大小和頁表項大小之間的關係,本人仔細分析了後寫了這篇blog,僅當學習交流,個人理解之用,如果有錯或者分析不夠嚴謹,歡迎指正。按字 圖結合起來分析,相信還是比較容易看懂。號單元開始編址,稱之為目標模...

作業系統,二級頁表儲存方式

標籤 空格分隔 作業系統 有乙個24bit的作業系統,4kb page 每個頁表佔4kb 4byte page table entry 每個頁表項佔4b 問 給你乙個虛擬位址,要求你求出其在記憶體中的實體地址 由每個頁表佔4kb,可得 4k b 212 24bi t4kb 212 4096 所以對映...