1. 程式人生 > >作業系統 第五章 虛擬儲存管理--筆記

作業系統 第五章 虛擬儲存管理--筆記

虛擬儲存器的基本概念

常規儲存器管理方式的特徵 一次性:作業在執行前一次性的全部裝入記憶體 駐留性:作業裝入記憶體後,便會一直駐留在記憶體中,直至作業結束

一次性及駐留性在程式執行時是否是必須的? 答:不是,因為程式執行有區域性性

區域性性原理 在一段較短的時間內,程式的執行僅侷限於某個部分,相應的,所訪問的儲存空間也侷限於某個區域。

時間區域性性:被引用過一次的儲存器位置很可能在不遠的將來在被多次引用 空間區域性性:如果一個儲存器位置被引用了一次,那麼程式很可能在不遠的將來引用附近的一個儲存器位置。

有良好的區域性性的程式執行速度更快

交換技術於虛存使用的調入調出技術有何異同? 答:主要相同點是都要在記憶體與外存間交換資訊; 主要區別在於交換技術換出換進一般是整個程序,因此一個程序的大小受物理儲存器的限制; 而虛存中使用的調入調出技術在記憶體與外存之間來回傳遞的是儲存頁或儲存段,而不是整個程序,從而使得程序對映具有了很大的靈活性,且允許程序的大小比可用的物理儲存空間大得多

為了用小的記憶體實現在大的虛空間中程式的執行

虛擬儲存器(邏輯上擴充記憶體) 是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。

記憶體容量由記憶體容量和外存容量之和決定,執行速度接近於記憶體速度,每位的成本接近於外存

虛擬儲存器的實現: 允許將一個作業分多次調入記憶體 虛擬的實現建立在離散分配儲存管理的基礎上(採用連續分配方式,會造成記憶體資源的浪費,並不能從邏輯上擴大記憶體容量)

虛擬儲存器的特徵(程序整體對換不算虛擬) 多次性·對換性·虛擬性

請求分頁儲存管理方式 換入和換出基本單位都是長度固定的頁面

在這裡插入圖片描述

【例子】 在這裡插入圖片描述 2是由系統根據後面的外存地址調入,系統先看物理塊號沒有則從後面的地址去找。調入記憶體

缺頁中斷機構 每當要訪問的頁面不在記憶體時,便產生一缺頁中斷通知OS,OS則將所缺之頁調入記憶體。 中斷經過的步驟: 保護CPU環境–分析中段原因–轉入缺頁中斷處理程式–恢復CPU環境

在這裡插入圖片描述

在這裡插入圖片描述

記憶體分配 最小物理塊數的確定–物理塊的分配策略–物理塊的分配演算法

在請求分頁系統中的外存分為: 對換區:連續存放資料,讀寫速度較快 檔案區:離散分配方式,讀寫想、速度相對較慢。

發生缺頁時,系統應從何處將缺頁調入記憶體,分成三種情況: 在這裡插入圖片描述

系統擁有足夠的對換區空間:可以全部從對換區調入所需頁面,以提高調頁速度。 系統缺少足夠的對換區空間:凡不會被修改的檔案,直接從檔案區調入;換出時不用換,再調入時仍從檔案區調入。可能被修改的部分,換出時需調到對換區,換入時從對換區調入。 系統缺少足夠的對換區空間,這時凡是不會被修改的檔案,都直接從檔案區調入;而當換出這些頁面時,由於它們未被修改而不必再將它們換出,以後再調入時,仍從檔案區直接調入。但對於那些可能被修改的部分,在將它們換出時,便須調到對換區,以後需要時,再從對換區調入。 UNIX方式。由於與程序有關的檔案都放在檔案區,故凡是未執行過的頁面,都應從檔案區調入。而對於曾經執行過但又被換出的頁面,由於是被放在對換區,因此在下次調入時,應從對換區調入。由於UNIX系統允許頁面共享,因此, 某程序所請求的頁面有可能已被其它程序調入記憶體,此時也就無須再從對換區調入。

頁面置換演算法

缺頁率:頁面調入次數(缺頁次數)/總的頁面使用次數

1.最佳置換演算法(僅限於理論上,作為參照標準) 2.先進先出置換演算法(FIFO) 先進入的先淘汰 在這裡插入圖片描述

Belady現象:出現分配的頁面數增多,缺頁率反而提高的異常現象。 Belady現象的原因:FIFO演算法的置換特徵與程序訪問記憶體的動態特徵矛盾,即被置換的頁面並不是程序不會訪問的。(個人理解:當分配的頁面增多時,保留的大多是沒用的,下一次用到的都被淘汰了,又需要重新調入) 【例子】 在這裡插入圖片描述

3.最近最久未使用(LRU)置換演算法 在這裡插入圖片描述

具體實現方法: 在這裡插入圖片描述 在這裡插入圖片描述

個人理解:也就是說數越小越舊,越大越新

在這裡插入圖片描述 【練習】 在這裡插入圖片描述

4.輪轉演算法(clock) 又稱最近未使用演算法 每個頁設一個使用標誌位(use bit),若該頁被訪問則將其置為1。 設定一個指標,從當前指標位置開始按地址先後檢查各頁,尋找use bit=0的頁面作為被置換頁。 若指標經過的頁use bit=1,修改use bit=0(暫不凋出,給被用過的頁面駐留的機會 ),指標繼續向下。到所有頁面末尾後再返回隊首檢查。

【例項】 在這裡插入圖片描述

改進clock 改進:考慮到對沒訪問過的頁面再細分是否修改過的不同情況,減少因修改造成的頻繁I/O操作 在這裡插入圖片描述

在這裡插入圖片描述