操作系统——7.虚拟存储技术
JAVA后端開發知識總結(持續更新…)
虛擬內存與虛擬存儲技術
參考文檔
B站:《王道考研 操作系統》
《現代操作系統》
《虛擬內存的那點事兒》
文章目錄
- 虛擬內存與虛擬存儲技術
- 參考文檔
- 一、虛擬內存基本概念
- 二、請求分頁管理方式
- 2.1 請求頁表機制
- 2.2 缺頁中斷機構
- 2.3 頁面置換算法
一、虛擬內存基本概念
??虛擬存儲技術是內存空間擴充的相關技術,在傳統存儲管理方式的基礎上,結合內存擴充技術從邏輯上擴充內存容量。
- 傳統存儲管理方式的缺點
??一次性:作業必須一次性全部裝入內存后才能開始運行,造成兩個問題:①作業很大時,不能全部裝入內存;②當大量作業要求運行時,無法容納所有作業,只有少量作業能運行,導致多道程序并發度下降。
??駐留性:一旦作業被裝入內存,就會一直駐留在內存中,直至作業運行結束。但在一個時間段內,只需要訪問作業的一小部分數據即可正常運行,這就導致了內存中會駐留大量的、暫時用不到的數據,浪費了寶貴的內存資源。
??上述問題可以通過虛擬存儲技術解決,可以只裝入部分程序到內存就開始運行,虛擬存儲技術是基于局部性原理的:
- 局部性原理
??時間局部性 :如果執行了程序中的某條指令,那么不久后這條指令很有可能再次執行;如果某個數據被訪問過,不久之后該數據很可能再次被訪問。(因為程序中存在大量的循環)
??空間局部性 :一旦程序訪問了某個存儲單元,在不久之后,其附近的存儲單元也很有可能被訪問(因為很多數據在內存中都是連續存放的,并且程序的指令也是順序地在內存中存放的)。
- 應用局部性原理
??高速緩沖技術:時間局部性是通過將近期會頻繁訪問到的指令和數據放到更高速的緩存存儲器中,暫時用不到的數據放在更低速存儲器中。空間局部性通常是使用較大的高速緩存,并將預取機制集成到高速緩存控制邏輯中實現。
??虛擬內存技術實際上就是建立了“內存一外存”的兩級存儲器的結構,利用局部性原理實現髙速緩存。
- 虛擬內存
??基于局部性原理,在程序裝入時,可以將程序中很快會用到的部分裝入內存,暫時用不到的部分留在外存,然后就可以讓程序開始執行。
??在程序執行過程中,當所訪問的信息不在內存時,由操作系統負責將所需信息從外存調入內存,然后繼續執行程序。
??若內存空間不夠,由操作系統負責將內存中暫時用不到的信息換出到外存。在操作系統的管理下,在用戶看來似乎有一個比實際內存大得多的內存,這就是虛擬內存。
??虛擬內存的重要意義是它定義了一個連續的虛擬地址空間,把內存擴展到硬盤空間是使用虛擬內存的必然結果。實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數據交換。
??虛擬內存為每個進程提供了一個一致的、私有的地址空間,它讓每個進程產生了一種自己在獨享主存的錯覺(每個進程擁有一片連續完整的內存空間)。
??虛擬內存的實現需要建立在離散分配的內存管理方式的基礎上,與傳統離散內存管理技術的區別是新增了兩大功能:
二、請求分頁管理方式
??請求分頁存儲管理與基本分頁存儲管理的主要區別在于新增了請求調頁和頁面置換功能,根本區別在于是否將程序所需的全部地址空間都裝入內存。請求分頁是目前最常用的一種實現虛擬存儲器的方法。請求分頁存儲管理系統中,在作業開始運行之前,僅裝入當前要執行的部分頁即可運行。
2.1 請求頁表機制
2.2 缺頁中斷機構
??缺頁中斷是因為當前執行的指令想要訪問的目標頁面未調入內存而產生的,因此屬于內中斷。一條指令在執行期間,可能產生多次缺頁中斷。
基本流程:
相應的地址變換機構:
2.3 頁面置換算法
- 最佳置換算法(OPT)
??每次選擇淘汰的頁面將是以后永不使用,或者在最長時間內不再被訪問的頁面,這樣可以保證最低的缺頁率。但是,最佳置換算法是無法實現的。
- 先進先出置換算法(FIFO)
??每次選擇淘汰的頁面是最早進入內存的頁面。把調入內存的頁面根據調入的先后順序排成一個隊列,需要換出頁面時選擇隊頭頁面即可。
- 最近最久未使用置換算法(LRU)
??每次淘汰的頁面是最近最久未使用的頁面。賦予每個頁面對應的頁表項中,用訪問字段記錄該頁面自上次被訪問以來所經歷的時間t。當需要淘汰一個頁面時,選擇現有頁面中 t 值最大的,即最近最久未使用的頁面。
??最佳置換算法性能最好,但無法實現;先進先出置換算法實現簡單,但算法性能差;最近最久未使用置換算法性能好,是最接近OPT算法性能的,但是實現起來需要專門的硬件支持,算法開銷大。
??時鐘置換算法是一種性能和開銷較均衡的算法,又稱CLOCK算法,或最近未用算法(LFU)。
- 時鐘置換算法(CLOCK)
??為每個頁面設置一個訪問位和修改位,再將內存中的頁面都通過鏈接指針鏈接成循環隊列。
??訪問位為1,表示最近訪問過,訪問位為0,表示最近沒訪問過。
??在其它條件都相同時,應優先淘汰沒有修改過的頁面,避免I/O操作。修改位=0,表示頁面沒有被修改過,修改位=1,表示頁面被修改過。改進型CLOCK置換算法選擇一個淘汰頁面最多會進行四輪掃描。
對比:
總結
以上是生活随笔為你收集整理的操作系统——7.虚拟存储技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP与 WebService接口的配置
- 下一篇: 万字详述推荐系统经典模型DCN,DCN_