1. 程式人生 > >Linux下的RAM,ROM,虛擬記憶體介紹

Linux下的RAM,ROM,虛擬記憶體介紹

其實RAM就是快取記憶體,通電就具有記憶功能,斷電就失去,也就是執行記憶體,就是用來存放臨時檔案,而“記憶體”就是RAM的

一種物理硬體,廣義來說兩者也可以說是同一概念。而虛擬記憶體是系統利用硬碟分出來的具有輔助記憶體工作的虛擬RAM,不是

硬體,但又依靠硬碟。

簡單的說 RAM是你一般買電腦時看到的那個記憶體,電腦執行一些程式,系統時都會裝入這個記憶體。。。

ROM是固定的記憶體,只是電腦啟動時會讀取用來幫助啟動那些硬體啥滴。。。電腦進入系統後用的就是RAM和硬碟了,

硬碟是外存。

========================================================================================

記憶體就是RAM。
虛擬記憶體並不是把硬碟當作記憶體,而是在硬碟上建立的交換檔案。
當實體記憶體用完後,虛擬記憶體管理器選擇最近沒有用過的,低優先順序的記憶體部分寫到交換檔案(頁面檔案)上,並將需要訪問記憶體的程式的內容從頁面檔案中換入到實體記憶體。
舉個例子:
假設計算機實體記憶體是512M,執行A和B這兩個個軟體的時候實體記憶體已經達到512M,我們在執行軟體C,如果沒有虛擬記憶體技術,我們此時根本不能啟動軟體C,因為軟體C不能在記憶體中寫入相關資訊,不過現在有了虛擬記憶體技術,此時系統將會釋放一部分實體記憶體給軟體C用,假設釋放的是軟體A所佔用的實體記憶體,那麼軟體A所佔用的實體記憶體資訊將會儲存到硬碟上的一個

pagefile.sys的檔案中,當我們想再執行軟體A的時候,此時系統會從pagefile.sys查詢相應的軟體A資訊,同時把這些資訊重新載入到實體記憶體裡面,並且把軟體C的資訊釋放到pagefiles.sys裡面。
這樣一個迴圈交換過程就是虛擬記憶體技術,為什麼叫它虛擬呢,因為系統把檔案釋放到了硬碟上,而這個硬碟可不是記憶體,只是臨時的儲存記憶體資訊的地方。
在實體記憶體佔滿之前虛擬記憶體是不進行交換的,但是不要以為此時系統沒有用虛擬記憶體技術。
比如我們只開一個佔用256M空間的軟體C,當我們開啟軟體C的時候,系統就為軟體C這個程式指定了一個虛擬空間,只是此時這個虛擬空間裡面沒有資訊而已。
而虛擬記憶體設定應該是實體記憶體的多少倍到多少倍是完全不科學的。
實事是完全應該相反的。
否則256M實體記憶體只設置512-768M的虛擬記憶體是完全不夠用的。
而4G實體記憶體要設定8G-12G的虛擬記憶體完完全全是浪費。
要設定虛擬記憶體結合實體記憶體的大小是實體記憶體越大,虛擬記憶體越小,實體記憶體越小,虛擬記憶體越大。以現在的軟體和遊戲來說實體記憶體+虛擬記憶體=2G已經完全夠用了。
至於虛擬記憶體的大小,最小值與最大值都天一樣的數值來固定頁面檔案的大小有利於減少頁面檔案碎片的產生。
並且由於上面說過的即便在實體記憶體充足的情況下實體記憶體也工作,所以在實體記憶體足以應付你的軟體、遊戲的情況下禁用虛擬記憶體可以對系統性能有一定程度的提高,雖然微乎其微……