請問虛擬記憶體和物理記憶體有什麼不同 虛擬記憶體的速度是不是讀取速度要慢一些

時間 2022-01-06 07:26:03

1樓:研究**一下

1、應用中的概念。

物理記憶體,在應用中,自然是顧名思義,物理上,真實的插在板子上的記憶體是多大就是多大了。看機器配置的時候,看的就是這個物理記憶體。

虛擬記憶體,這個概念就要稍微了解一下cpu了,^_^,只是稍微,畢竟我們現在談的是應用中的概念。我們應該知道,對於一般的32位cpu,有32根位址線,那麼它的定址空間就是4gb。也就是說,如果沒有其他的限制,我們的主機板上最大可以安裝4gb的物理記憶體。

哈哈,一般的機器是不會裝那麼多物理記憶體的,大把的銀子啊,價效比可合不上。程式設計師可不管這個,我們對cpu程式設計,不能一台機器根據你物理記憶體的大小我編乙個程式吧?那也太原始社會了吧。

所以程式設計師都是直接使用的4gb的奢侈的程序空間(或許,不應該用奢侈這麼短視的詞。曾幾何時,128m的物理記憶體也是我們不可想象的呢?)。

這怎麼辦?總不能不用那些程式了吧。好吧,這個問題交給os去解決吧。

這樣,os就提出了乙個虛擬記憶體的概念。就是程序、使用者、不必考慮實際上物理記憶體的限制,而直接對4gb的程序空間進行定址。如果所定址的資料實際上不在物理記憶體中,那就從「虛擬記憶體」中來獲取。

這個虛擬記憶體可以是乙個專門檔案格式的磁碟分割槽(比如linux下的swap分割槽),也可以是硬碟上的某個足夠大的檔案(比如win下的那個i386檔案,好像是這個名字)。物理記憶體中長期不用的資料,也可以轉移到虛擬記憶體中。這樣的交換由os來控制,使用者看起來就好像物理記憶體大了一樣。

有了虛擬記憶體的概念,我們就可以自由的使用4gb的程序空間了。但是,前提是你的硬碟由足夠的空間,而且你捨得劃分出(4gb-物理記憶體)大的虛擬記憶體空間來。^_^。

一般情況下,虛擬記憶體的大小,各個os也進行了限制(比如linux的swap分割槽的大小,win下也可以調整虛擬記憶體檔案的大小和位置)。所以,我們程式所能使用的儲存空間大小就是:物理記憶體+虛擬記憶體。

2、cpu中的概念。

物理記憶體,cpu的位址線可以直接進行定址的記憶體空間大小。比如8086只有20根位址線,那它的定址空間就是1mb。我們就說8086能支援1mb的物理記憶體。

即使我們安裝了128m的記憶體條在板子上,我們也只能說8086擁有1mb的物理記憶體空間。同理32位的386以上cpu,就可以支援最大4gb的物理記憶體空間了。

虛擬記憶體,這便是乙個和cpu的定址方式有關的乙個概念了。x86體系結構中,為了更好的管理記憶體空間,採用分段的方式來對記憶體進行定址。比如8086就用兩個位元組的段基位址和兩個位元組的偏移位址來定址整個可以定址的記憶體空間,即:

0000:0000方式(具體怎麼計算出實際的位址,參見各種彙編教材)。這樣,對整個1mb的物理記憶體空間定址是沒有問題了。

可是,用這種方式,最大可以定址到10ffef這個位址。這超出了20根位址線的位址的ffef大小的空間,就可以說是8086的虛擬記憶體了,所以可以說8086的虛擬記憶體位址空間可以達到10ffef。^_^,具體怎麼使用和看待這段記憶體,還取決於a20線的選通與否了,這是另外的話題了。

同樣的道理,386以上的cpu,由於在保護模式下使用了gdt和ldt,將段的定義放到了記憶體中,從而可以使用16位的段位址和32位的偏移位址。這樣算來,386以上的cpu的虛擬記憶體位址空間就可以達到64tb了。真是大的驚人,看來,這麼大的位址空間,一時還不能被軟體的發展淘汰。

3、零碎的叫法。

零碎的叫法常常來自與相對感覺深奧詼澀的虛擬記憶體概念。物理的東西,人們大多不去碰它,畢竟是實實在在存在的。而虛擬記憶體就經常有別冒名頂替的。

