了解 虛擬記憶體

2021-09-25 23:27:45 字數 596 閱讀 9293

虛擬記憶體

假設計算機是32位

1 對虛擬記憶體位址空間(32位為4g)分頁產生頁(page),

2 對物理記憶體位址空間(假設256m)分頁產生頁幀(page frame),

這個頁和頁幀的大小是一樣大的,所以呢,在這裡,虛擬記憶體頁的個數勢必要大於物理記憶體頁幀的個數。

在計算機上有乙個頁表(page table),就是對映虛擬記憶體頁到物理記憶體頁的,更確切的說是頁號到頁幀號的對映,而且是一對一的對映。但是問題來了,虛擬記憶體頁的個數 > 物理記憶體頁幀的個數,豈不是有些虛擬記憶體頁的位址永遠沒有對應的物理記憶體位址空間?

不是的,作業系統是這樣處理的。作業系統有個頁面失效(page fault)功能。作業系統找到乙個最少使用的頁幀,讓他失效,並把它寫入磁碟,隨後把需要訪問的頁放到頁幀中,並修改頁表中的對映,這樣就保證所有的頁都有被排程的可能了。這就是處理虛擬記憶體位址到物理記憶體的步驟。

虛擬記憶體位址由頁號和偏移量組成。頁號對應的對映到乙個頁幀。那麼,說說偏移量。偏移量就是我上面說的頁(或者頁幀)的大小,即這個頁(或者頁幀)到底能存多少資料。

總結起來說,虛擬記憶體位址的大小是與位址匯流排位數相關,物理記憶體位址的大小跟物理記憶體條的容量相關。

詳細參見如下部落格

虛擬記憶體應用

虛擬記憶體的重要性體現在下面幾個方面 1 虛擬記憶體可以對映到硬碟,以達到擴充套件記憶體的作用,這樣系統在物理記憶體已經用滿的情況下,就不會因為沒有記憶體可用,而導致系統崩潰。2 虛擬記憶體是以程序空間為定址空間的,一般情況,程序使用者模式下的定址空間 是2g,為了避免記憶體的碎片,可以把2g程序空...

虛擬記憶體(Virtual Memory)

虛擬記憶體 virtual memory 是windows管理所有可用記憶體的方式。對於32位windows系 統,每個程序所用到的虛擬記憶體位址從0到2 32 1,總容量4gb,其中2gb是與作業系統以 及其他所有程序所共享,另外2gb分派給程序獨佔 這就是常說的32位windows中乙個進 程最...

虛擬記憶體使用

虛擬記憶體使用一 簡介windows 提供了3 中進行記憶體管理的方法,包括 虛擬記憶體 一般用來管理大型資料結構,受到硬碟調頁檔案的支援 記憶體對映檔案 常用來管理大型資料流和多程序共享。記憶體堆 最適合用來管理大量的小物件。二 虛擬記憶體的使用 1 我們可以在程序的位址空間中保留乙個區域 pvo...