利用DOS配置文件合理调度内存

🏠 首页 《无线电》杂志 1999年 🔗 第2期 🔗 第29页 分类:修理经验点滴 🔗 张冬英 🔗

负存管理是操作系统最主要的功能之一,一直受到人们高度的重视。随着DOS版本的升级,DOS提供了许多重要的、面向内存的改进技术。下面就此问题浅谈如下:

一、内存的类型与分布:

在80386以上的机型中,DOS启动后,其内存分布如下:

图1
图1 🔍原图 (780×560)

常规内存:指640KB以下的内存空间。DOS无需附加内存管理程序就能直接管理它。

保留内存:指640KB至1MB之间的内存空间。其中没有被系统硬件使用的部分称为高端内存块(UMB),286机型由于硬件的限制无法提供UMB。

XMS内存:指符合XMS内存管理规范的1MB以上的内存空间。在286以上的机型中,通过HIMEM.SYS等程序可管理使用它。

EMS内存:指符合LIM内存管理规范的1M以上的另一类内存空间。80386以上的CPU硬件提供了内存分页和逻辑映射功能,通过EMM386.EXE等设备驱动程序就可将1M以上的扩充内存(EXTENDED MEMORY)转为EMS内存使用。

高内存区(HMA):1MB以上内存区内第一个64KB的内存区域。使用它需装入设备驱动程序HIMEM.SYS。

二、DOS 5.0以上版本用于内存管理的主要命令:

1.DEVICE=[路径]HIMEM.SYS[参数]

该命令是DOS和WINDOWS使用XMS内存的管理程序。它须在其他存取扩充内存的设备驱动程序之前装入CONFIG.SYSS文件。常用参数有“/INT15=XXXXX”,意思是定义为中断矢量15保留多少KB的内存,以便那些使用BIOS INT15调用传统扩充内存的旧版软件得以运行;如果不选用参数,则所有的扩充内存将被纳入XMS管理而成为XMS内存。

2.DEVICE=[路径]EMM386.EXE[参数]

该命令是80386以上机型的设备驱动程序。它需在HIMEM.SYS程序之后,其他设备驱动程序和驻留程序之前装入CONFIG.SYS文件。它有两个功能,首先它实现了对UMB的管理,其次它可将XMS内存模拟成EMS内存。常用参数有NOEMS或RAM,当取NOEMS时,系统可存取UMB区域,且无需保留64KB的EMS页面框,从而使UMB的区域扩大了64KB的空间,WINDOWS应用程序就不需要EMS内存。如果用RAM代替NOEMS,则EMM386将保留内存中所有的可用空间用来建立UMB和一个页面框。

3.DOS=HIGH,UMB

其中DOS=HIGH,是指定DOS启动时将自己装入高内存区(HMA);而DOS=UMB,是指定常规内存和上端内存连接(Link)起来,以便装载TSR程序或设备驱动程序。

三、根据软件需求,优化系统环境:

在DOS或WINDOWS启动时,CONFIG.SYS及AUTOEXEC.BAT的不同设置对内存空间有着极大的影响。

为此,针对一些常用软件需求,用户可在CONFIG.SYS文件中指定几种引导菜单(用“[menu]”和“menuitem=块名”等命令),以便用户在系统加电时能选择自己需要的一种。

下面就一般需求情况,指定各具个性的三种配置:

1.DOS环境(实模式):

尽可能将DOS系统、设备驱动程序及驻留程序装入高端内存,使得尽可能多的低端内存留给用户使用。即在CONFIG.SYS文件中安装HIMEM.SYS和EMM386.EXE,并要求EMM386提供UMB内存,还需用“DOS=HIGH,UNB”及“DEVICEHIGH=”将DOS系统、设备驱动程序装入高端内存。至于驻留程序,如是所有软件共用的,可在AUTOEXEC.BAT中用“LH”来将它们调入高端内存;如是某个特定应用软件需要的,则可临时安装,用完就撤,及时释放内存。

值得一提的是,根据使用经验,早期基于8086/8088的软件(如DBASE Ⅲ),不能使用1MB以上的内存空间。

应有效地利用保留内存。尽量将DOS用不到的EXTENDED内存的一部分转为EMS内存(在CONFIG.SYS中安装HIMEM.SYS和EMM386.EXE RAM),供某些应用软件使用;一部分作为磁盘高速级存CACHE(在AUTOEXEC.BAT中用LHC:\DOS\SMARTDRV.EXE加载),以加速磁盘的存取速度。

需注意的是,有些应用程序不能与EMM386并存,因为EMM386运行于DOS的一个特殊的86实模式。

2 WINDOWS环境:

可在CONFIG.SYS中安装HIMEM.SYS,从而尽可能将EXTENDED内存变为WINDOWS需要的XMS内存,并用DEVICE=EMM386.EXE NOEMS命令提供较多的UMB供使用。

另外,还可使用WINDOS自带的CACHE及虚拟盘的驱动程序,这些程序能与WINDOWS协调工作。

3.保护模式:

目前386以上的微机中有不少专用软件,如AUTOCADR11以上、3D STUDIO等,它们并不需要XMS内存而需要原始的EXTENDED内存,这时就需要关闭HIMEM.SYS和EMM386.SYS等程序,从而让出大部分的EXTEENDED内存。

四、小结:

内存的使用、优化是一项复杂的工作。一些命令的参数选择、安装顺序、变量取值,均要求用户在自己的系统上认真尝试、调整,以确定最佳的设置。(张冬英)