學習筆記 OS虛擬儲存器

2021-10-05 09:12:09 字數 3290 閱讀 2243

虛擬儲存器從邏輯上實現對記憶體容量的擴充,讓使用者感覺到的記憶體容量比實際記憶體容量大得多。於是便可讓比記憶體空間更大的程式執行,或者讓更多的使用者程式併發執行。

要求將乙個作業全部裝入記憶體方可執行,會出現以下兩種情況:

1)有的作業很大,記憶體空間超過記憶體總儲存量;

2)有大量作業要求執行。

1.常規儲存管理方式的特徵

(1)一次性:作業必須一次性地全部裝入記憶體後才能開始執行。

(2)駐留性:作業被裝入記憶體後,整個作業都一直駐留在記憶體中,其中任何部分都不會被換出,直至作業執行結束。

正是上述兩種特點,導致許多程式執行中不用或暫時不用的程式(資料)佔據了大量的記憶體空間,而一些需要執行的作業又無法裝入執行,浪費寶貴的記憶體資源。

2.區域性性原理

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

(1)時間侷限性。程式中的某條指令或資料被執行,則不久後該指令可能再次執行,因為存在大量迴圈結構;

(2)空間侷限性。一旦程式訪問某單元,則不久之後其附近的儲存單元也將被訪問,典型的順序結構。

3.虛擬儲存器的基本工作情況

基於區域性性原理可知,應用程式在執行之前沒有必要將之全部裝入記憶體,而僅需將那些當前要執行的少數頁面或段先裝入記憶體便可執行,其餘部分留在盤上。

程式執行時,若它要訪問的頁(段)已調入記憶體,便可繼續執行下去;但若程式要訪問的頁(段)尚未調入記憶體(稱為缺頁或缺段),便發出缺頁(段)中斷請求,此時os將利用請求調頁(段)功能將它們調入記憶體,以便程序能繼續執行下去。若此時記憶體已滿,無法再裝入新的頁(段),os還需再利用頁(段)的置換功能,將記憶體中暫時不用的頁(段)調至盤上,騰出足夠的記憶體空間後,再將要訪問的頁(段)調入記憶體,使程式繼續執行下去。

4.虛擬儲存器的定義與特徵

(1)定義:所謂虛擬儲存器,是指具有請求調入和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。其邏輯容量由記憶體容量和外存容量之和決定,其執行速度接近於記憶體速度,而每位的成本卻又接近於外存。

(2)特徵:

1)多次性:乙個作業執行時,無需全部調入,需要時再請求調入;

2)對換性:乙個作業執行時,無需常駐記憶體,將暫時不用的調出,等具備條件時重新調入;

3)虛擬性:從邏輯上擴充容量。

5.虛擬儲存器的實現

利用請求分頁系統和請求分段系統,實現虛擬儲存:

(1)請求分頁系統是在分頁系統的基礎上增加了請求調頁功能和頁面置換功能所形成的頁式虛擬儲存系統。允許使用者程式只裝入少數頁面的程式(資料)即可啟動執行。以後,通過調頁功能以及頁面置換功能陸續地把即將執行的頁面調入記憶體,同時把暫時不用的頁面換出到外存上。

2)軟體支援:用於實現請求調頁的軟體和實現頁面置換的軟體。在硬體的支援下,將程式正在執行時所需的頁面(尚未在記憶體中的)調入記憶體,再將記憶體中暫時不用的頁面從記憶體換出到磁碟上。

(2)請求分段系統同上。

6.頁面調入過程

每當程式所要訪問的頁面未在記憶體時,便向cpu發出一缺頁中斷,中斷處理程式首先保留cpu環境,分析中斷原因後轉入缺頁中斷處理程式。該程式通過查詢頁表得到該頁在外存的物理塊後,若此時記憶體能容納新頁,則啟動磁碟i/o操作,將所缺之頁調入記憶體,然後修改頁表。若記憶體已滿,則按某種頁面置換演算法,從記憶體中選擇某頁調出,再將所要訪問的頁面調入記憶體。

7.抖動

在頁面置換過程中,最糟糕的情形是,剛剛換出的頁面馬上又要換入記憶體,剛剛換入的頁面馬上就要換出記憶體,稱為抖動。以致於乙個程序在執行中把大部分時間都花費在頁面置換工作上,從而大大降低系統效率。

