【例】分頁存儲管理中頁表的功能是什麼?當系統中的地址空間變得非常大時會給頁表的設計帶來什麼樣的新問題?給出一種解決方案分析它的優缺點(北方名校經典試題)
【分析】在分頁存儲管理中頁表是為了使頁號與實際的物理塊號對應起來它實際上是以空間換時間使得檢索速度增加了但地址空間很大時頁表所占的空間也相應增大無論是空間還是時間都得不償失
【解答】在分頁系統中允許將進程的每一頁離散地存儲在內存的任何物理塊中但系統應能保證進程的正確運行即能在內存中找到每個頁面所對應的物理塊為此系統又為每個進程建立一張頁面映射表簡稱頁表在進程地址空間內的所有頁(~n)依次在頁表中有一頁表項其中記錄了相應頁在內存中對應的物理塊號在配置了頁表後進程執行時通過查找頁表即可找到每頁在內存中的物理塊號可見頁表的作用是實現從頁號到物理塊號的地址映射
現代的大多數計算機系統都支持大的邏輯地址空間(~)在這樣的環境下頁表就變得非常大要占用相當大的內存空間例如對於一個具有位邏輯地址空間的分頁系統規定頁面大小為KB即B則在每個進程頁表中的頁表項可達兆個之多又因為每個頁表項占用個字節故每個進程的頁表就要占用MB的內存空間而且還要求是連續的顯然這是不現實的我們可以從下述兩個方法來解決這一問題
● 對頁表所需的內存空間采用離散分配方式來解決難以找到一塊連續的大內存空間的問題
● 只將當前需要的部分頁表項調入內存其余的頁表項仍駐留在磁盤止需要時再將它們調入內存
這裡因此而發展出兩級頁表在用戶邏輯地址原來劃分的基礎上將頁表部分在分為頁表索引項和頁表兩部分也就是說對頁表進行分頁使每個頁面的大小與內存物理塊的大小相同比如位的邏輯地址可采用下所示的格式
對投入運行的程序將其頁表索引調入內存而對其頁表調入少量的頁程序運行時如找不到相應的頁表則產生中斷信號請求操作系統將該頁表調入內存
兩級頁表適應了大地址空間的需要實現了虛擬存儲系統但增加了地址變換的開銷和操作系統管理的復雜性
返回《操作系統考研輔導教程》
[] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/czxt/201311/24226.html