大剑无锋之简单介绍一下虚拟内存【面试推荐】
內(nèi)存是程序得以運(yùn)行的基礎(chǔ),如何在有限的內(nèi)存空間中運(yùn)行較大的應(yīng)用程序,曾經(jīng)是一個(gè)難題,為了解決這個(gè)問題設(shè)計(jì)了許多方案,其中最成功的當(dāng)屬虛擬內(nèi)存技術(shù)。
虛擬內(nèi)存技術(shù)可以讓系統(tǒng)看上去具有比實(shí)際物理內(nèi)存大得多的內(nèi)存空間并為實(shí)現(xiàn)多道程序的執(zhí)行創(chuàng)造了條件。
現(xiàn)代操作系統(tǒng)提供了一種對(duì)主存的抽象能力叫做虛擬內(nèi)存,虛擬內(nèi)存為每個(gè)進(jìn)程提供了一個(gè)非常大的、一致的、私有的地址空間。
虛擬內(nèi)存提供了三個(gè)關(guān)鍵能力
- 虛擬內(nèi)存將主存看成是一個(gè)存儲(chǔ)在磁盤空間上的地址空間的高速緩存,主存中只保存活動(dòng)區(qū)域并根據(jù)需要在磁盤和主存之間來回傳送數(shù)據(jù)。
- 虛擬內(nèi)存為進(jìn)程提供了一致的地址空間簡(jiǎn)化了內(nèi)存管理
- 虛擬內(nèi)存保護(hù)了每個(gè)進(jìn)程的地址空間不被其它進(jìn)程破壞
虛擬內(nèi)存別稱虛擬存儲(chǔ)器(Virtual Memory)。電腦中所運(yùn)行的程序均需經(jīng)由內(nèi)存執(zhí)行,若執(zhí)行的程序占用內(nèi)存很大或很多,則會(huì)導(dǎo)致內(nèi)存消耗殆盡。為解決該問題,Windows中運(yùn)用了虛擬內(nèi)存技術(shù),即勻出一部分硬盤空間來充當(dāng)內(nèi)存使用。當(dāng)內(nèi)存耗盡時(shí),電腦就會(huì)自動(dòng)調(diào)用硬盤來充當(dāng)內(nèi)存,以緩解內(nèi)存的緊張。若計(jì)算機(jī)運(yùn)行程序或操作所需的隨機(jī)存儲(chǔ)器(RAM)不足時(shí),則 Windows 會(huì)用虛擬存儲(chǔ)器進(jìn)行補(bǔ)償。它將計(jì)算機(jī)的RAM和硬盤上的臨時(shí)空間組合。當(dāng)RAM運(yùn)行速率緩慢時(shí),它便將數(shù)據(jù)從RAM移動(dòng)到稱為“分頁文件”的空間中。將數(shù)據(jù)移入分頁文件可釋放RAM,以便完成工作。 一般而言,計(jì)算機(jī)的RAM容量越大,程序運(yùn)行得越快。若計(jì)算機(jī)的速率由于RAM可用空間匱乏而減緩,則可嘗試通過增加虛擬內(nèi)存來進(jìn)行補(bǔ)償。但是,計(jì)算機(jī)從RAM讀取數(shù)據(jù)的速率要比從硬盤讀取數(shù)據(jù)的速率快,因而擴(kuò)增RAM容量(可加內(nèi)存條)是最佳選擇。?
虛擬內(nèi)存是Windows 為作為內(nèi)存使用的一部分硬盤空間。虛擬內(nèi)存在硬盤上其實(shí)就是為一個(gè)碩大無比的文件,文件名是PageFile.Sys,通常狀態(tài)下是看不到的。必須關(guān)閉資源管理器對(duì)系統(tǒng)文件的保護(hù)功能才能看到這個(gè)文件。虛擬內(nèi)存有時(shí)候也被稱為是“頁面文件”就是從這個(gè)文件的文件名中來的。?[2]?
內(nèi)存在計(jì)算機(jī)中的作用很大,電腦中所有運(yùn)行的程序都需要經(jīng)過內(nèi)存來執(zhí)行,如果執(zhí)行的程序很大或很多,就會(huì)導(dǎo)致內(nèi)存消耗殆盡。為了解決這個(gè)問題,WINDOWS運(yùn)用了虛擬內(nèi)存技術(shù),即拿出一部分硬盤空間來充當(dāng)內(nèi)存使用,這部分空間即稱為虛擬內(nèi)存,虛擬內(nèi)存在硬盤上的存在形式就是 PAGEFILE.SYS這個(gè)頁面文件。
總結(jié)
以上是生活随笔為你收集整理的大剑无锋之简单介绍一下虚拟内存【面试推荐】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你真正的去了解过Linux吗?不单单是一
- 下一篇: 理解一下select 1 和 exist