物理內(nèi)存和虛擬內(nèi)存

物理內(nèi)存和虛擬內(nèi)存的區(qū)別

物理內(nèi)存

  • 1.插在板子上的內(nèi)存是多大就是多大了
  • 2.在cpu概念中物理內(nèi)存就是cpu的地址線可以直接進(jìn)行尋址的內(nèi)存空間大小。
例子:比如8086只有20根地址線,那么它的尋址空間就是1MB,我們就說(shuō)8086能支持1MB的物理內(nèi)存,及時(shí)我們安裝了128M的內(nèi)存條在板子上,我們也只能說(shuō)8086擁有1MB的物理內(nèi)存空間。同理我們現(xiàn)在大部分使用的是32位的機(jī)子,32位的386以上CPU就可以支持最大4GB的物理內(nèi)存空間了。

虛擬內(nèi)存

    1. 正在運(yùn)行的一個(gè)進(jìn)程,他所需的內(nèi)存是有可能大于內(nèi)存條容量之和的.
  • 2.但是并不是所有數(shù)據(jù)都一起加到物理內(nèi)存的,勢(shì)必有一部分?jǐn)?shù)據(jù)放入到其他介質(zhì)(磁盤(pán))。當(dāng)進(jìn)程需要的時(shí)候,再通過(guò)調(diào)度將其
    從磁盤(pán)撈取到物理內(nèi)存。
  • 3.因此虛擬內(nèi)存可以理解為進(jìn)程所需的內(nèi)存空間總和,其中一部分可能不在我們物理內(nèi)存。

早期沒(méi)有虛擬內(nèi)存的時(shí)候出現(xiàn)的問(wèn)題:

  • 1.現(xiàn)在有多個(gè)程序需要運(yùn)行,但是內(nèi)存空間不足了,就需要將其他程序暫時(shí)拷貝到硬盤(pán)當(dāng)中,然后將新的程序裝入內(nèi)存運(yùn)行.由于大量的數(shù)據(jù)裝入裝出,內(nèi)存的使用效率會(huì)十分Low。

  • 2.由于程序都是直接訪問(wèn)物理內(nèi)存的,所以一個(gè)進(jìn)程可以修改其他進(jìn)程的內(nèi)存數(shù)據(jù),甚至修改內(nèi)核地址空間中的數(shù)據(jù)。

  • 3.因?yàn)閮?nèi)存地址是隨機(jī)分配的,所以程序運(yùn)行的地址也是不正確的。

假設(shè)你的計(jì)算機(jī)是32位,那么它的地址總線是32位的,也就是它可以尋址00xFFFFFFFF(4G)的地址空間,但如果你的計(jì)算機(jī)只有256M的物理內(nèi)存0x0x0FFFFFFF(256M),同時(shí)你的進(jìn)程產(chǎn)生了一個(gè)不在這256M地址空間中的地址,那么計(jì)算機(jī)該如何處理呢?

  • 1.計(jì)算機(jī)對(duì)虛擬內(nèi)存進(jìn)行分頁(yè)產(chǎn)生頁(yè),對(duì)物理內(nèi)存分頁(yè)產(chǎn)生頁(yè)幀。
  • 2.這里的頁(yè)和頁(yè)幀大小一樣,因此我們的頁(yè)個(gè)數(shù)一般大于頁(yè)幀數(shù)。
  • 3.計(jì)算機(jī)上有一個(gè)頁(yè)表,類(lèi)似于map。是虛擬內(nèi)存頁(yè)和物理內(nèi)存幀號(hào)的映射(一對(duì)一)。
  • 4.因?yàn)槭且粚?duì)一所以有些虛擬內(nèi)存頁(yè)無(wú)法再頁(yè)表上找到對(duì)應(yīng)的頁(yè)幀,這個(gè)時(shí)候如果需要物理內(nèi)存但是找不到頁(yè)幀,
    只能調(diào)用操作系統(tǒng)進(jìn)行覆蓋最少使用的頁(yè)幀,然后將頁(yè)幀上修改的數(shù)據(jù)刷入磁盤(pán)。然后把我們?cè)擁?yè)需要的內(nèi)容寫(xiě)入該頁(yè)幀然后修改頁(yè)表的映射。
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 想起之前上過(guò)的操作系統(tǒng)課,沒(méi)認(rèn)真聽(tīng)啊。。 1. 每個(gè)進(jìn)程都有自己獨(dú)立的4G內(nèi)存空間,各個(gè)進(jìn)程的內(nèi)存...
    頂兒響叮當(dāng)閱讀 720評(píng)論 1 1
  • 物理內(nèi)存就是你的機(jī)器本身內(nèi)存了(如內(nèi)存條的大小)。物理內(nèi)存就是CPU的地址線可以直接進(jìn)行尋址的內(nèi)存空間大小。比如8...
    光劍書(shū)架上的書(shū)閱讀 6,641評(píng)論 0 11
  • 物理內(nèi)存和虛擬內(nèi)存的關(guān)系 進(jìn)程容器中4GB空間的內(nèi)容分布 在所謂的4GB空間內(nèi),系統(tǒng)內(nèi)核占據(jù)了高2GB的空間,普通...
    Asura_Luo閱讀 809評(píng)論 0 0
  • 本文轉(zhuǎn)載自 https://juejin.im/post/59f8691b51882534af254317 參考:...
    xingdong閱讀 2,884評(píng)論 0 3
  • 1. 基礎(chǔ)知識(shí) 1.1、 基本概念、 功能 馮諾伊曼體系結(jié)構(gòu)1、計(jì)算機(jī)處理的數(shù)據(jù)和指令一律用二進(jìn)制數(shù)表示2、順序執(zhí)...
    yunpiao閱讀 5,780評(píng)論 1 22

友情鏈接更多精彩內(nèi)容