1. 什么是虛擬存儲器
- 虛擬內存使應用程序以為自己擁有連續可用的內存,而實際上它通常是被分割成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數據交換。
虛擬存儲器定義:具有請求調入功能和置換功能,能從邏輯上對內存容量加以擴充的存儲器系統。其邏輯容量由內存容量與外存容量值之和所決定,其運行速度接近內存速度,每位的成本卻又接近於外存。
2. 局部性原理
- 在某個較短時間內,程序的執行僅局限於某個部分,相應的,程序訪問的內存空間也僅局限在某個區域。
- 可以表現在兩個方面:時間局限性(循環)和空間局限性。
3. 虛擬內存的技術實現
-
請求分頁存儲管理方式
a. 在分頁存儲管理的基礎上,為了支持虛擬存儲器而增加了請求調頁功能和頁面置換功能。
b. 請求分頁管理系統中,在作業開始運行之前,僅調入當前執行的部分段即可運行。假如在執行的過程中發現,要訪問的頁面不在內存,則由處理器通知操作系統按照相應的頁面置換算法將相應頁面調入主存,同時操作系統也可將暫時不用的頁面置換到外存。 -
請求分段存儲管理方式
a. 在分段存儲管理基礎上,為支持虛擬存儲器而增加了請求調入分段和分段置換功能。
b. 請求分段存儲管理方式中,在作業開始執行之前,僅調入當前執行的部分段即可運行。在執行過程中,當所訪問的段不在內存中時,可通知OS將所缺的段調入內存。 -
請求段頁式存儲管理方式
4. 頁面置換算法(主要4種)
- 最佳置換算法(Optimal,OPT)
淘汰永久不再使用的頁面。無法實現,通常作為其他置換算法的衡量方法。 - 先進先出置換算法(First In First Out,FIFO)
淘汰最先進入內存的頁面,即在內存中駐留最久的頁面。 - 最近最久未使用置換算法(Least Recently Used,LRU)
LRU算法賦予每個頁面一個字段,記錄上次被訪問以來經歷的時間T,當需淘汰頁面時,選擇現有頁面中T最大的一個頁面淘汰。 - 最少使用置換算法(Least Frequently Used,LFU)
置換選擇在之前時期使用最少的頁面作為淘汰頁。 - Clock置換算法
- 頁面緩沖算法