在DOS下,系統(tǒng)中存在以下四種內(nèi)存:
常規(guī)內(nèi)存(Conventional Memory);
高端內(nèi)存(Upper Memory);
擴(kuò)充內(nèi)存(Expanded Memory);
擴(kuò)展內(nèi)存(Extended Memory)。
常規(guī)內(nèi)存指的是0-640K的內(nèi)存區(qū)。在DOS下,一般的應(yīng)用程序只能使用系統(tǒng)的常規(guī)內(nèi)存,因而都要受到640KB內(nèi)存的限制。而且由于DOS本身和config.sys文件中的安裝的設(shè)備驅(qū)動(dòng)程序和autoexec.bat文件中執(zhí)行的內(nèi)存駐留程序都要占用一些常規(guī)內(nèi)存,所以應(yīng)用程序能使用的常規(guī)內(nèi)存是不到640K的。有很多時(shí)候,我們都要想方設(shè)法地整理內(nèi)存,好為一些“胃口”比較大的應(yīng)用程序留出足夠的常規(guī)內(nèi)存,這一點(diǎn)想必是許多DOS時(shí)代的電腦愛好者最熟悉不過(guò)的了。
高端內(nèi)存是指位于常規(guī)內(nèi)存之上的384K內(nèi)存。程序一般不能使用這個(gè)內(nèi)存區(qū)域,但是EMM386.exe可以激活高端內(nèi)存的一部分,并且它允許用戶將某些設(shè)備驅(qū)動(dòng)程序和用戶程序用Devicehigh或LH(即loadhigh)裝入高端內(nèi)存。dos=high,umb也是把DOS的一部分裝到高端內(nèi)存里。這里的umb是高端內(nèi)存塊(Upper Memory Block)的縮寫。
擴(kuò)充內(nèi)存是一種早期的增加內(nèi)存的標(biāo)準(zhǔn),最多可擴(kuò)充到32M。使用擴(kuò)充內(nèi)存必須在計(jì)算機(jī)中安裝專門的擴(kuò)充內(nèi)存板,而且還要安裝管理擴(kuò)充內(nèi)存板的管理程序。由于擴(kuò)充內(nèi)存是在擴(kuò)展內(nèi)存之前推出的,所以大多數(shù)程序都被設(shè)計(jì)成能使用擴(kuò)充內(nèi)存,而不能使用擴(kuò)展內(nèi)存。由于擴(kuò)充內(nèi)存使用起來(lái)比較麻煩,所以在擴(kuò)展內(nèi)存出現(xiàn)后不久就被淘汰了。
擴(kuò)展內(nèi)存只能用在80286或更高檔次的機(jī)器上,目前幾乎所有使用DOS的機(jī)器上超過(guò)1M的內(nèi)存都是擴(kuò)展內(nèi)存。擴(kuò)展內(nèi)存同樣不能被DOS直接使用,DOS5.0以后提供了Himem.sys這個(gè)擴(kuò)展內(nèi)存管理程序,我們可以通過(guò)它來(lái)管理擴(kuò)展內(nèi)存。emm386.exe可以把擴(kuò)展內(nèi)存(XMS)仿真成擴(kuò)充內(nèi)存(EMS),以滿足一些要求使用擴(kuò)充內(nèi)存的程序。
DOS的應(yīng)用程序只能在常規(guī)內(nèi)存下運(yùn)行。有的程序可以通過(guò)DOS擴(kuò)展器(比如DOS4GW.exe等程序)使CPU進(jìn)入保護(hù)模式,從而直接訪問(wèn)擴(kuò)展內(nèi)存;但是要注意,進(jìn)入保護(hù)模式以后,計(jì)算機(jī)就脫離了DOS狀態(tài)。