頁目錄索引,頁表索引,字節索引

 

 學習操作系統之時,對分層的頁式地址變換有些不解,思考許久,纔有點明白,下面將以一道題目來說明。

 

題目:已知某系統頁面大小爲4KB,頁表項爲4字節,採用多層分頁策略映射64位虛擬地址空間。若限定最高層頁表佔1頁,問可用幾層分頁?

 

首先需要明白的是,什麼叫頁表項。

 

頁表項是一個數據結構,它包含一些信息,這些信息和頁本身內容沒有關係,而是用來管理頁面的。比如在X86系統中,硬件頁表項有一個修改位和一個訪問位,它用來給頁面調度算法提供依據,不論是LRU算法還是其它淘汰算法,都要根據訪問位來淘汰,不僅如此,還包含一個寫位用來提供寫保護,用來確定是否有可以寫頁面的權限。

 

也就是說,頁表項是頁面本身依靠人爲增加一些管理字段被人爲的延長了。

 

按本題來講,頁面大小爲4KB,總共有212位信息,其中只有210 位信息是真正我們程序中所需要的信息,而另外4字節的內容是管理這張頁表的信息,是操作系統用來執行調度算法,存儲保護的相關依據。

 

最後回到本題,64位地址空間,事實上每頁只能存放10位的容量,那麼去掉作爲頁內地址的12位空間,將有252頁表,將這些頁表按每頁存放10位容量計算,則需要[52/10]=6層。

 

這種結果可能看起來不太清楚,或許這樣說,最高層事實上只要2位信息就足夠,但它需要另外2位來管理比它低一層的頁表信息,注意雖然是比它低一層,但它仍然是一張頁表,僅有最低層的下一層纔是頁內地址。

 

事實求是地講:高一層的頁表索引事實上相當於頁目錄索引,它存放的是頁表的位置,根本原因就是因爲頁表的龐大導致頁面大小不足以裝入一個頁表。

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