基本分頁儲存管理方式具有如下特征:
1) 一次性:要求將作業全部裝入內存后方能運行。許多作業在每次運行時,並非其全部程序和數據都要用到。如果一次性地裝入其全部程序,造成內存空間的浪費。
2) 駐留性:作業裝入內存后,便一直駐留在內存中,直至作業運行結束。盡管運行中的進程會因I/O而長期等待,或有的程序模塊在運行過一次后就不再需要(運行)了,但它們都仍將繼續占用寶貴的內存資源。
請求分頁儲存管理是實現虛擬存儲器的一種常用方式,它是在基本分頁儲存管理的基礎上實現的。
其基本思想是:在進程開始運行之前,僅裝入當前要執行的部分頁面即可運行;在執行過程中,可使用請求調入中斷動態裝入要訪問但又不在內存的頁面;
當內存空間已滿,而又需要裝入新的頁面時,者根據置換功能適當調出某個頁面,以便騰出空間而裝入新的頁面。為實現請求分頁,需要一定的硬件支持,包括:頁表機制、缺頁中斷機構、地址變換機構。
請求分頁存儲管理方式
1、定義:
請求分頁系統是建立在基本分頁系統的基礎上,為了能支持虛擬存儲器功能而添加了請求調頁功能和頁面置換功能。
2、頁表機制
在請求分頁系統中所須要的主要數據結構是頁表。其基本作用仍然是將用戶地址空間中的邏輯地址變換為內存空間中的物理地址。
因為僅僅將應用程序的一部分調入內存,另一部分仍在盤上,故須在頁表中再添加若干項,供程序(數據)在換進、換出時參考。
在請求分頁系統中的每個頁表項例如以下所看到的:

現對當中各字段說明例如以下:
(1) 狀態位P:用於指示該頁是否已調入內存,供程序訪問時參考。
(2) 訪問字段A:用於記錄本頁在一段時間內被訪問的次數,或記錄本頁近期已有多長時間未被訪問,供選擇換出頁面時參考。
(3) 改動位M:表示該頁在調入內存后是否被改動過。因為內存中的每一頁都在外存上保留一份副本,因此,若未被改動,在置換該頁時就不需再將該頁寫回到外存上,以降低系統的開銷和啟動磁盤的次數;
若已被改動,則必須將該頁重寫到外存上,以保證外存中所保留的始終是最新副本 。簡言之,M位供置換頁面時參考。
(4) 外存地址:用於指出該頁在外存上的地址,一般是物理塊號,供調入該頁時參考。
3、缺頁中斷機構
在請求分頁系統中,每當所要訪問的頁面不在內存時,便產生一缺頁中斷,請求OS將所缺之頁調入內存。
缺頁中斷作為中斷,它們相同須要經歷諸如保護CPU環境、分析中斷原因、轉入缺頁中斷處理程序進行處理、恢復CPU環境等幾個步驟。
但缺頁中斷又是一種特殊的中斷,它與一般的中斷相比,有着明顯的差別,主要表如今以下兩個方面:
(1) 在指令運行期間產生和處理中斷信號。通常,CPU都是在一條指令運行完后,才檢查是否有中斷請求到達。若有,便去響應,否則,繼續運行下一條指令。然而,缺頁中斷是在指令運行期間,發現所要訪問的指令或數據不在內存時所產生和處理的。
(2) 一條指令在運行期間,可能產生多次缺頁中斷。
在下圖中示出了一個樣例。如在運行一條指令COPY A TO B時,可能要產生6次缺頁中斷,
當中指令本身跨了兩個頁面,A和B又分別各是一個數據塊,也都跨了兩個頁面。基於這些特征,系統中的硬件機構應能保存多次中斷時的狀態,並保證最后能返回到中斷前產生缺頁中斷的指令處繼續運行。
4、地址變換機構
請求分頁系統中的地址變換機構,是在分頁系統地址變換機構的基礎上,再為實現虛擬存儲器而添加了某些功能而形成的,如產生和處理缺頁中斷,以及從內存中換出一頁的功能等等。
下圖表示出了請求分頁系統中的地址變換過程。在進行地址變換時,首先去檢索快表,試圖從中找出所要訪問的頁。
若找到,便改動頁表項中的訪問位。對於寫指令,還須將改動位置成“1”,然后利用頁表項中給出的物理塊號和頁內地址形成物理地址。地址變換過程到此結束。
轉自:http://www.cnblogs.com/mfrbuaa/p/3967296.html