8.工作集

工作集(或駐留集)是指在某段時間間隔內,程序要訪問的頁面的集合。經常被使用的頁面需要在工作集中,而長期不被使用的頁面要從工作集中被丟棄。為了防止系統出現抖動現象,需要選擇合適的工作集大小。

如上面頁面調入過程所述,當記憶體已滿時,需選擇某頁調出記憶體,則選擇該頁的演算法稱為頁面置換演算法。乙個好的頁面置換演算法應具有較低的頁面更換頻率。

1.最佳(optimal,opt)置換演算法

其所選擇的頁面是以後永久不使用的,或在最長(未來)時間內不再被訪問的頁面。可保證最低的缺頁率。因人們無法預知頁面何時不使用,所以此演算法無法實現,但可以用來評價其它演算法。假設系統為某程序分配三個物理塊:

上圖所示,7、0、1頁面依次放入三個物理塊,訪問2頁面時缺頁,置換7,因為0是第5個要訪問的頁面,1是第14個要訪問的頁面,7是第18個要訪問的頁面。後面執行同上演算法。總共發生6次頁面置換。

2.先進先出(fifo)頁面置換演算法

該演算法淘汰最先進入記憶體的頁面,即選擇在記憶體中駐留時間最久的頁面予以淘汰。實現簡單,將程序調入記憶體的頁面按先後順序鏈結成乙個佇列。與程序執行規律不相適應,因為有些頁面經常被訪問。

上圖所示,7、0、1頁面依次放入三個物理塊,訪問2頁面時缺頁,置換7,因為7是最先調入的頁面;訪問3頁面時缺頁,置換0,因為0頁面是2、0、1三個頁面中最久的乙個。後面執行同上演算法。總共發生12次頁面置換。

3.最近最久未使用(least recently used,lru)演算法

該演算法根據頁面調入記憶體後的使用情況作出決策。由於無法**各個頁面將來的使用情況,只能利用「最近的過去」作為「最近的將來」的近似,因此,lru是選擇最近最久未使用的頁面予以淘汰。

上圖所示,7、0、1頁面依次放入三個物理塊,訪問2頁面時缺頁,置換7,因為7是最近最久未被訪問的頁面;訪問3頁面時缺頁,置換1,因為1頁面是最近最久未被訪問的頁面。後面執行同上演算法。opt是「向後看」,lru是「向前看」。為了知道哪個頁面是最近最久未被訪問的頁面,需要硬體的支援,如暫存器或棧。

4.最少使用(least frequently used,lfu)置換演算法

該置換演算法選擇在最近時期使用最少的頁面作為淘汰頁。lfu與lru的頁面訪問圖完全相同,只是硬體採用移位暫存器的方式。

5.時鐘(clock)置換演算法

又稱為最近未用(not recently used,nru)演算法。

OS儲存器管理 二

離散分配 分頁 paging 分段,段頁式 一 分頁 乙個程序的實體地址可以是非連續的 將物理記憶體分成固定大小的塊,稱為塊 frame 將邏輯記憶體分為同樣大小的塊,稱為頁 page 將連續的頁分配並存放到不連續的若干記憶體塊中 建立頁表,記錄每一頁對應的儲存塊的塊號,將邏輯位址轉換為實體地址。將...

虛擬儲存器

1 虛擬儲存器只是乙個容量非常大的儲存器的邏輯模型,不是任何實際的物理儲存器 2 它借助於磁碟等輔存來擴大主存的容量,使之為更大或更多的程式使用 3 程式的邏輯位址稱為虛擬位址 虛位址 程式的邏輯位址空間稱為虛擬位址空間 4 實體地址 實位址 由cpu位址引腳送出,是用於訪問主存的位址 5 設cpu...

虛擬儲存器

在系統中程序是與其它的程序共享cpu和主存資源的,程序太多就需要太多的儲存器,而且儲存器很容易受到破壞,如果某個程序不小心寫了另乙個程序使用的儲存器,它就會以 完全和程式邏輯無關的令人迷惑的方式失敗。位址空間。特點 1.主存看成是虛擬在磁碟上的位址空間 的快取記憶體,在主存裡只儲存活動區域。2.為每...