admin管理员组文章数量:1567923
2024年5月7日发(作者:)
DOS下面的内存管理和优化
一、DOS下内存的分类和分配
1.常规内存(ConventionalMemory)
DOS为了保持对X86软件向前及向后的兼容性,始终维持着640KB的内存限制。这640KB勿
需借助内存管理程序即可直接寻址的内存称为常规内存。这也是DOS系统下所有应用软件都
可利用的区域。
2.上位内存区(UMAUpperMemoryArea)和上层内存块(UMBUpperMemoryBlock)
紧邻常规内存上端的区域即UMA,其中包含ROM,一般留作系统硬件(如BIOS、视频等)使
用,故称系统区域,最大384KB,在1M之内。8086/8088以上的系统的地址线寻址都能达
到1M或更高,故也有将1M以内的内存叫常规内存的。其中的剩余空间即UMB。在386以上
的系统中,通过在config.sys中设置:DEVICE=和DOS=UMB,即可使用UMB存
放设备驱动、command等常驻内存程序。
3.扩充内存(ExtendedMemory)
随着CPU性能的提高以及程序对内存要求的增大,DOS对内存管理需要突破640KB的限制,
但又要解决兼容性的矛盾,因此出现了扩充内存和扩展内存的概念。在286以上的系统中,
采取线性的内存寻址方式直接存取1M以上的新增的内存称ExtendedMemory。通常,DOS是
通过在config.sys中设置DEVICE=C:DOSHIMEM.SYS来使用ExtendedMemory,该驱动
程序执行Lotus/Intel/microsoft/AST等公司共同制定的
XMSExtendedMemorySpecification规范,以防止两个程序同时存取相同内存位置的情况。
它主要用于Windows环境下系统和用户程序。在XMS中起始位置的64K称为高内存区
(HMAHighMemoryArea)。可以通过在config.sys中设置DOS=HIGH,将MS-DOS的大部分
程序从UMA中移至HMA中,以便用户有更多可用的常规内存。
4.扩展内存(ExpandedMemory)
在早期的8086/8088计算机中,超出由地址线直接寻址的,而由系统区域中的"页框"
(Pageframe)间接存取的附加内存称ExpandedMemory。
286以上的计算机都能够使用ExtendedMeory,且它比ExpandedMemory速度快,故当前的机
种大部分是以增加ExtendedMemory的方式增加内存容量。但在286以上的计算机中运行一
些老程序(如lotus1-2-3)时,需要ExpandedMemory。这时只要在config.sys中设置
DEVICE=EMM386.SYS,利用ExtendedMemory模拟ExpandedMemory。DOS6.0以上的版本还
可让扩展内存和扩充内存设置共享的内存,以增加使用上的便利和弹性。当程序需要
ExpandedMemory中的数据时,EMM386.SYS先将数据由ExpandedMemory存入"页框",将"
页框"中不再需要的数据回写到ExpandedMemory。
二、DOS下内存的优化
优化内存主要要达到两个目的,一是将常驻程序从常规内存移出,以便为其他DOS应用程序
留出更多空间;二是提供扩展内存、扩充内存,供磁盘高速缓存、Windows及其它使用1M
以上的程序使用。
1.增加常规内存
在DOS环境下发生"内存不足",大部分是因为常规内存不够用造成的。增加常规内存的措施,
可以在config.sys中设置:
DOS=HIGH将MS-DOS的大部分程序从UMA移至HMA
DEVICE=C:DOSHIMEM.SYS使用ExtendedMemory
LASTDRIVE=F减小最大驱动器符号(一个驱动器约占100B的空间)等。
2.增加ExtendedMemory
在Windows3.X环境下发生"内存不足"提示,大部分是因为ExtendedMemory不足造成的。增
加ExtendedMemory的措施有:
(1)将autoexec.bat中的SMARTDRV命令后的参数改小,即减少分配给磁盘高速缓存器的
空间;
(2)在config.sys中设置EMM386.EXE MIN=0,即不保留模拟ExpandedMemory的
ExtendedMemory,但在需要时仍能提供ExpandedMemory;或设置EMM386.EXENOEMS,即不
使用ExtendedMemory模拟ExpandedMemory,只负责到UMB存取数据;
(3)在config.sys中删除DOS=HIGH,将MS-DOS从HMA送回UMA。
3.增加ExpandedMemory
(1)用EMM386.EXE RAM使ExtendedMemory模拟ExpandedMemory。
(2)尽可能减少分配给RAM盘之类程序的ExpandedMemory。
4、将设备驱动程序装入上位内存
为了提供更多的常规内存给其它应用程序使用,需将一些外部设备的驱动程序(如
)安装到上位内存区块(UMB),在中可做如下配置:
device=
device= NOEMS
DOS=HIGH,umb
DeviceHIGH=
5、将内存驱留程序装入上位内存
将一些常用的内存驱留程序用loadhigh(LH)命令装入UMB,亦可节约基本内存,例如在
文件中加入命令行:LH C:DOSDOSkey
即可将用户普遍使用的DOSkey(键盘命令运行增强程序)加载到上位内存,可节省约3KB的
基本内存。
版权声明:本文标题:DOS下面的内存管理和优化 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1715087772a434439.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论