本來最初是想知道共享庫是怎麼實現乙個副本就行的,順便拓展下。
當執行乙個程序時,它需要的記憶體有可能大系統記憶體容量。通常乙個程序會有4g獨立的空間,那麼n個程序就是
n * 4g的記憶體,很明顯系統記憶體不夠。
每個程序的4g只是虛擬記憶體,每次訪問的時候都要轉變成實體地址。
虛擬記憶體主要是通過請求呼叫和置換功能,從邏輯上對記憶體擴容。
一般程式在執行時,只會將當前需要執行的少數頁面或段轉入記憶體。如果訪問的資料沒有在記憶體中,便會產生
缺頁中斷,將需要的頁調入記憶體。如果沒有空地方,會找乙個進行覆蓋。
被覆蓋的頁如果修改過,還要將此頁寫會磁碟。
可以認為虛擬空間是被對映到磁碟上面(類似共享記憶體的mmap),然後進行上面的頁面請求置換。
在鏈結的時候,物理記憶體可以只有乙份共享庫的副本,然後不同的程序只需將自己的虛擬記憶體對映過去。
虛擬記憶體應用
虛擬記憶體的重要性體現在下面幾個方面 1 虛擬記憶體可以對映到硬碟,以達到擴充套件記憶體的作用,這樣系統在物理記憶體已經用滿的情況下,就不會因為沒有記憶體可用,而導致系統崩潰。2 虛擬記憶體是以程序空間為定址空間的,一般情況,程序使用者模式下的定址空間 是2g,為了避免記憶體的碎片,可以把2g程序空...
虛擬記憶體(Virtual Memory)
虛擬記憶體 virtual memory 是windows管理所有可用記憶體的方式。對於32位windows系 統,每個程序所用到的虛擬記憶體位址從0到2 32 1,總容量4gb,其中2gb是與作業系統以 及其他所有程序所共享,另外2gb分派給程序獨佔 這就是常說的32位windows中乙個進 程最...
虛擬記憶體使用
虛擬記憶體使用一 簡介windows 提供了3 中進行記憶體管理的方法,包括 虛擬記憶體 一般用來管理大型資料結構,受到硬碟調頁檔案的支援 記憶體對映檔案 常用來管理大型資料流和多程序共享。記憶體堆 最適合用來管理大量的小物件。二 虛擬記憶體的使用 1 我們可以在程序的位址空間中保留乙個區域 pvo...