虛擬記憶體的概念是什麼,虛擬記憶體是什麼概念?

2022-03-02 09:25:20 字數 5087 閱讀 1747

1樓:商建芝

別稱虛擬儲存器(virtual memory)。電腦中所執行的程式均需經由記憶體執行,若執行的程式佔用記憶體很大或很多,則會導致記憶體消耗殆盡。為解決該問題,windows中運用了虛擬記憶體[1]技術,即勻出一部分硬碟空間來充當記憶體使用。

當記憶體耗盡時,電腦就會自動呼叫硬碟來充當記憶體,以緩解記憶體的緊張。若計算機執行程式或操作所需的隨機儲存器(ram)不足時,則 windows 會用虛擬儲存器進行補償。它將計算機的ram和硬碟上的臨時空間組合。

當ram執行速率緩慢時,它便將資料從ram移動到稱為「分頁檔案」的空間中。將資料移入分頁檔案可釋放ram,以便完成工作。 一般而言,計算機的ram容量越大,程式執行得越快。

若計算機的速率由於ram可用空間匱乏而減緩,則可嘗試通過增加虛擬記憶體來進行補償。但是,計算機從ram讀取資料的速率要比從硬碟讀取資料的速率快,因而擴增ram容量(可加記憶體條)是最佳選擇。

2樓:匿名使用者

就是把硬碟的一部分拿出來當做記憶體來存取檔案

3樓:x龍隱

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

虛擬記憶體是什麼概念?

4樓:殤_紫翼

是的。是把硬碟劃出2g來當做記憶體使用。

但達不到實體記憶體基礎上再加2g這樣的效能。

5樓:匿名使用者

首先你要了解虛擬記憶體誕生的原因,當年是因為記憶體容量過小,現有的記憶體容量無法滿足各大遊戲和軟體,所以windows系統採取用硬碟容量來代替記憶體的方法,於是虛擬記憶體應運而生。簡單的說就是在硬碟劃分一定的區域以彌補實體記憶體的不足,但是硬碟的速度和效率比記憶體慢幾百倍,這是不得已而為之的一個辦法。而現在記憶體過剩的年代,虛擬記憶體就我個人的觀點來說很雞肋。

不僅不能提速,還會減低效率。不過小數軟體遊因為設定問題,要使用到虛擬記憶體,因為虛擬記憶體有一個優點,就是能儲存資料,記憶體在斷電或者關機的時候所有的資料都會消除,而虛擬記憶體會臨時儲存在硬碟。

請指教一下虛擬記憶體的概念及作用

6樓:匿名使用者

虛擬記憶體,它的作用與實體記憶體基本相似,但它是作為實體記憶體的「後備力量」而存在的,也就是說,只有在實體記憶體已經不夠使用的時候,它才會發揮作用。

改變頁面檔案位置的方法是:用滑鼠右鍵點選「我的電腦」,選擇「屬性→高階→效能設定→高階→更改虛擬記憶體」,在驅動器欄裡選擇想要改變到的位置

記憶體與虛擬記憶體有什麼關係??

7樓:匿名使用者

記憶體是真正的記憶體,基本就是記憶體條上的記憶體。而虛擬記憶體是為了滿足系統對超出實體記憶體容量的需求時在外存(如硬碟)上開闢的儲存空間。 由於虛擬記憶體其實是放在外存上,因而與實體記憶體相比讀寫速度都非常慢。

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

8樓:匿名使用者

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

實體記憶體和虛擬記憶體有什麼區別

9樓:喜鯤黨北晶

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

設定虛擬記憶體,設定虛擬記憶體

右鍵單擊 我的電腦 左鍵單擊 屬性 在選項卡中選擇 高階 左鍵單擊,選擇第一組 效能 單擊設定,開啟後選擇 高階 單擊,最下面一項 虛擬記憶體 單擊 更改 開啟後點選卷標c,點選下面的 無分頁檔案 選中後點選後面的 設定 這樣c盤上的虛擬記憶體就沒有了。然後點選d,e,f中剩餘空間最大的一個碟符,選...

虛擬記憶體太小,虛擬記憶體太小

可能你玩遊戲或使用某個軟體需要較大的記憶體,你可以利用硬碟空間增大虛擬記憶體 右擊我的電腦 屬性 高階 效能設定 高階 虛擬記憶體更改,按自己電腦的硬碟在自定義大小裡設定數字,然後再按設定 確定,就可以了 根據微軟的建議 初始值和最大值設為同樣的數值 實體記憶體小於256m,虛擬記憶體設為實體記憶體...

虛擬記憶體是什麼啊,虛擬記憶體是什麼東西?

虛擬記憶體用硬碟空間做記憶體來彌補計算機ram空間的缺乏。當實際ram滿時 實際上,在ram滿之前 虛擬記憶體就在硬碟上建立了。當實體記憶體用完後,虛擬記憶體管理器選擇最近沒有用過的,低優先順序的記憶體部分寫到交換檔案上。這個過程對應用是隱藏的,應用把虛擬記憶體和實際記憶體看作是一樣的。每個執行在w...