單級頁表
假設某個系統物理記憶體大小為4gb,頁面大小為4kb,記憶體會被分成
2^20個記憶體塊,,因此至少需要20個二進位制位,(若系統按位元組定址)至少要3個位元組來表示頁表項。
m號頁對應的頁表項存放位址x+3*m (x為頁表在記憶體中存放的起始位址)
因為乙個頁框大小等於頁面大小為4kb,每個程序對應乙個頁表儲存在記憶體中,頁表由頁表項組成。若取3位元組儲存頁表項,則乙個頁可儲存4096/3=1365個頁表項,4096%3=1產生1b的內部碎片,若取4位元組儲存頁表項(至少3位元組,所以可以取4),則乙個頁框剛好可以儲存4096/4=1024個頁表項,使每個頁面剛好裝的下整數個頁表項。
多級頁表機制
若採用多級頁表機制,各級頁表長度不能超過乙個頁面儲存最大頁表項的個數
把長長的頁表分組,使每個記憶體塊剛好放入乙個分組,再離散化儲存,每個分組的頁表項的頁號從0開始到乙個頁框最大可容納的頁表項-1
頁 頁表 頁表項
作業系統和計算機組成原理裡都講到記憶體管理的頁式管理,但是本人以及很多初次學習分頁的時候,都會迷茫頁表大小和頁表項大小之間的關係,本人仔細分析了後寫了這篇blog,僅當學習交流,個人理解之用,如果有錯或者分析不夠嚴謹,歡迎指正。按字 圖結合起來分析,相信還是比較容易看懂。號單元開始編址,稱之為目標模...
頁 頁表 頁表項
作業系統和計算機組成原理裡都講到記憶體管理的頁式管理,但是本人以及很多初次學習分頁的時候,都會迷茫頁表大小和頁表項大小之間的關係,本人仔細分析了後寫了這篇blog,僅當學習交流,個人理解之用,如果有錯或者分析不夠嚴謹,歡迎指正。按字 圖結合起來分析,相信還是比較容易看懂。號單元開始編址,稱之為目標模...
頁表項和頁表的關係 Linux中的頁表實現
頁表是軟體實現的,但是頁表的查詢是mmu完成的,所以硬體定義了頁表的實現規則,軟體可以做的只有選擇頁表的級數,是否使用huge page以及填充對應的許可權標誌位。前面的文章主要介紹了頁表的實現規則,本文將討論linux系統中頁表的具體實現。相關資料結構 還是那個 頁表,但增加了很多內容。頁表pgd...