虛擬記憶體是一種存儲方案,為用戶提供了一個擁有非常大的主記憶體的幻覺。 這是通過將輔助記憶體的一部分作為主記憶體來完成的。
在這種方案中,用戶可以加載比可用主存更大的進程,因為存在記憶體可用於加載進程的錯覺。
操作系統不是在主記憶體中加載一個大進程,而是在主記憶體中加載多個進程的不同部分。
通過這樣做,多程式的程度將會增加,因此CPU利用率也會增加。
虛擬記憶體如何工作?
在現代語言中,虛擬記憶體近來變得非常普遍。 在這種方案中,無論何時需要將一些頁面加載到主記憶體中用於執行,並且記憶體對於那些許多頁面不可用,那麼在這種情況下,而不是停止頁面進入主記憶體,OS搜索 最近最少使用的RAM區域或未被引用的RAM區域,並將其複製到輔助記憶體中以為主記憶體中的新頁面留出空間。
由於所有這些過程都是自動發生的,因此它使電腦感覺像是擁有無限的RAM。
按需分頁
按需分頁(Demand Paging)是虛擬記憶體管理的一種流行方法。 在需求分頁中,最少使用的進程頁面存儲在輔助記憶體中。
當需求發生或發生頁面錯誤時,頁面會被複製到主記憶體。 有各種頁面替換演算法用於確定將被替換的頁面。 稍後我們將詳細討論它們。
虛擬記憶體管理系統的快照
假設2個進程,P1和P2,每個包含4個頁面。 每個頁面大小是1 KB。 主記憶體包含8個每個1 KB的幀。 操作系統駐留在前兩個分區中。 在第三個分區中,P1的第1頁被存儲,而其他幀也被顯示為在主記憶體中填充了不同的進程頁面。
兩個頁面的頁表都是1 KB大小,因此每個頁面可以放在一個框架中。 這兩個進程的頁表包含圖像中也顯示的各種資訊。
CPU包含一個寄存器,其中包含頁表的基址,在P1的情況下為5,在P2的情況下為7。 當涉及訪問實際的相應條目時,該頁表基地址將被添加到邏輯地址的頁碼。
虛擬記憶體的優點
- 多程式的程度將會增加。
- 用戶可以用較少的真實RAM運行大型應用程式。
- 不需要購買更多的記憶體RAM。
虛擬記憶體的缺點
- 由於交換需要時間,系統變慢。
- 切換應用程式需要更多時間。
- 用戶將有較小的硬碟空間供其使用。