虛擬記憶體系統

虛擬記憶體系統

虛擬記憶體是指在記憶體貯器容量不夠大的計算機中,為給用戶提供更大的隨機訪問空間而採用的一種軟體設計技巧。虛擬記憶體系統是指管理和分配用戶程式虛擬記憶體的程式。虛擬記憶體系統出現的原因有記憶體容量不大和程式局部性原理。

基本介紹

  • 中文名:虛擬記憶體系統
  • 外文名:Virtual Memory System
  • 學科:計算機
  • 定義:管理和分配虛擬記憶體的程式
  • 有關術語:虛擬記憶體
  • 領域:作業系統
簡介,常規存儲器管理方式的特徵,局部性原理,實現方法,分頁請求系統,請求分段系統,特徵,多次性,對換性,虛擬性,

簡介

虛擬記憶體系統是指管理和分配用戶程式虛擬記憶體的程式,具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種存儲器系統。其邏輯容量由記憶體容量和外存容量之和所決定,其運行速度接近於記憶體速度,而每位的成本卻又接近於外存。虛擬記憶體系統的實現方法有分頁請求系統和請求分段系統。

常規存儲器管理方式的特徵

(1) 一次性。在前面所介紹的幾種存儲管理方式中,都要求將作業全部裝入記憶體後方能運行,即作業在運行前需一次性地全部裝入記憶體,而正是這一特徵導致了上述兩種情況的發生。此外,還有許多作業在每次運行時,並非其全部程式和數據都要用到。如果一次性地裝入其全部程式,也是一種對記憶體空間的浪費。
(2) 駐留性。作業裝入記憶體後,便一直駐留在記憶體中,直至作業運行結束。儘管運行中的進程會因 I/O 而長期等待,或有的程式模組在運行過一次後就不再需要(運行)了,但它們都仍將繼續占用寶貴的記憶體資源。
由此可以看出,上述的一次性及駐留性,使許多在程式運行中不用或暫不用的程式(數據)占據了大量的記憶體空間, 使得一些需要運行的作業無法裝入運行。 現在要研究的問題是:一次性及駐留性在程式運行時是否是必需的。

局部性原理

早在 1968 年,Denning.P 就曾指出:程式在執行時將呈現出局部性規律,即在一較短的時間內,程式的執行僅局限於某個部分;相應地,它所訪問的存儲空間也局限於某個區域。他提出了下述幾個論點:
(1) 程式執行時,除了少部分的轉移和過程調用指令外,在大多數情況下仍是順序執行的。該論點也在後來的許多學者對高級程式設計語言(如 FORTRAN 語言、PASCAL 語言)及 C 語言規律的研究中被證實。
(2) 過程調用將會使程式的執行軌跡由一部分區域轉至另一部分區域,但經研究看出,過程調用的深度在大多數情況下都不超過 5。這就是說,程式將會在一段時間內都局限在這些過程的範圍內運行。
(3) 程式中存在許多循環結構,這些雖然只由少數指令構成,但是它們將多次執行。
(4) 程式中還包括許多對數據結構的處理,如對數組進行操作,它們往往都局限於很小的範圍內。
局限性還表現在下述兩個方面:
(1) 時間局限性。如果程式中的某條指令一旦執行,則不久以後該指令可能再次執行;如果某數據被訪問過,則不久以後該數據可能再次被訪問。產生時間局限性的典型原因是由於在程式中存在著大量的循環操作。
(2) 空間局限性。一旦程式訪問了某個存儲單元,在不久之後,其附近的存儲單元也將被訪問,即程式在一段時間內所訪問的地址,可能集中在一定的範圍之內,其典型情況便是程式的順序執行。

實現方法

分頁請求系統

這是在分頁系統的基礎上, 增加了請求調頁功能和頁面置換功能所形成的頁式虛擬存儲系統。它允許只裝入少數頁面的程式(及數據),便啟動運行。以後,再通過調頁功能及頁面置換功能,陸續地把即將要運行的頁面調入記憶體,同時把暫不運行的頁面換出到外存上。置換時以頁面為單位。為了能實現請求調頁和置換功能,系統必須提供必要的硬體支持和相應的軟體。
硬體支持
主要的硬體支持有:
① 請求分頁的頁表機制,它是在純分頁的頁表機制上增加若干項而形成的,作為請求分頁的數據結構;
② 缺頁中斷機構, 即每當用戶程式要訪問的頁面尚未調入記憶體時, 便產生一缺頁中斷,以請求 OS 將所缺的頁調入記憶體;
③ 地址變換機構,它同樣是在純分頁地址變換機構的基礎上發展形成的。
實現請求分頁的軟體
這裡包括有用於實現請求調頁的軟體和實現頁面置換的軟體。它們在硬體的支持下,將程式正在運行時所需的頁面(尚未在記憶體中的)調入記憶體, 再將記憶體中暫時不用的頁面從記憶體置換到磁碟上。

請求分段系統

這是在分段系統的基礎上,增加了請求調段及分段置換功能後所形成的段式虛擬存儲系統。它允許只裝入少數段(而非所有的段)的用戶程式和數據,即可啟動運行。以後再通過調段功能和段的置換功能將暫不運行的段調出, 同時調入即將運行的段。 置換是以段為單位進行的。為了實現請求分段,系統同樣需要必要的硬體支持。一般需要下列支持:
(1) 請求分段的段表機制。這是在純分段的段表機制基礎上增加若干項而形成的。
(2) 缺段中斷機構。每當用戶程式所要訪問的段尚未調入記憶體時,產生一個缺段中斷,請求 OS 將所缺的段調入記憶體。
(3) 地址變換機構。
與請求調頁相似,實現請求調段和段的置換功能也須得到相應的軟體支持。

特徵

多次性

多次性是指一個作業被分成多次調入記憶體運行,亦即在作業運行時沒有必要將其全部裝入,只需將當前要運行的那部分程式和數據裝入記憶體即可;以後每當要運行到尚未調入的那部分程式時,再將它調入。多次性是虛擬存儲器最重要的特徵,任何其它的存儲管理方式都不具有這一特徵。因此,我們也可以認為虛擬存儲器是具有多次性特徵的存儲器系統。

對換性

對換性是指允許在作業的運行過程中進行換進、換出,亦即,在進程運行期間,允許將那些暫不使用的程式和數據,從記憶體調至外存的對換區(換出),待以後需要時再將它們從外存調至記憶體(換進);甚至還允許將暫時不運行的進程調至外存,待它們重又具備運行條件時再調入記憶體。換進和換出能有效地提高記憶體利用率。可見,虛擬存儲器具有對換性特徵。

虛擬性

虛擬性是指能夠從邏輯上擴充記憶體容量,使用戶所看到的記憶體容量遠大於實際記憶體容量。這是虛擬存儲器所表現出來的最重要的特徵,也是實現虛擬存儲器的最重要的目標。值得說明的是,虛擬性是以多次性和對換性為基礎的,或者說,僅當系統允許將作業分多次調入記憶體,並能將記憶體中暫時不運行的程式和數據換至盤上時,才有可能實現虛擬存儲器;而多次性和對換性又必須建立在離散分配的基礎上。

相關詞條

熱門詞條

聯絡我們