在計(jì)算機(jī)系統(tǒng)中,進(jìn)程是與其他進(jìn)程共享CPU和主存資源的。但是共享主存會(huì)形成一些特殊的挑戰(zhàn)。如果太多進(jìn)程需要太多的內(nèi)存,那么它們中的一些就根本無法運(yùn)行,當(dāng)一個(gè)程序沒有空間可用時(shí),那就是它運(yùn)氣不好了。另外內(nèi)存還很容易被破壞,如果某個(gè)進(jìn)程不小心寫了另一個(gè)進(jìn)程使用的內(nèi)存,它就可能以某種完全和程序邏輯無關(guān)的令人迷惑的方式失敗。
為了更加有效地管理內(nèi)存并且少出錯(cuò),現(xiàn)代系統(tǒng)提供了一種對(duì)主存的抽象概念,叫做虛擬內(nèi)存。
虛擬內(nèi)存是硬件異常、硬件地址翻譯、主存、磁盤文件和內(nèi)核軟件的完美交互,它為每個(gè)進(jìn)程提供了一個(gè)大的、一致的和私有的地址空間。通過一個(gè)清晰的機(jī)制,虛擬內(nèi)存提供了三個(gè)重要能力:
虛擬內(nèi)存遍及計(jì)算機(jī)系統(tǒng)的所有層面,在硬件異常、匯編器、鏈接器、加載器、共享對(duì)象、文件和進(jìn)程的設(shè)計(jì)中扮演者重要角色。
虛擬內(nèi)存是計(jì)算機(jī)系統(tǒng)最重要的概念之一,它成功的一個(gè)主要原因就是因?yàn)樗悄?、自?dòng)地工作,不需要程序員的任何干涉。
聯(lián)系客服