DOS 环境下的大部分程序都是在常规内存中运行,如果某个程序由于内存不够而运行失败,最常见的问题就是常规内存不足。下面介绍几种常用的释放常规内存的方法:
一、当系统配置有扩展内存时,可以将DOS的大部分代码和Command.com的暂驻内存部分安装在高内存区(HMA)。 这要求在config.sys中包含有下述命令:
device=Himem.sys
dos=high
虽然Himem.sys本身也要占用少量的常规内存,但可以使用HMA将为我们节省出更多的常规内存。
二、精简config.sys和autoexec.bat文件的内容,不启动那些不必要的内存驻留程序,这些内存驻留程序往往占用很多常规内存。
如果config.sys文件中含有安装smartdrv.exe或ramdrive.sys的device命令,可以取消它们以节省常规内存。特别是smartdrv.exe要使用大量的常规内存。如果一定要使用ramdrive.sys,应保证RAM盘建在扩展内存中,而不是在常规内存中。
如果config.sys文件含有buffers命令,应减少buffers指定的磁盘缓冲区数目,每一个缓冲区会占用532个字节的常规内存。但是过多地减少盘缓冲区的个数会造成一些程序不能正常运行,一般buffers不宜小于15。
如果config.sys文件中包含lastdriver命令,取消该命令或将lastdriver设成J或K,而不要设成Z。因为DOS为每个允许访问的逻辑驱动器在内存中建立一个对应的管理块CDS,每个CDS大约占用80多个字节的常规内存。
config.sys文件中的device和devicehigh命令的次序是很重要的,它将影响内存的有效使用和config.sys启动时的一系列程序的正确运行。在config.sys文件中最好按以下次序安装设备驱动程序:
1 Himem.sys;
2 使用扩展内存的的设备驱动程序;
3 emm386.exe,如果使用emm386仿真扩充内存并提供对高内存块(UMBs)的存取功
能,那么EMM386命令行应包括RAM开关而不用NOEMS。NOEMS禁止emm386.exe仿真
扩充内存,但它为安装设备驱动程序和运行其它程序提供最大的可用高内存块。
4 使用扩充内存的的设备驱动程序;
5 使用高内存块(UMBs)的设备驱动程序。
对于autoexec.bat,我们的建议是:去掉用户不需要的那些内存驻留程序;如果只在Windows中使用鼠标,不要安装任何鼠标设备驱动程序,比如mouse.com,因为Windows有一个内置的鼠标设备驱动程序。
三、尽可能地在高端内存区(UMB)中安装设备驱动程序和运行其它的内存驻留程序。