DOS系统存储管理.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:8 大小:74KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

DOS系统存储管理.doc

DOS系统存储管理.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

如果各位對以下內容有補充或更正,請寫信告訴JiffHong,謝謝!┌─────────────────────────────┐│記憶體管理│└─────────────────────────────┘不管電腦擴充了幾MB的記憶體,當你用MEM.EXE來觀察時,傳統記憶體(Conventionalmemory)固定都只有640KBytes。這640KB就是一般應用程式所能使用的範圍。如果你使用5.0版以前的DOS,進入中文糸統,再要執行其他較佔記憶體的應用程式時,就有可能產生"記憶體不足"的訊息,不管你在640K以外還有多少記憶體。而現在DOS5.0最為人稱道的地方,就是它提供了許多管理記憶體的方法,讓程式有更多的記憶體空間可以運用。DOS5.0提供的記憶體管理,指的是位址為640K以上的記憶體。如果你的電腦只有640K的RAM,那麼DOS5.0對你就沒有多大用處。一般電腦最基本配備有1Mega的記憶體,就有384K的延伸記憶體可以運用。記憶體容量愈大,運用範圍愈廣。像WINDOW這類多工軟體,就需要龐大的記憶體來增加其速度。&&-1640K的傳統記憶體640K的限制由何處來的?這必須回顧PC和CPU的歷史。CPU的定址能力,是由硬體線路所限定的。在早期APPLEⅡ使用的6502CPU,它是8位元的微處理機,故具有8條的資料線路。其資料處理是以位元組(Byte)為單位,每一個Byte可表示2^8=256種數字。同時它用兩個Byte的組合來指示記憶體的位址。因此它須具有16條的位址線路,共可表達2^16=65536=64K種的位址。換句話說,16條的位址線路的定址能力的最高限制就是64KB。1978年Intel公司推出16位元的8086微處理機,以16位元的字組(Word,相當於兩個Byte)為資料處理的單位。位址線路則增加到20條;因此必須用兩個Word來表示記憶體的位址。這兩個Word如果也採用線性對映的定址方式,那麼共可表示:2^32=2^2x2^10x2^10x2^10=4xKxKxK=4G種的位址!這在當時看來是軟硬體皆不可能達成的數字。更何況位址線又沒有32條,只有20條而已,就是說實際定址能力的最高限制是2^20Bytes=1MB。那時的RAM也很昂貴,所以認為1MB(是64KB的16倍)是夠大的了。因此8086採取了重疊對映的定址方式(悲劇的開始!)。由兩個Word以XXXX:YYYY的方式來組成一個20位元的線性位址,前者為節區段位址(Segment),後面稱偏移段位址(Offset)。公式如下:Address=Segment*16+Offset┌─┬─┬─┬─┐SegmentOffset│1│2│3│4│0(段位址)(偏移位址)└─┴─┴─┴─┘1234:2345┌─┬─┬─┬─┐+│2│3│4│5│=14685h└─┴─┴─┴─┘(真實記憶體位址)--------------14685h以上的記憶體位址是16進位數字,在數字後面附加小寫h來表示。例如:640K(10進位)=A0000h=A000:0000等到1982年,藍色巨人IBM推出最早型的IBMPCXT,以Intel8088微處理機作為CPU,8088與8086都只有20條位址線(A0~A19)。IBM對可定址的1MB記憶體位址做個規劃,其中最前面的640KRAM供DOS與應用程式使用,這塊區域叫主記憶體(BaseMemory)或傳統記憶體。640K到1MB的記憶體區域保留給外加擴充的界面卡和BIOS使用,這塊區域叫上層記憶體(UpperMemory),一般應用程式不可輕易動用。這也就是DOS和一般應用程式最多只能控制640K的原因。1983年Intel推出了80286,IBM立刻選用為最新的CPU,於1984年底推出IBMPCAT(AT是AdvancedTechnology先進技術之意)。80286是真正的16位元微處理機(CPU內部與I/O均以16位元處理),運作速度更快。它有24條位址線,故最多可存取2^24=16MB的記憶體。事實上80286採用了兩種定址模式:一、真實模式(RealMode)在此模式下,286使用和8086/8088相同的重疊對映的定址方式。這是為了讓原有的DOS和應用程式能在PCAT上相容使用。因此,在真實模式下,也只能控制1MB記憶體而已。二、虛擬保護模式(VirtualProtectedMode)在保護模式下,才能隨意使用1MB以上的記憶體。後來陸續推出32位元的80386和80486(皆有32條位址線),又提供了功能更強的保護模式。但是也都保留了真實模