虛擬內(nèi)存是指在內(nèi)存貯器容量不夠大的計(jì)算機(jī)中,為給用戶提供更大的隨機(jī)訪問(wèn)空間而采用的一種軟件設(shè)計(jì)技巧 。
虛擬內(nèi)存系統(tǒng)是指管理和分配用戶程序虛擬內(nèi)存的程序。 (推薦學(xué)習(xí):phpstorm)
虛擬內(nèi)存系統(tǒng)出現(xiàn)的原因有內(nèi)存容量不大和程序局部性原理。
分頁(yè)式管理:將內(nèi)存分成固定大小的頁(yè),分配若干頁(yè)將整個(gè)進(jìn)程載入。頁(yè)面可以不連續(xù)是其重要優(yōu)點(diǎn),不會(huì)產(chǎn)生外碎片,更有效地利用了內(nèi)存,不過(guò)會(huì)產(chǎn)生一些內(nèi)碎片,即分配給進(jìn)程的最后一個(gè)頁(yè)往往不能正好用完,不過(guò)在頁(yè)面大小不是很大的時(shí)候可以接受。
請(qǐng)求式分頁(yè)和虛擬內(nèi)存
請(qǐng)求式分頁(yè):將進(jìn)程放入虛擬內(nèi)存中,由于一個(gè)進(jìn)程的頁(yè)面不會(huì)同時(shí)全部被用到,只將需要用到的頁(yè)面調(diào)入物理內(nèi)存。即進(jìn)程并沒(méi)有整個(gè)在物理內(nèi)存中。
幾個(gè)請(qǐng)求式分頁(yè)的概念:(博客鏈接:請(qǐng)求式分頁(yè)中的內(nèi)存分配)
固定分配:物理內(nèi)存中分配給進(jìn)程的內(nèi)存塊數(shù)一定。
可變分配:物理內(nèi)存先分配給進(jìn)程一些內(nèi)存塊,如不夠,可適當(dāng)增加。
局部置換:發(fā)生在分配的內(nèi)存塊已用完,又發(fā)生了缺頁(yè)時(shí),只能置換本來(lái)就是自己的內(nèi)存塊。
全局置換:發(fā)生在分配的內(nèi)存塊已用完,又發(fā)生了缺頁(yè)時(shí),可以置換到操作系統(tǒng)保留的空閑頁(yè)。這其實(shí)相當(dāng)于增加了進(jìn)程占有的內(nèi)存塊數(shù)。
三種分配方式:固定分配局部置換、可變分配全局置換、可變分配局部置換。固定分配、全局置換不能組合。