1. 程式人生 > >易學筆記-系統分析師考試-第3章 作業系統基本原理/3.3 記憶體管理/3.3.4 虛擬儲存管理

易學筆記-系統分析師考試-第3章 作業系統基本原理/3.3 記憶體管理/3.3.4 虛擬儲存管理

  • 虛擬儲存管理
  1. 背景:固定式、分頁式、分段式儲存一個共同的特點是要求的儲存空間必須足夠大裝載入作業的全部資訊,但由於作業在執行過程中,作業中所有的記憶體不是一次全部使用的,甚至有些記憶體塊根本就不是使用,這樣就造成了記憶體資源的極度浪費
  2. 虛擬儲存工作過程:當作業載入到記憶體時,不是一次性全部載入的,而是載入當前執行到的那部分程式,而其它資料仍然是儲存到外存中。當執行的指令需要訪問的資料不在當前記憶體中的時候,再由作業系統請求調入功能將他們調入記憶體,如果記憶體已滿,則還需要通過置換功能把記憶體中不使用的程式先調到外存,這樣就能騰出空間處理當前程式。這個能從邏輯上實現記憶體擴充套件的技術叫做虛擬儲存管理
  3. 虛擬儲存原理:
    1. 虛擬儲存的實現依賴於區域性性原理。這種區域性性是因為程式執行的區域性性,也就是在一個很短的時間內,程式的執行只能是具體的某一部分,它所訪問的儲存空間也是區域性的。
    2. 程式的區域性性包括
      1. 時間區域性性:程式的某一條執行這一個時間被執行後很大可能不久再被執行,這是由於程式存在大量的迴圈操作
      2. 空間區域性性:程式訪問的某個儲存單元,不久之後它附近的儲存空間也會被範圍,這是由於程式是按順序執行的
  • 工作集
  1. 抖動現象:由於虛擬儲存管理會存在置換作業的頁到外存的可能,這樣可能會出現頁不斷被置換,嚴重時造成系統癱瘓,稱這種現象為抖動現象
  2. 工作集:某段時間內,程式要進行訪問的頁面中的集合。
  • 頁面置換演算法
  1. 演算法必要性:當記憶體中沒有空閒頁面,但是程式又需要從外存中調入資料到記憶體,這時候就需要從現在記憶體中選出一個或者多個頁面淘汰出去,常用的演算法有:
  2. 隨機淘汰演算法:在無法確認哪個介面被訪問概率較低時,隨機選擇一個介面替換
  3. 轉輪演算法:按照記憶體頁面的編號,迴圈按編號置換頁面,不論這個頁是剛進來的還是已經存在很久了
  4. 先進先出演算法:將在記憶體中滯留時間最長的頁置換出去。演算法缺點是:滯留時間最長的頁往往是被訪問最頻繁的頁,將這些頁淘汰很可能很快就要置換進來,以致互動頻繁,降低記憶體的利用效率
    1. 舉例:
  5. 最近最久未用演算法:選擇在離最近一段時間內未使用的頁置換出去
    1. 舉例:
  6. 最近沒有使用頁面置換演算法:從最近一個時間內未被訪問的任何一頁置換。可以通過標誌位實現,對所有的頁設定開關,1表示訪問,0表示未訪問,系統週期性的清零
  7. 最優置換演算法:選擇最長時間沒有訪問的
  8. 時鐘頁面置換演算法:將作業調入記憶體的頁面連成迴圈佇列並且設定引用位,1表示已引用,0表示未引用。指標初始化到首頁介面,淘汰介面時,指標從當前位置開始掃描,如果引用位是1則修改為0,如果引用位未0則淘汰本頁,指標指向下一個介面。如果所有頁都是1則指標淘汰當前頁,指標指向下一個介面