内存分类及其优化

Author: 潘娅 Date: 1998年 第18期 02版

  内存,在计算机系统中有着特别重要的作用。内存管理,就是采用一定的命令或程序合理有效地对内存进行分配或优化,使计算机充分利用现有的内存空间,从而提高程序的运行效率。本文主要介绍了内存的分类、用扩充内存模拟扩展内存的程序EMM386以及内存优化程序MemMaker的应用。
#1  一、内存的分类
  一台计算机配置的内存区通常由以下部分组成:
  1.常规内存区(Conventional memory area)
  又称基本内存区,指计算机内存区的第一个640K字节空间,它由MS-DOS管理,不需要其他内存管理程序,如果在CONFIG.SYS中没有DOS=HIGH命令,MS-DOS自身全部驻留在这一空间内。常规内存是必不可少的内存区,所有DOS程序都要使用常规内存,而一般的应用软件均可直接使用这一内存区域。
  2.上位内存区(Upper memory area)
  指紧接常规内存640K之后的384K字节内存区域,又称保留内存区(Reserved memory area)。上位内存区主要保留给系统BIOS以及其他硬件设备(如显示适配器)使用。上位内存区中未被使用的部分称为上位内存块(UMB),在UMB中可运行设备驱动程序和内存驻留程序。
  3.扩充内存区(Extended memory area)
  指以80386、80486或80586芯片为处理器的计算机的内存中1MB字节以后的内存区。扩充内存必须由扩充内存管理程序(如HIMEM.SYS)来管理。Windows及其应用程序需要使用扩充内存。
  4.高端内存区(High memory area)
  指扩充内存的第一个64K字节区域。对于带有扩充内存的计算机,可将MS-DOS的大部分内容装入这个区域,以释放出更多的常规内存供其他程序使用。
  5.扩展内存区(Expanded memory area)
  指在常规内存区、上位内存区以及扩充内存区之后的附加内存区,它是一种页式存储区,即程序每次可使用64K字节的扩展内存。只有安装了内存扩展板的计算机才有扩展内存,由扩展内存管理程序来管理。DOS6.2以上版本的DOS系统提供的EMM386.EXE程序可以用来将扩充内存模拟成扩展内存。
  关于内存区域分布的示意图见^180201a^所示。
  对于每台计算机来说,由于设计和配置上的差异,导致内存的多少和各种内存的分配及分布也会有所不同。
#1  二、用扩充内存模拟扩展内存的程序EMM386.EXE
  1.EMM386.EXE的功能
  (1)用扩充内存模拟扩展内存,实现对扩展内存的访问。将扩展内存作为仿真扩充内存,使那些需要扩充内存的应用程序得以运行。
  (2)实现对上位内存区的访问,使设备驱动程序能被装入上位内存块(UMB)。将保留区(384KB)中未被使用的空间转换为可用的UMB。
  2.使用要点
  (1)在装入EMM386.EXE之前必须先装入HIMEM.SYS。
  (2)必须使用RAM或NOEMS选项来提供对上位内存区的存取。
  如果要用上位内存区来装入某些程序,用户必须使用RAM或NOEMS选项来提供对上位内存的存取。
  若要让DOS对上位内存区和扩展内存区都能进行存取,应使用RAM选项。
  若要让DOS对上位内存区存取而又不对扩展内存进行存取,则使用NOEMS选项。
  (3)在CONFIG.SYS中使用DOS=UMB命令在上位内存区中创建归DOS所属的UMB。
#1  三、优化内存的程序MemMaker
  MemMaker主要实现常规内存的释放。它可以自动根据计算机的硬件情况和当前内存中的程序自动修改启动盘上的CONFIG.SYS和AUTOEXEC.BAT,从而达到优化的目的。
  在大多数情况下,用MemMaker程序优化内存不需要在命令行中加任何开关。
  该程序对于不太熟悉MS-DOS内存管理命令的用户特别有用,它让用户无须掌握内存管理命令的复杂用法,就可以实现对计算机系统内存管理的优化工作。