物理記憶體和虛擬記憶體有什麼區別,什麼是物理記憶體和虛擬記憶體

時間 2022-01-03 19:50:06

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也是見不著影的,也是虛擬的。

2樓:建築結構加固補強

虛擬記憶體和物理記憶體的區別在於:

物理記憶體是真實存在的,它的表現形式是插在電腦主機板上的記憶體條。看機器配置的時候,看的就是這個物理記憶體。而虛擬記憶體是虛擬存在的。

它其實是電腦勻出一部分硬碟空間來充當記憶體使用。當記憶體耗盡時,電腦就會自動呼叫硬碟來充當記憶體,以緩解記憶體的緊張。

記憶體條的讀寫速度達到2700mb/s以上,而普通機械硬碟讀寫速度只有150mb/s,即使是固態硬碟也僅可以達到500mb/s,因而與物理記憶體相比虛擬記憶體的讀寫速度都非常慢。

物理記憶體容量由記憶體條決定。記憶體條是多少gb,物理記憶體就是多少gb。比如主機板上有兩根1gb記憶體條,那麼物理記憶體容量就是2gb。

如果再插上一根1gb記憶體條,那麼物理記憶體容量就有3gb。而虛擬記憶體的容量大小可以通過設定進行改變。

物理記憶體和虛擬記憶體起到的作用不同,物理記憶體是與cpu進行溝通的橋梁,虛擬記憶體則是在計算機執行程式或操作所需的物理記憶體不足時,起到補償作用。

物理記憶體比虛擬記憶體更好,因為它起到主要作用而且讀寫速度更快,虛擬記憶體起到輔助作用,讀寫速度更慢。

物理記憶體(physical memory)是相對於邏輯記憶體而言的。物理記憶體指通過物理記憶體條而獲得的記憶體空間,而邏輯記憶體則是指將硬碟的一塊區域劃分來作為記憶體。記憶體主要作用是在計算機執行時為作業系統和各種程式提供臨時儲存。

常見的物理記憶體規格有256m、512m、1g、2g等,現如今隨著計算機硬體的發展,已經出現4g、8g甚至更高容量的記憶體規格。當物理記憶體不足時,可以用虛擬記憶體代替。

3樓:

物理記憶體就是咱們通常值得記憶體條的容量。而虛擬記憶體,是指我們將硬碟空間劃分出來一部分,用於與記憶體同樣的作用。如果物理記憶體佔的多了,會表現出系統反映緩慢等問題。

而虛擬記憶體多了,只會占用硬碟空間。但可以說,畢竟是虛擬出來的記憶體。所以它的系統速度的作用不大,基本代替不了物理記憶體的作用。

什麼是物理記憶體和虛擬記憶體?

4樓:

1、物理記憶體是指由於安裝記憶體條而獲得的臨時儲存空間。主要作用是在計算機執行時為作業系統和各種程式提供臨時儲存。常見的物理記憶體規格有256m、512m、1g、2g等,當物理記憶體不足時,可以用虛擬記憶體代替。

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

擴充套件資料

虛擬記憶體工作原理:

1、虛擬記憶體**處理器訪問主存的邏輯位址分解成組號a和組內位址b,並對組號a進行位址變換,即將邏輯組號a作為索引,查位址變換表,以確定該組資訊是否存放在主存內。

2、虛擬記憶體基於對位址空間的重定義的,即把位址空間定義為「連續的虛擬記憶體位址」,以藉此「欺騙」程式,使它們以為自己正在使用一大塊的「連續」位址。

5樓:一直注視著你

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也是見不著影的,也是虛擬的。

實體記憶體和虛擬記憶體有什麼區別 平時說的記憶體是實體記憶體還是虛擬

當實體記憶體不夠的時候 系統會將硬碟的區域劃分一部分出來用於記憶體作用 平時說的記憶體是實體記憶體 實體記憶體越大 所需要的虛擬記憶體就越少 機器執行速度越快 實體記憶體是實際存在的 虛擬記憶體是硬碟分出來一部分當成記憶體,不知真正記憶體條 虛擬記憶體沒有物理的快 實體記憶體 插主機板上的東西 虛擬...

物理記憶體與虛擬記憶體,物理記憶體與虛擬記憶體

1.你問的512ddr就是你的物理記憶體,你理解的很正確。2.你如果要檢視各個軟體的記憶體使用情況,你用ctrl alt del開啟任務管理器,裡面有乙個程序專案,你開啟,你就可以看見各個軟體的記憶體使用情況了,可能開始時你不大了解前面的映象名稱代表的什麼軟體,但是你仔細觀察,就可以知道了。3.磁碟...

什麼是虛擬記憶體,什麼是物理記憶體和虛擬記憶體

簡單來說,虛擬記憶體就是把記憶體裡暫時不需要的資料放到硬碟上,這些資料會以乙個特別的檔案pagefile.sys的形式存在。這種方法就是虛擬記憶體。虛擬記憶體 是xp的新增功能,是在硬碟裡分出一部分空間,做記憶體來使用.虛擬記憶體就是把記憶體裡暫時不需要的資料放到硬碟上 什麼是物理記憶體和虛擬記憶體...