5 1虛擬儲存器概述

2021-09-02 20:39:38 字數 3167 閱讀 3609

1.常規儲存器管理不足的原因:

2.區域性性原理

(1)程式在執行時將呈現出區域性性規律:

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

(2)程式執行的特點:

時間區域性性(temporal locality)

被引用過一次的儲存器位置很可能在不遠的將來再被多次引用。

空間區域性性(spatial locality)

如果乙個儲存器位置被引用了一次,那麼程式很可能在不遠的將來引用附近的乙個儲存器位置。

(3)良好區域性性的程式執行速度更快

計算機系統的各個層次都利用了區域性性:

(4)基於區域性性原理

交換技術與虛存使用的調入調出技術有何相同和不同之處?

1.虛擬儲存器的定義

所謂「虛擬儲存器」,是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。
虛擬儲存管理下:

2.虛擬儲存器的實現

虛擬儲存管理:

允許將乙個作業分多次調入記憶體。

3.虛擬儲存器的特徵

離散分配方式是基礎

具體實現:

(1)請求分頁儲存管理方式

基本分頁、 「請求調頁」和「頁面置換」功能。

換入和換出基本單位都是長度固定的頁面

硬體支援:

缺頁中斷機構

每當要訪問的頁面不在記憶體時,便產生一缺頁中斷通知os,os則將所缺之頁調入記憶體。作為中斷,需經歷幾個步驟:

位址變換機構

分頁系統位址變換機構的基礎上增加

(2)記憶體分配

作業不一次裝入,部分裝入的情況下如何為程序分配記憶體,涉及三個問題:

最小物理塊數的確定

少於此數量程序將不能執行

與計算機的硬體結構有關,取決於指令的格式、功能和定址方式

物理塊的分配策略

物理塊的分配演算法

物理塊的分配策略

考慮:固定or可變分配、全域性or區域性置換。

組合出三種適合的策略。

物理塊的分配演算法

固定分配策略時,分配物理塊可採用以下幾種演算法:

(3)調頁策略

何時調入頁面

從何處調入頁面

在請求分頁系統中的外存分為:

發生缺頁時,系統應從何處將缺頁調入記憶體,分成三種情況:

頁面調入過程

程式執行前需要裝入記憶體:上述的②步策略處理何處調入;

程序執行過程中,訪問的頁面不在記憶體,調入時記憶體已無空閒空間,需要將記憶體中的一頁程式或資料調到外存。

頁面置換演算法(page replacement algorithms):選擇換出哪些頁面的演算法,其好壞直接影響系統的效能。

應具有較低的缺頁率:

缺頁率=頁面調入次數(缺頁次數)/總的頁面使用次數
1.最佳(optimal)置換演算法

belady,2023年提出的一種理論上的演算法

換出以後永不再用的,或在最長(未來)時間內不再被訪問的頁面。

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

先進入的先淘汰,即選擇記憶體中駐留時間最久的頁面予以淘汰。

系統用佇列對先進先出的頁面次序進行記錄

佇列最長等於分配的物理塊數

始終置換隊首的最老頁面

*belady 現象

belady現象:出現分配的頁面數增多,缺頁率反而提高的異常現象。

3.最近最久未使用(lru)置換演算法

無法**將來的使用情況,只能利用「最近的過去」作為「最近的將來」的近似,因此,lru置換演算法選擇最近最久未使用(least recently used)的頁面予以淘汰。

(1) 暫存器記錄時間的原理

一程序有8個頁面,每個頁面需配備乙個8位的(移位)暫存器。

(2)棧記錄時間的原理

某頁面被訪問,便將該頁面的頁面號從棧中移出,將它壓入棧頂。因此:棧頂始終是最新被訪問頁面的編號,越久未使用,頁面越被壓在棧底。

4.輪轉演算法(clock)

lru的近似演算法(折衷fifo)

改進clock

將乙個頁面換出時,要考慮該頁是否被修改過,若已被修改過,便須將該頁重新寫到磁碟上;若未被修改過,則不必將它拷回磁碟。對於修改過的頁面,在換出時所付出的開銷要更大,或者說,置換代價大。

在選擇頁面換出時,既要是未使用過二點頁面,也要是未被修改過的頁面,把同時滿足這兩個條件的頁面作為首選淘汰位。

改進:主要考慮對沒訪問過的頁面再細分是否修改過的不同情況,減少因修改造成的頻繁i/o操作。

每頁除記錄是否用過a,還記錄是否修改的標誌m。置換時根據兩個標誌的值有4種不同情況的處理。

5.其他置換演算法

(1)最少使用lfu(least frequently used)

關鍵在次數記錄上

每頁設定訪問計數器,每當頁面被訪問時,該頁面的訪問計數器加1;缺頁中斷時,淘汰計數值最小的頁面,並將所有計數清零;

計數的實現類似lru,用移位暫存器,但比較時不是簡單比較暫存器的值,而是比較暫存器每位的和∑ri。

lru與lfu

lfu置換次數少的。程式區域性性會導致乙個頁面在一段時間內使用次數很多。但使用次數多並不能說明將來被用到的可能性大

而lru置換最近最久未用的,對未來的預計一般會更好些。

所有,lru相對得到較好的應用。

(2)頁面緩衝演算法pba(page buffering algorithm)

對fifo演算法的發展,彌補了fifo可能造成的i/o開銷,又不需要lru等演算法的硬體支援。

仍用fifo演算法選擇被置換頁

但並不將其馬上換入外存。

系統將頁面放入兩個鍊錶之一:如果頁面未被修改,就將其歸入到空閒頁面鍊錶的末尾;否則將其歸入到已修改頁面鍊錶。

需要調入新的物理頁面時,將新頁面內容讀入到空閒頁面鍊錶的第一項所指的頁面,然後將第一項刪除(從空閒鍊錶摘下)。

空閒頁面和已修改頁面,仍停留在記憶體中一段時間,如果這些頁面被再次訪問,只需較小開銷,而被訪問的頁面可以返還作為程序的記憶體頁。

當已修改頁面達到一定數目後,再將它們一起調出到外存,然後將它們歸入空閒頁面鍊錶,這樣能大大減少i/o操作的次數。

虛擬儲存器

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

虛擬儲存器

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

虛擬儲存器

1 常規儲存器管理方式的特徵 一次性 即作業在執行前需一次性地全部裝入記憶體。這會導致兩種情況的發生 當作業很大,所要求的記憶體空間超過了記憶體總容量,作業不能全部被裝入記憶體,致使該作業無法執行。在多道程式中,有多個作業要求執行,但由於記憶體容量不足以容納所有這些作業,只能將少數作業裝入記憶體讓它...