虛擬存儲器詳述介紹


在這裏插入圖片描述

引入:

基本段頁式存儲管理的缺陷在於作業執行時必須全部裝入內存,使得大型作業被拒絕或部分作業需要在外存長期等待。

傳統存儲管理方式特徵:

一次性:作業必須一次性全部裝入內存後才能開始運行。這會造成兩個問題:①作業很大時,不能全部裝入內存,導致大作業無法運行;②當大量作業要求運行時,由於內存無法容納所有作業,因此只有少量作業能運行,導致多道程序併發度下降。
駐留性:一旦作業被裝入內存,就會一直駐留在內存中,直至作業運行結束。事實上,在一個時間段內,只需要訪問作業的一小部分數據即可正常運行,這就導致了內存中會駐留大量的、暫時用不到的數據,浪費了寶貴的內存資源。

局部性原理

時間局部性:如果執行了程序中的某條指令,那麼不久後這條指令很有可能再次執行;如果某個數據被訪問過,不久之後該數據很可能再次被訪問。(因爲程序中存在大量的循環)
空間局部性:一旦程序訪問 了某個存儲單元,在不久之後,其附近的存儲單元也很有可能被訪問。(因爲很多數據在內存中都是連續存放的,並且程序的指令也是順序地在內存中存放的)

定義

在具有層次結構存儲器的計算機系統中,採用自動實現請求調入功能和部分對換功能。這樣的計算機系統好像爲用戶提供了一個存儲容量比實際主存大得多的存儲器.就稱爲“虛擬存儲器”。
虛擬存儲器是爲擴大主存而採用的一種設計技巧,它的容量與主存大小無直
接關係,而受限於計算機的地址結構及可用的輔助存儲器的容量。

如果對虛擬存儲實在不理解,可以參考知乎的這篇文章如何用通俗易懂的語言解釋虛擬存儲器?

實現方法:

程序運行前:僅裝入當前要運行的主程序需要的部分頁面或段
程序運行時:

若要訪問的頁(段)已裝入內存,繼續執行
若產生缺頁或缺段且內存中還有足夠的空間,則啓動OS的請求調頁(段)功能調入需要的頁(段)
若產生缺頁或缺段且內存空間不足時,先啓動頁(段)置換功能,將內存中暫時不用的頁(段)調出內存,接着啓動請求調頁(段)程序調入需要的頁(段)

實現虛擬存儲器必須解決好以下有關問題:

  • 主存輔存統一~管理問題、
  • 邏輯地址到物理地址的轉換問題、
  • 部分裝入和部分對換問題。

虛擬存儲管理主要採用以下技術實現:

置換時以頁面(段)爲單位,爲了實現請求調頁(段)和置換功能,系統必須提供相應的硬件支持和軟件支持:

  1. 請求分頁(段)的頁(段)表機制,是在頁(段)表機制上增加若干項形成的。
  2. 缺頁(段)中斷機構
  3. 地址變換機構
  4. 實現請求分頁(段)的軟件。包括實現請求調頁(段)的軟件和實現頁(段)的置換功能的軟件。
    在這裏插入圖片描述

特徵:

多次性

作業可被分爲多次調入內存
虛存的獨有特徵

對換性

允許作業換入換出
顯著提高內存利用率

虛擬性

虛存對內存實行邏輯擴充
虛擬性以多次性和對換性爲基礎,後二者又以離散分配爲基礎
在這裏插入圖片描述
例:虛擬存儲器的基本特徵是什麼?虛擬存儲器的容量主要受到哪兩方面的限制?

虛擬存儲器的基本特徵有:多次性、對換性、虛擬性、離散性。
多次性:允許用戶將一個作業分爲多個較小的作業,多次調入內存,而不用一次全調入內存
對換性:允許將暫時不能運行的進程和那些暫時不需要的數據調入外存,將外存已經具備運行條件的進程和所需要的數據調入內存
離散性:作業在內存中不用分配一連續的內存空間。
虛擬性:指通過虛擬技術,將內存進行邏輯上的擴充,使用戶看到的是比實際內存大得多的內存空間

虛擬存儲器的容量主要受以下兩方面的限制:第一:內存加外存的總容量;第二:邏輯地址結構。

易混知識點:

虛擬內存的最大容量是由計算機的地址結構(CPU尋址範圍)確定的
虛擬內存的實際容量=min ( 內存和外存容量之和,CPU尋 址範圍)

如:某計算機地址結構爲32位,按字節編址,內存大小爲512MB,外存大小爲2GB。則,虛擬內存的最大容量爲232B= 4GB
虛擬內存的實際容量= min (232B, 512MB+2GB) = 2GB+512MB

部分內容參考王道考研。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章