返回主页

 

HIMEM.SYS


HIMEM是一个扩展内存管理的程序,用来管理扩展内存和高端内存区(HMA),以保证不同的应用程序或设备驱动程序不会同时使用同一块内存。

在CONFIG.SYS中为HIMEM.SYS加入<DEVICE>命令就可安装HIMEM。 HIMEM.SYS命令行必须在所有使用扩展内存的应用程序或设备驱动程序命令行之前。例如,HIMEM.SYS命令行必须在EMM386.EXE命令行之前。


语法 :

DEVICE=[drive:][path]HIMEM.SYS [/A20CONTROL:ON|OFF] [/CPUCLOCK:ON|OFF]
[/EISA] [/HMAMIN=m] [/INT15=xxxx] [/NUMHANDLES=n] [/MACHINE:xxxx]
[/SHADOWRAM:ON|OFF] [/TESTMEM:ON|OFF] [/VERBOSE]


大多数情况下不必指定命令行选项。HIMEM.SYS的默认值适合大多数硬件。


参数:

[drive:][path]

指定HIMEM.SYS文件的位置,HIMEM.SYS应该和MS-DOS文件在同一个驱动器上。若HIMEM.SYS在启动驱动器的根目录下,则不必指定路径,但您必须给出完整的文件名(HIMEM.SYS)。



开关项 :

/A20CONTROL:ON|OFF

指定当HIMEM装入时,若A20线已打开,HIMEM是否还要控制A20线。控制A20线可以存取HMA。若指定/A20CONTROL:OFF,则当HIMEM装入时,若A20线未打开,HIMEM才控制A20线。默认设置是/A20CONTROL:ON。

/CPUCLOCK:ON|OFF
指出HIMEM是否影响计算机的时钟速度。若安装HIMEM后,计算机时钟速度改变,则需指定/CPUCLOCK:ON解决。但指定此开关会降低HIMEM的速度。默认设置是/CPUCLOCK:OFF。

/EISA
指定HIMEM应该分配所有可用的扩展内存。此开关仅需在有多于16MB内存的EISA计算机上使用,在其它计算机上,HIMEM自动分配所有可用的扩展内存。

/HMAMIN=m
指定应用程序申请可以分配的最小HMA大小。同一时刻只有一个应用程序可以使用HMA。HIMEM将HMA分配给第一个符合此开关设置的应用程序。m的取值范围为0到63(KB)。

将/HMAMIN设置为使用最大HMA的应用程序所用的内存量。该开关不是必需的。

/HMAMIN默认值为0。

省略此选项(或将m设为0)时,HIMEM将HMA分配给第一个申请HMA的应用程序,而不管此程序要使用的HMA大小。当Windows运行在386增强模式时,/HMAMIN选项不起作用。

/INT15=xxxx
为中断15h接口保留的扩展内存量(以KB为单位)。在某些老的应用程序不使用HIMEM提供的XMS方法而使用中断15h接口来分配扩展内存。

使用这些应用程序时,可以将XXXX设置为比应用程序所需的扩展内存量小64KB。 XXXX的取值可以从64到65535,但不能超过系统所有的扩展内存量。XXXX取值最小为64,否则会被认为是默认值0。

/NUMHANDLES=n
指定可以同时使用的扩展内存块(EMB)句柄数量。n的取值可以从1到128,默认值为32。每一个句柄需要6字节内存。

当Windows以386增强模式运行时,此选项不起作用。

/MACHINE:xxxx

指定使用的计算机类型。通常HIMEM能检测出计算机类型; 但是有些计算机HIMEM却检测不出。在这些系统上,HIMEM使用默认的系统类型(IBM AT或兼容机)。
若HIMEM不能检测出计算机类型并且不能正常工作时,就需要指定此选项。

现在需要指定此选项的系统有Acer 1100、Wyse和IBM7552。

XXXX可从下表中取值:

