操作系統------虛擬存儲器 請求分頁存儲管理方式

請求分頁系統是建立在基本分頁的基礎上的,爲了能支持虛擬存儲器功能而增加了請求調頁功能和頁面置換功能。

相應地,每次調入換出的基本單位都是長度固定的頁面,這使得請求分頁系統在實現上要比請求分段系統簡單。

請求分段系統在換進和換出時是可變長度的段,因此,請求分頁便成爲目前最常用的一種實現虛擬存儲器的方式。

請求分頁中的硬件支持

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

1)頁表機制

在請求分頁系統中所需要的主要數據結構頁表。其基本作用仍然是將用戶空間中的邏輯地址變換爲內存空間中的物理地址

由於只將應用程序的一部分調入內存,還有一部分仍在盤上,故需在頁表中再增加若干項,供程序(數據)在換進、換出時參考。

在請求分頁系統中的每個頁表項如下所示:

各字段的說明如下:

  •  狀態位P用於指示該頁是否已調入內存,供程序訪問時參考。
  •  訪問字段A:用於記錄本頁在一段時間內被訪問的次數,或記錄本頁最近已有多長時間未被訪問,供選擇換出頁面時參考。
  •  修改位M:表示該頁在調入內存後是否被修改過。供置換頁面時參考。

由於內存中的每一頁都在外存上有一份副本,因此,若未被修改,在置換該頁時就不需要將該頁寫回到外存上,以減少系統的開銷啓動磁盤的次數;若已被修改,則必須將該頁重寫到外存上,以保證外存中所保留的始終是最新副本。

  •  外存地址:用於指出該頁在外存上的地址,通常是物理塊號,供調入該頁時參考。

2)缺頁中斷機構

  • 在請求分頁系統中,每當所要訪問的頁面不在內存中時,便產生一次缺頁中斷,請求OS將所缺之頁調入內存。
  • 缺頁中斷作爲中斷,同樣需要經歷諸如保護CPU現場、分析中斷原因、轉入缺頁中斷處理程序進行處理、恢復CPU現場等幾個步驟。
  •  但缺頁中斷又是一種特殊的中斷,它與一般的中斷相比,有着明顯的區別,主要表現在下面兩個方面:
  • 在指令執行期間產生和處理中斷信號。通常,CPU都是在一條指令執行完成後,才檢查是否有中斷請求到達。若有,便去響應,否則,繼續執行下一條指令。然而,缺頁中斷是在指令執行期間,發現所要訪問的指令或數據不在內存時所產生和處理的。
  • 一條指令在執行期間,可能產生多次缺頁中斷。所以,系統中的硬件機構應能保存多次中斷時的狀態,並保證最後能返回到中斷前產生缺頁中斷的指令處繼續執行。

3)地址變換機構

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

產生和處理缺頁中斷,以及從內存中換出一頁的功能等等。

  • 在進行地址變換時,首先去檢索快表,試圖從中找出所要訪問的頁。若找到,便修改頁表項中的訪問位。對於寫指令,還需將修改位置成“1”, 然後利用頁表項中給出的物理塊號和頁內地址形成物理地址。地址變換過程到此結束。
  • 如果在快表中未找到該頁的頁表項時,應到內存中去查找頁表,再根據找到的頁表項中的狀態位P,瞭解該頁是否已調入內存
  • 若該頁已調入內存,這時應將此頁的頁表項寫入快表,當快表已滿時,應先調出按某種算法所確定的頁的頁表項;然後再寫入該頁的頁表項。
  • 若該頁尚未調入內存,這時應產生缺頁中斷,請求OS從外存該頁調入內存
  • 地址變換機構:
  •  

從何處調入頁面?

 在請求分頁系統中的外存分爲兩部分:用於存放文件的文件區和用於存放對換頁面的對換區。通常,由於對換區是採用連續分配方式,而文件是採用離散分配方式,故對換區的磁盤I/O速度比文件區的高。這樣,每當發生缺頁請求時,系統應從何處將缺頁調入內存,可分成如下三種情況:          

1) 系統擁有足夠的對換區空間,這時可以全部從對換區調入所需頁面,以提高調頁速度。

2) 系統缺少足夠的對換區空間,這時凡是不會被修改的文件,都直接從文件區調入;而當換出這些頁面時,由於它們未被修改而不必再將它們換出,以後再調入時,仍從文件區直接調入。但對於那些可能被修改的部分,在將它們換出時,便須調到對換區,以後需要時,再從對換區調入。        

3) UNIX方式。由於與進程有關的文件都放在文件區,故凡是未運行過的頁面,都應從文件區調入。而對於曾經運行過但又被換出的頁面,由於是被放在對換區,因此在下次調入時,應從對換區調入。由於UNIX系統允許頁面共享,因此, 某進程所請求的頁面有可能已被其它進程調入內存,此時也就無須再從對換區調入。 

頁面調入過程:

  1. 向CPU發出缺頁中斷
  2. 中斷處理程序保存CPU環境轉中斷處理程序
  3. 該程序查找頁表,得到該頁在外存中的塊號
  4. 若內存未滿,啓動磁盤I/O讀入;若內存已滿,先置換,再調入
  5. 最後修改頁表對應項的內容,並將此頁表項寫入快表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章