【操作系統】請求分頁儲存管理方式



常規存儲器管理方式(基本分頁、基本分段)的特征

(1) 一次性。都要求將作業所有裝入內存后方能執行。很多作業在每次執行時,並不是其所有程序和數據都要用到。假設一次性地裝入其所有程序,造成內存空間的浪費。 

(2) 駐留性。作業裝入內存后,便一直駐留在內存中,直至作業執行結束。雖然執行中的進程會因I/O而長期等待,或有的程序模塊在執行過一次后就不再須要(執行)了,但它們都仍將繼續占用寶貴的內存資源。

虛擬存儲器的定義

應用程序在執行之前,沒有必要所有裝入內存,僅須將那些當前要執行的少數頁面或段先裝入內存便可執行,其余部分暫留在盤上。程序在執行時,假設它所要訪問的頁(段)已調入內存,便可繼續執行下去;但假設程序所要訪問的頁(段)尚未調入內存(稱為缺頁或缺段),此時程序應利用OS所提供的 請求調頁(段)功能,將它們調入內存,以使進程能繼續執行下去。假設此時內存已滿,無法再裝入新的頁(段),則還須再利用頁(段)的 置換功能,將內存中臨時不用的頁(段)調至盤上,騰出足夠的內存空間后,再將要訪問的頁(段)調入內存,使程序繼續執行下去。

虛擬存儲器是指具有請求調入功能和置換功能,能從邏輯上對內存容量加以擴充的一種存儲器系統。其邏輯容量由內存容量和外存容量之和所決定,其執行速度接近於內存速度,而每位的成本卻又接近於外存。可見,虛擬存儲技術是一種性能很優越的存儲器管理技術,故被廣泛地應用於大、中、小型機器和微型機中。





請求分頁存儲管理方式
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”,然后利用頁表項中給出的物理塊號和頁內地址形成物理地址。地址變換過程到此結束。








本文由Cout_Sev 搜集整理並改動

自《計算機操作系統(第三版)》(西安電子科技大學出版社),

轉載注明出處。

謝謝!












免責聲明!

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



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