請求分頁管理方式實現虛擬內存


請求分頁系統建立在基本分頁系統基礎之上,為了支持虛擬存儲器功能而增加了請求調頁功能和頁面置換功能。請求分頁是目前最常用的一種實現虛擬存儲器的方法。

在請求分頁系統中,只要求將當前需要的一部分頁面裝入內存,便可以啟動作業運行。在作業執行過程中,當所要訪問的頁面不在內存時,再通過調頁功能將其調入,同時還可以通過置換功能將暫時不用的頁面換出到外存上,以便騰出內存空間。

為了實現請求分頁,系統必須提供一定的硬件支持。除了需要一定容量的內存及外存的計算機系統,還需要有頁表機制、缺頁中斷機構和地址變換機構。

頁表機制

請求分頁系統的頁表機制不同於基本分頁系統,請求分頁系統在一個作業運行之前不要求全部一次性調入內存,因此在作業的運行過程中,必然會出現要訪問的頁面不在內存的情況,如何發現和處理這種情況是請求分頁系統必須解決的兩個基本問題。為此,在請求頁表項中增加了四個字段,如圖1所示。


圖1  請求分頁系統中的頁表項


增加的四個字段說明如下:

  • 狀態位P:用於指示該頁是否已調入內存,供程序訪問時參考。
  • 訪問字段A:用於記錄本頁在一段時間內被訪問的次數,或記錄本頁最近己有多長時間未被訪問,供置換算法換出頁面時參考。
  • 修改位M:標識該頁在調入內存后是否被修改過。
  • 外存地址:用於指出該頁在外存上的地址,通常是物理塊號,供調入該頁時參考。

缺頁中斷機構

在請求分頁系統中,每當所要訪問的頁面不在內存時,便產生一個缺頁中斷,請求操作系統將所缺的頁調入內存。此時應將缺頁的進程阻塞(調頁完成喚醒),如果內存中有空閑塊,則分配一個塊,將要調入的頁裝入該塊,並修改頁表中相應頁表項,若此時內存中沒有空閑塊,則要淘汰某頁(若被淘汰頁在內存期間被修改過,則要將其寫回外存)。

缺頁中斷作為中斷同樣要經歷,諸如保護CPU環境、分析中斷原因、轉入缺頁中斷處理程序、恢復CPU環境等幾個步驟。

地址變換機構

請求分頁系統中的地址變換機構,是在分頁系統地址變換機構的基礎上,為實現虛擬內存,又增加了某些功能而形成的。


圖2 請求分頁中的地址變換過程


如圖2所示,在進行地址變換時,先檢索快表:

    • 若找到要訪問的頁,便修改頁表項中的訪問位(寫指令則還須重置修改位),然后利用頁表項中給出的物理塊號和頁內地址形成物理地址。
    • 若未找到該頁的頁表項,應到內存中去查找頁表,再對比頁表項中的狀態位P,看該頁是否已調入內存,未調入則產生缺頁中斷,請求從外存把該頁調入內存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM