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


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

(1) 一次性。都要求將做業全部裝入內存後方能執行。不少做業在每次執行時,並非其全部程序和數據都要用到。假設一次性地裝入其全部程序,形成內存空間的浪費。 數據結構

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

虛擬存儲器的定義

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

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





請求分頁存儲管理方式
一、定義
請求分頁系統是創建在基本分頁系統的基礎上,爲了能支持虛擬存儲器功能而 添加了請求調頁功能和頁面置換功能。
二、頁表機制
在請求分頁系統中所需要的主要數據結構是頁表。其基本做用仍然是將用戶地址空間中的邏輯地址變換爲內存空間中的物理地址。由於僅僅將應用程序的一部分調入內存,另外一部分仍在盤上,故須在頁表中再添加若干項,供程序(數據)在換進、換出時參考。在請求分頁系統中的每個頁表項例如如下所看到的: 


現對當中各字段說明例如如下:
(1) 狀態位P:用於指示該頁 是否已調入內存,供程序訪問時參考。
(2) 訪問字段A:用於記錄本頁在一段時間內 被訪問的次數,或記錄本頁近期已有多長時間未被訪問,供選擇換出頁面時參考。
(3) 改動位M:表示該頁在調入內存後 是否被改動過。由於內存中的每一頁都在外存上保留一份副本,所以,若未被改動,在置換該頁時就不需再 將該頁寫回到外存上,以下降系統的開銷和啓動磁盤的次數;若已被改動,則必須將該頁重寫到外存上,以保證外存中所保留的始終是最新 副本 。簡言之,M位供置換頁面時參考。
(4) 外存地址:用於指出該頁在外存上的地址,通常是 物理塊號,供調入該頁時參考。 

三、缺頁中斷機構

在請求分頁系統中,每當所要訪問的頁面不在內存時, 便產生一缺頁中斷,請求OS將所缺之頁調入內存。缺頁中斷做爲中斷,它們相同 需要經歷諸如保護CPU環境、分析中斷緣由、轉入缺頁中斷處理程序進行處理、恢復CPU環境等幾個步驟。但缺頁中斷又是一種特殊的中斷,它 與通常的中斷相比,有着明顯的差異,主要表現在如下兩個方面:
(1) 在指令運行期間產生和處理中斷信號。一般, CPU都是在一條指令運行完後,才檢查是否有中斷請求到達。如有,便去響應,不然, 繼續運行下一條指令。然而,缺頁中斷是在指令運行期間,發現所要訪問的指令或數據不在內存時所產生和處理的。 
(2) 一條指令在運行期間,可能產生屢次缺頁中斷。在下圖中示出了一個樣例。如在運行一條指令COPY A TO B時,可能要產生6次缺頁中斷 ,當中指令自己跨了兩個頁面,A和B又分別各是一個數據塊,也都跨了兩個頁面。基於這些特徵,系統中的硬件機構應能保存屢次中斷時的 狀態,並保證最後能返回到中斷前產生缺頁中斷的指令處繼續運行。 

四、地址變換機構

請求分頁系統中的地址變換機構,是在分頁系統地址變換機構的基礎上,再爲實現虛擬存儲器而添加了某些功能而造成的,如產生和處理缺頁中斷,以及從內存中換出一頁的功能等等。下圖表示出了請求分頁系統中的地址變換過程。在進行地址變換時,首先去檢索快表,試圖從中找出所要訪問的頁。若找到,便改動頁表項中的訪問位。對於寫指令,還須將改動位置成「1」,而後利用頁表項中給出的物理塊號和頁內地址造成物理地址。地址變換過程到此結束。








本文由Cout_Sev 蒐集整理並改動性能

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

轉載註明出處。操作系統

謝謝!orm

相關文章
相關標籤/搜索