代码 数值 计算机类型
at 1 IBM AT or 100% compatible
ps2 2 IBM PS/2
ptlcascade 3 Phoenix Cascade BIOS
hpvectra 4 HP Vectra (A & A+)
att6300plus 5 AT&T 6300 Plus
acer1100 6 Acer 1100
toshiba 7 Toshiba 1600 & 1200XE
wyse 8 Wyse 12.5 Mhz 286
tulip 9 Tulip SX
zenith 10 Zenith ZBIOS
at1 11 IBM PC/AT (alternative delay)
at2 12 IBM PC/AT (alternative delay
css 12 CSS Labs
at3 13 IBM PC/AT (alternative delay)
philips 13 Philips
fasthp 14 HP Vectra
ibm7552 15 IBM 7552 Industrial Computer
bullmicral 16 Bull Micral 60
dell 17 Dell XBIOS



/SHADOWRAM:ON|OFF
指定是否禁止影像RAM(SHADOWRAM:OFF),或是从RAM(SHADOWRAM:ON)中运行ROM 代码。

有些计算机可在启动时,将ROM代码拷贝到RAM(影像RAM)中以提高ROM代码的执行速度,但这需要使用一些扩展内存。当计算机的RAM少于2MB并且使用影像RAM时,HIMEM会试图禁止影像RAM来释放扩展内存供Windows使用(HIMEM只能在某些系统上禁止影像RAM)。当HIMEM禁止影像RAM后,ROM代码就只能从较慢的ROM中运行。因此,计算机可能会比以前运行得慢些。

/TESTMEM:ON|OFF
指定启动计算机时HIMEM是否检测内存。在默认条件下,HIMEM检测扩展内存。不可靠的内存会使得系统运行不稳定或引起数据丢失,通过检测可以找出那些不可靠的内存。与大多数计算机接通电源时所执行的标准的内存检测相比,HIMEM的内存检测更为彻底。设置/TESTMEM:OFF,将禁止HIMEM进行内存检测,可相应缩短启动时间。(默认设置为/TESTMEM:ON。)

/VERBOSE
使HIMEM在装入时显示状态和错误信息。默认时,除了出错之外,HIMEM不显示任何信息。可将/VERBOSE缩写为/V(若未指定此开关而又想显示状态信息,在HIMEM启动和装入时按下ALT键即可)。


HIMEM.SYS─注解

 


HIMEM检测扩展内存的可靠性


MS-DOS 6.22版本的HIMEM提供有一个新的安全特性:每次启动计算机时,检测扩展内存。HIMEM通过向每个内存地址进行读写,并检查数据的不同之处这种方法来进行内存检测。如果HIMEM从某一地址中读出的数据,与刚刚写入的不同,那么该地址的内存为不可靠。不可靠的内存可导致系统运行不稳定或数据丢失。与大多数计算机接通电源时所使用的标准的内存检测相比,HIMEM的内存检测更为彻底。

如果HIMEM检测到不可靠内存,将显示下列信息,同时不再装入:

ERROR: HIMEM.SYS在XXXXXXXXh检测到不可靠扩展内存

若看到上面信息,就应该请一位计算机硬件方面的专业人员对你的计算机内存进行检查。尽管可以使用/TESTMEM:OFF开关,来关闭内存检测并装入HIMEM,但我们建议在专业人员对内存进行检查之前,不要这么做。



默认内存分配

同一时刻只有一个应用程序可以使用高端内存区(HMA)。若忽略/HMAMIN=m开关(或设为0),则HIMEM将HMA分配给第一个申请HMA的应用程序。为最有效地使用系统的高端内存区,应将/HMAMIN=m设置为使用最大HMA的应用程序的使用的内存量。



把MS-DOS装入高端内存区

要将MS-DOS装入HMA就必须安装HIMEM或其它的XMS驱动程序。在CONFIG.SYS中使用DOS=HIGH命令来将MS-DOS装入HMA。(DOS=HIGH命令可用在CONFIG.SYS文件的任意位置使用)。


HIMEM.SYS─例子


将以下命令行加到CONFIG.SYS文件中就能按默认值状态运行HIMEM:

device=himem.sys

上面的命令行中未指定HIMEM.SYS文件的路径。因此,MS-DOS只在启动驱动器根目录查找HIMEM.SYS文件。并且此命令行未指定任何选项,HIMEM就使用这些选项的默认值。HIMEM将HMA分配给第一个申请HMA的应用程序,允许同时使用最多32个扩展内存句柄。


增加HIMEM提供的内存句柄数目


要指定最多可同时128个扩展内存句柄,请在CONFIG.SYS文件中加入以下命令行:

device=c:\dos\himem.sys /numhandles=128


返回主页