☆PC机上的内存(RAM)可分为4类:
1.传统内存
传统内存的地址空间是位于0KB~640KB之间。不论使用哪一种类型的CPU,从8086到486,传统内存都是必需的。它是MS-DOS运行程序最重要的舞台。
2.保留内存
由于MS-DOS最初是为8086/8088 CPU设计的操作系统,最多只能使用1MB的内存。这1MB内存最前面的640KB就是前述的传统内存;至于后面剩下的384KB,则保留给BIOS ROM、硬件接口卡(如VGA卡、硬盘控制卡)上的ROM与VidelBuffer使用。
保留内存(Reserved Memory)的地址空间位于640KB~1024KB之间,是保留给外部使用的地址空间。保留内存其实不应该称为内存,应该称为保留内存空间,因为在此空间内并未安装实体的RAM。
在保留内存的384KB地址空间内,除了由视频缓冲区、BIOS ROM和其他硬件扩充卡所使用之外,仍有许多空隙。可运用386/486的分页(paging)能力,将扩展内存映射过来填补这些空隙,因为这些空隙还在DOS的1MB范围之内。(以往是因为没有安插内存,所以才无法使用,现在以分页技术配置好内存之后,便成为可供DOS使用的内存了---这句其实不太明白)我们称这些在640KB以上地址的内存为“上位内存(Upper Memory)”,上位内存可能因外部卡的安装而被分成几个块,所以又称为上位内存块(Upper Memory Blocks)简称UMB。
3.扩展内存
扩展内存(Extended Memory)是指位于1024KB以后的内存。对于我们的内存RAM,扣除640KB的传统内存,其余全部都是扩展内存。
虽然从计算机主机板上看,所有的RAM都排列在一起,但事实上,超过640KB传统内存以外的RAM,其安插的位置是跳过384KB的保留内存而往1MB以后的空间再延续下去。(在640KB~1024KB的区间是没有RAM存在的)[?这两段合着是说,假如我有2M的RAM,事实上是占有(2M+384KB)的空间呢,还是说号称2M其实真实容量是(2M-384KB)----因为有384KB的空间位置是虚的?]
由于MS-DOS本来只能管理1MB以内内存,而保留内存内又没有实体RAM,所以只有传统内存才是MS-DOS的“管辖区”。必须通过286/386/486的保护模式,才可以使用高于1024KB地址的内存。
(1)HMA
在1MB以后的第一个64KB(1024~1088KB)的扩展内存,我们称为HMA(High Memory Area)。
80286以上的CPU,由于地址线超过20条,可以很巧妙地使DOS获得额外的64KB使用空间。其关键在于CPU是否将A20地址线打开(设为ON)。所以在286以上的计算机上,将A20地址一律设为ON,就可以获得这额外的64KB内存,这也就是HMA的所在。
(2)XMM
如前所述,MS-DOS的管不到扩展内存的,为了有效地利用扩展内存,程序应该通过“管理程序”来统一运用扩展内存。此种管理程序就称为扩展内存管理程序(XMM,extended Memory Manager)。
(3)XMS(extended Memory Specification)
为了能有共同的“管理规则”,Lotus/Intel/Microsoft/AST4家公司提出了所谓的XMS规则。MS-DOS提供的Himen.sys程序,就是一个符合这一规则的扩展内存管理程序。
4.扩充内存
以扩充内存槽加插内存而扩充出来的内存称为“扩充内存”(Expanded Memory)。它不像扩展内存线性地排列在1MB之后,而是独立于一旁。Lotus/Intel/Mircosoft3家公司共同提出了所谓的LIM/EMS(~Specification)规范。依据LIMEMS的规定,程序必须通过页帧(Page Frame)的映射,才能对扩充内存进行数据的存取。不像其他的内存可以直接根据地址来存取数据,所以速度较慢。(这块完全没有概念,难道现在第二个插槽的内存都属于扩充内存?#_#)
[ Last edited by Billunique on 2007-4-9 at 08:01 AM ]
1.传统内存
传统内存的地址空间是位于0KB~640KB之间。不论使用哪一种类型的CPU,从8086到486,传统内存都是必需的。它是MS-DOS运行程序最重要的舞台。
2.保留内存
由于MS-DOS最初是为8086/8088 CPU设计的操作系统,最多只能使用1MB的内存。这1MB内存最前面的640KB就是前述的传统内存;至于后面剩下的384KB,则保留给BIOS ROM、硬件接口卡(如VGA卡、硬盘控制卡)上的ROM与VidelBuffer使用。
保留内存(Reserved Memory)的地址空间位于640KB~1024KB之间,是保留给外部使用的地址空间。保留内存其实不应该称为内存,应该称为保留内存空间,因为在此空间内并未安装实体的RAM。
在保留内存的384KB地址空间内,除了由视频缓冲区、BIOS ROM和其他硬件扩充卡所使用之外,仍有许多空隙。可运用386/486的分页(paging)能力,将扩展内存映射过来填补这些空隙,因为这些空隙还在DOS的1MB范围之内。(以往是因为没有安插内存,所以才无法使用,现在以分页技术配置好内存之后,便成为可供DOS使用的内存了---这句其实不太明白)我们称这些在640KB以上地址的内存为“上位内存(Upper Memory)”,上位内存可能因外部卡的安装而被分成几个块,所以又称为上位内存块(Upper Memory Blocks)简称UMB。
3.扩展内存
扩展内存(Extended Memory)是指位于1024KB以后的内存。对于我们的内存RAM,扣除640KB的传统内存,其余全部都是扩展内存。
虽然从计算机主机板上看,所有的RAM都排列在一起,但事实上,超过640KB传统内存以外的RAM,其安插的位置是跳过384KB的保留内存而往1MB以后的空间再延续下去。(在640KB~1024KB的区间是没有RAM存在的)[?这两段合着是说,假如我有2M的RAM,事实上是占有(2M+384KB)的空间呢,还是说号称2M其实真实容量是(2M-384KB)----因为有384KB的空间位置是虚的?]
由于MS-DOS本来只能管理1MB以内内存,而保留内存内又没有实体RAM,所以只有传统内存才是MS-DOS的“管辖区”。必须通过286/386/486的保护模式,才可以使用高于1024KB地址的内存。
(1)HMA
在1MB以后的第一个64KB(1024~1088KB)的扩展内存,我们称为HMA(High Memory Area)。
80286以上的CPU,由于地址线超过20条,可以很巧妙地使DOS获得额外的64KB使用空间。其关键在于CPU是否将A20地址线打开(设为ON)。所以在286以上的计算机上,将A20地址一律设为ON,就可以获得这额外的64KB内存,这也就是HMA的所在。
(2)XMM
如前所述,MS-DOS的管不到扩展内存的,为了有效地利用扩展内存,程序应该通过“管理程序”来统一运用扩展内存。此种管理程序就称为扩展内存管理程序(XMM,extended Memory Manager)。
(3)XMS(extended Memory Specification)
为了能有共同的“管理规则”,Lotus/Intel/Microsoft/AST4家公司提出了所谓的XMS规则。MS-DOS提供的Himen.sys程序,就是一个符合这一规则的扩展内存管理程序。
4.扩充内存
以扩充内存槽加插内存而扩充出来的内存称为“扩充内存”(Expanded Memory)。它不像扩展内存线性地排列在1MB之后,而是独立于一旁。Lotus/Intel/Mircosoft3家公司共同提出了所谓的LIM/EMS(~Specification)规范。依据LIMEMS的规定,程序必须通过页帧(Page Frame)的映射,才能对扩充内存进行数据的存取。不像其他的内存可以直接根据地址来存取数据,所以速度较慢。(这块完全没有概念,难道现在第二个插槽的内存都属于扩充内存?#_#)
[ Last edited by Billunique on 2007-4-9 at 08:01 AM ]
★①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ【●】→←↑↓▲

)

。这几天有点忙,同时也不知道记些啥好了。不过我会坚持的~将学习进行到底!