「乙個程序有4個gb的虛擬記憶體」這樣的說法屢見不鮮,其實,這是混淆了4gb的程序位址空間和虛擬記憶體這兩個概念。也算令一種解釋吧,畢竟那4個gb也是見不著影的,也是虛擬的。

簡單來講就是檔案資料交叉鏈結的活動檔案。是windows目錄下的乙個"win386.swp"檔案,這個檔案會不斷地擴大和自動縮小。

虛擬記憶體有如像cpu的l1和l2快取和硬碟的512k-2m快取。具體分析來講如果電腦只有64m物理記憶體的話,當讀取乙個為100m的可執行檔案時,就必須要用到比較大虛擬記憶體,檔案先會被記憶體讀取之後就會先儲存到虛擬記憶體,等待記憶體把檔案全部儲存到虛擬記憶體之後,跟住就會把虛擬內裡儲存的檔案釋放到原來的安裝目錄裡了.

物理記憶體是真正的記憶體,基本就是記憶體條上的記憶體。而虛擬記憶體是為了滿足系統對超出物理記憶體容量的需求時在外存(如硬碟)上開闢的儲存空間。

由於虛擬記憶體其實是放在外存上,因而與物理記憶體相比讀寫速度都非常慢。

關於可用物理記憶體的問題:由於系統要占用一部分物理記憶體,因此可用的物理記憶體必然比總的物理記憶體少。至於多少是正常的,可以參考乾淨的系統進行比較。

既然是虛擬的 是在硬碟上化出一塊空間用來暫時儲存資料 不過需要不停的讀出寫入 很費硬碟的。

2樓:小魚兒

虛擬記憶體是用硬碟上的空間建的,讀寫速度和硬碟一樣,當然比物理記憶體慢多了。

3樓:常山de子龍

虛擬記憶體是占用的硬碟空間.

當物理記憶體不夠用時就會使用一部分的虛擬記憶體.

讀取虛擬記憶體的速度人是感覺不出來的. 所以就沒有什麼快慢之說.

什麼叫虛擬記憶體有什麼作用,虛擬記憶體有什麼用?

不是不用,是虛擬記憶體它是硬碟的一部分空間,當物理記憶體不夠的時候,會借用這一部分硬碟空間來完成記憶體的任務。但是,硬碟的讀寫速度與記憶體相比,差得實在太遠,所以,當物理記憶體不夠時,虛擬記憶體的速度是不足以緩解系統卡頓的 暫時儲存在硬碟中的待處理資訊,如果虛擬記憶體不足,請檢視我的電腦屬性,在硬體...

什麼是虛擬記憶體,什麼叫虛擬記憶體有什麼作用

1 自定義虛擬記憶體,具體數值根據你的物理記憶體大小來定,玩遊戲,虛擬記憶體可設定大一些,物理記憶體大於256m,小於512m的,虛擬記憶體設為物理記憶體的1.5倍,物理記憶體大於512m小於1g的,虛擬記憶體設為跟物理記憶體同樣的值,物理記憶體大於1g的,就不用設定虛擬記憶體了 2 具體步驟如下 ...

什麼是虛擬記憶體,什麼叫虛擬記憶體有什麼作用

虛擬記憶體是計算機系統記憶體管理的一種技術。它使得應用程式認為它擁有連續的可用的記憶體 乙個連續完整的位址空間 而實際上,它通常是被分隔成多個物理記憶體碎片,還有部分暫時儲存在外部磁碟儲存器上,在需要時進行資料交換。pagefile.sys是windows下的乙個虛擬記憶體,它的作用與物理記憶體基本...

虛擬記憶體是什麼,設定虛擬記憶體有什麼用

如果計算機缺少執行程式或操作所需的隨機訪問記憶體 ram 則 windows 使用虛擬記憶體 virtual memory 進行補償。虛擬記憶體將計算機的 ram 和硬碟上的臨時空間組合在一起。當 ram 執行速度緩慢時,虛擬記憶體將資料從 ram 移動到稱為 分頁檔案 的空間中。將資料移入與移出分...

cpu和記憶體有什麼區別?什麼又是虛擬記憶體

一 cpu和記憶體是兩個完全不同的電腦硬體 1 cpu,即 處理器 http baike.baidu.com view 14045.htm,cpu是一台計算機的運算核心,相當於計算機的大腦。家用電腦的cpu的外觀如下圖 2 記憶體,http baike.baidu.com view 1082.htm...