优化您的上层内存块的使用

文章翻译 文章翻译
文章编号: 77083 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

设置了您的计算机程序或设备驱动程序加载到高端内存块 (UMBs)。现在您要确保您正在进行最佳使用这些 UMBs,这样您就可以尽可能高端内存区中运行多个程序。

本文提供使您的计算机的高端内存区的最佳使用方法。若要将这些技术,您应该熟悉的页面上 313 330 Microsoft MS-DOS"用户的指南和参考"版本 5.0,解释了如何将加载到 UMBs 的程序的信息。在具体的而言 327 和 329 页提供有关优化的 UMBs 您使用的一些基本信息。

本文介绍了下列优化技术:

  • 使用的 RAM 开关而不是 NOEMS 开关启动 EMM386
  • 查找所用的驱动程序和 $ 程序加载到 UMBs 最佳顺序
  • 调整以提供更多 UMBs EMM386

从 emm386 开始 NOEMS 而不是 RAM 开关的开关

如果您不能使用需要扩展的内存 (EMS) 的程序,从 EMM386 开始 NOEMS 开关。这样可以为您提供一个附加的 64k 的 UMBs,因为 NOEMS 开关指示 EMM386 不到高端内存区中创建一个 EMS 页面框架。如果您使用 NOEMS 开关启动 EMM386,程序将无法运行与 Windows 的情况下,即使使用扩展的内存。

要使用 NOEMS 开关启动 EMM386,请执行下列操作:

  1. 编辑 CONFIG.SYS 文件。若要编辑该文件使用 MS-DOS 编辑器,请在 MS-DOS 命令提示符下键入以下内容:
    编辑 c:\config.sys
  2. 找到启动 EMM386 设备命令。如果设备命令中包含 RAM 开关更改它,以便它而是包含 NOEMS 开关。设备命令 EMM386 应现在看起来类似于下面这样:
    device=c:\dos\emm386.exe noems
  3. 到 CONFIG.SYS 文件 (如果有的话) 保存所做的更改并退出文本编辑器。如果使用的 MS-DOS 编辑器选择退出,从文件菜单。当 MS-DOS 编辑器将显示一个对话框,提示您保存您的文件时,选择是,或按 ENTER。
  4. 通过按 CTRL + ALT + DEL,重新启动您的系统。
完成此过程后,某些程序可能会显示出的内存的消息或无法运行。这样的程序可能需要扩充的内存。这是否大小写替换 NOEMS 交换机使用 RAM 开关可以使扩展的缓存重新可用。

查找所用的驱动程序和 $ 程序加载到 UMBS 最佳顺序

当您启动程序使用 DEVICEHIGH 或 LOADHIGH 命令时,MS-DOS 将该程序加载到该最大的剩余 UMB (即使它会适应较小的 UMB)。因此,在其中加载程序到 UMBs 顺序很重要时尝试优化您的高端内存区使用。您需要通过试验来查找最佳顺序为您的系统。

创建启动盘

在开始优化之前,创建启动软盘,其中包含您 CONFIG.SYS 和命令文件的备份副本。要执行此操作,一张经过格式化的软盘插入驱动器 A 并键入以下命令:
sys c: a:
副本 c:\config.sys a:\
副本 c:\autoexec.bat a:\
具有该启动磁盘可以试验更自由地 ; 如果您更改您的 CONFIG.SYS 或命令文件并重新启动它,只需将备份的磁盘插入驱动器 A 中,时请按 CTRL + ALT + DEL 锁定您的计算机。

查找最佳载入顺序

当加载程序高,MS-DOS 将每个程序加载到该最大的剩余 UMB (即使它会适应较小的 UMB)。在其中加载程序到 UMBs 顺序所以重要。一般情况下,时加载到高端内存区域的程序加载较大的程序较小文件之前。但是,此简单的负载,-最大的优先方法可能不始终是最有效。有时,您可能需要调整最大的高端内存区中获取的加载顺序。

例如对于假设您需要以下三个程序载入 UMBs:
   PROGRAM1.EXE   2K
   PROGRAM2.EXE   2K
   PROGRAM3.EXE   3K
				
假如您有两个 UMBs 可用 ; 一个是 4 K 在 $ 大小中,而另一种是在 $ 大小中的 3 K。(您可以找出的单个 UMBs 大小通过发出 MEM/P 命令。详细的信息,请参阅页 519 该用户的指南和参考)。

可以看到 PROGRAM3.EXE 是最大,在 3 K。如果在第一次加载 PROGRAM3,MS-DOS 会将其放到最大 UMB (4 K)。因为 PROGRAM3 不使用该 UMB 中的空间在整个 4k,处于未使用一个额外的千字节的内存。在下一个程序 PROGRAM1 (2k) 放入 3 K UMB,再次保留一个未使用的千字节的内存。 但是,PROGRAM2 还需要 2k 的连续的空间,将不适合保持在 1k UMBs 之一。当不一样高效,第一次加载最大的程序,这是一个示例。

更有效的方法是: 加载 PROGRAM1 (2k) 然后 PROGRAM3 (3 K),然后 PROGRAM2 (2 K)。然后,UMBs 将容纳所有的三个程序。MS-DOS 将加载 PROGRAM1 到 4k UMB,离开 2k 的空间。 PROGRAM3 然后将适合下一个最大的 UMB (3 K),并且 PROGRAM2 适合剩余的 2 K。

找出程序的内存要求

程序的内存要求确定它需要 UMB 的大小。 遗憾的是,有时可能难以判断出 UMB 某个特定的程序需要由于这取决于如何以及何时程序分配内存的大小。一般情况下,程序分为两个组:

  • 大多数程序都需要运行时与该程序的大小至少大的 UMB。

    若要了解此大小,发出 MEM/C 命令在 $ 程序时正在运行。在大多数的情况中如果没有该大小的一个 UMB 可用,程序应适合该 UMB。
  • 某些程序需要与该程序的文件大小至少大一个 UMB。

    这样的程序在启动过程中使用大量内存,并且需要较少的内存,一旦他们正在运行。此类程序最初需要一个大型 UMB ;,但该程序已启动后,放弃一些内存,然后可用于加载下一个程序。
下表列出了一些常见的 Microsoft 的设备驱动程序和高端内存区中可以运行的内存驻留程序。表指定确定的每个程序需要 UMB 大小的方式: 通过正在运行时检查该程序的大小,或通过检查其文件大小。
   Program Name   Size of UMB It Needs
   ------------------------------------

   ANSI.SYS       File size
   DISPLAY.SYS    Size while running
   DRIVER.SYS     File size
   EGA.SYS        File size
   MOUSE.COM      File size
   MOUSE.SYS      File size
   PRINTER.SYS    Size while running
   RAMDRIVE.SYS   Size while running
   SMARTDRIVE.SYS Size while running
   SETVER.EXE     File size
   APPEND.EXE     Size while running
   ASSIGN.COM     Size while running
   DOSKEY.COM     Size while running
   FASTOPEN.EXE   Size while running
   GRAFTABL.COM   File size
   GRAPHICS.COM   Size while running
   KEYB.COM       File size
   MIRROR.COM     Size while running
   NLSFUNC.EXE    File size
   SHARE.EXE      Size while running
				

戏法载入顺序,您 CONFIG.SYS 和命令文件之间

大多数设备驱动程序都将从您的 CONFIG.SYS 文件和命令文件中的大多数内存驻留程序加载。MS-DOS 首先处理 CONFIG.SYS 文件中,然后执行命令文件中的命令。这会限制您操作您的设备驱动程序和程序的加载顺序,因为设备驱动程序 CONFIG.SYS 文件中的将总是加载之前在命令文件中程序的能力。

下列提示可以帮助您平衡设备驱动程序和内存驻留程序之间的 UMBs 使用:

  • 在您 CONFIG.SYS 文件中启动 $ 仅了最大的设备驱动程序使用 DEVICEHIGH 命令。如果您使用小于最大的内存驻留程序命令文件中的该负载的设备驱动程序,启动这些驱动程序,使用该设备命令。(使用设备命令加载 HIMEM.SYS 和 EMM386.EXE,因为您不能在 UMBs 运行这些驱动程序。
  • 在您的命令文件中启动最大内存驻留程序使用 LOADHIGH 命令。
  • 如果鼠标附带了一个 MOUSE.SYS 和 MOUSE.COM 文件,您可以从您 CONFIG.SYS 或命令文件启动您的鼠标驱动程序。此的方法 (只要 HIMEM.SYS EMM386.EXE 后,您可以将其加载),您可以加载鼠标驱动程序在启动过程中的任何位置。

    • 若要将加载到 UMBs CONFIG.SYS 文件中的鼠标驱动程序,使用 DEVICEHIGH 命令加载 MOUSE.SYS 文件。
    • 若要将加载到 UMBs 命令文件中的鼠标驱动程序,使用 LOADHIGH 命令加载 MOUSE.COM 文件。

调整以提供更多 UMBS emm386

您可以调整 EMM386 分配额外的空间,在高端内存区中。(这是您必须启动 EMM386 使用 RAM 开关可以进行扩展的内存的程序可用时尤其有用。第一次,执行过程 1 中的步骤。执行过程 1,如果您仍然无法加载程序和设备驱动程序到 UMBs 后,执行过程 2 中的步骤。

步骤 1: 包含上层内存区域的特定的部分

在高端内存区中的某些地址通常可以为保留的硬件和视频驱动程序 ; EMM386 不会通常使这些区域作为 UMBs 可用。然而,在很多的系统上的硬件和视频驱动程序并不使用所有保留的内存地址。剩余的地址可以通过 EMM386 用于作为包含 UMBs。若要指示 EMM386 以包含这些未使用的区域,您使用我的启动 EMM386 设备命令后切换。

若要分配用于高端内存区中的额外空间作为 UMBs,请按照下列步骤操作:

  1. 创建一个 MS-DOS 启动盘。要执行此操作,将一张经过格式化的软盘插入驱动器 A 中并键入以下内容:
    sys c: a:
  2. 将 CONFIG.SYS 文件复制到启动磁盘中,通过键入以下:
    副本 c:\config.sys a:\
  3. 编辑原始 CONFIG.SYS 文件。若要编辑该文件使用 MS-DOS 编辑器,请在命令提示符下键入以下内容:
    编辑 c:\config.sys
  4. 找到设备命令 EMM386.EXE,和插入我切换 RAM 或 NOEMS 开关的前面。我交换机高端内存区域中指定某一范围内的地址,并告诉 EMM386 UMBs 作为用于分配的内存。我的切换为您指定的值将取决于您的计算机和显示器类型。

    • 如果您的计算机不是 IBM PS/2,并且没有单色监视器,添加 i = E000 EFFF 和 i = B000 B7FF 切换之前,如下所示 RAM 或 NOEMS 切换:
      device=c:\dos\emm386.exe i = E000 EFFF i = B000 B7FF ram
    • 如果您的计算机不是 PS/2,并且有单色监视器,添加 i = E000 EFFF 开关,如下所示 RAM 或 NOEMS 切换之前:
      device=c:\dos\emm386.exe i = E000 EFFF ram
    • 如果您的计算机是 IBM PS/2,并且没有单色监视器,添加 i = B000 B7FF 开关,如下所示 RAM 或 NOEMS 切换之前:
      device=c:\dos\emm386.exe i = B000 B7FF ram
    • 如果您的计算机是用单色显示器的 IBM PS/2,请参阅过程 2。
  5. 如果您正在使用 MS-DOS 编辑器,选择从文件菜单中的退出。当 MS-DOS 编辑器将显示一个对话框,提示您保存您的文件时,选择是,或按 ENTER。
  6. 通过按 CTRL + ALT + DEL,重新启动计算机。

    如果您的计算机出现故障时启动它,硬件或 $ 视频显示驱动程序可能正在使用 EMM386 为指定的内存范围。在这种情况下将您的启动磁盘插入驱动器 A 中,并重新启动计算机。然后,编辑您 CONFIG.SYS 并删除我交换机 EMM386 为添加到设备命令。 请与 Microsoft 支持服务联系以获得进一步的帮助。
  7. 启动计算机后,请检查是否在程序加载到 UMBs 成功。这样做请在命令提示符下键入以下内容:
    mem/c 更
    此命令将显示您的计算机的常规和上限内存的内容,并显示在内存中每个程序运行的。),有关 MEM/C 命令和 UMBs 有关的详细信息请参阅页 320 该用户的指南和参考。

步骤 2: 减少空间顺便设置扩展内存的使用

与 RAM 开关启动 EMM386 使较少的高端内存块 (UMBs) 可比使用 NOEMS 开关启动它。如果程序或设备驱动程序不会加载到 UMBs 在计算机启动时,可能是没有足够 UMBs 运行这些程序。这是因为使用 RAM 切换集放在一边 64k 的高端内存区使用扩展内存的使用。剩余 UMBs 不可能足够大,来运行您的程序,即使能够包括其他的地址,通过以下过程 2。

您可以指示要使用扩展内存的使用的设置放在一边 16k 的高端内存区域,而不是 64 的 K EMM386。这使多个 UMBs,但可能会通过使用扩展的内存的程序有效地运行更少。请按照下列步骤操作:

  1. 从 Windows,退出,并在命令提示符下键入如下:
    emm386
    EMM386 显示其当前的内存管理活动有关的信息。找到读取"页面帧段"的行并在该行上写下十六进制地址。在下面的示例页帧段是 E000。
    ........页帧段 . e000 F
  2. 编辑原始 CONFIG.SYS 文件。若要编辑该文件使用 MS-DOS 编辑器,请在命令提示符下键入以下内容:
    编辑 c:\config.sys
  3. 找到 EMM386.EXE,设备命令和插入内存切换前的 P0 开关。P0 交换机应指定从在步骤 1 中的 EMM386 获取的地址。例如对于页面帧段是否 E000,设备命令可能如下所示:
    device=c:\dos\emm386.exe i = E000 EFFF p0 = E000 ram
  4. 如果您正在使用 MS-DOS 编辑器,选择从文件菜单中的退出。当 MS-DOS 编辑器将显示一个对话框,提示您保存您的文件时,选择是,或按 ENTER。
  5. 通过按 CTRL + ALT + DEL,重新启动计算机。

    如果您的计算机出现故障时启动它,将启动盘插入驱动器 A 中,并重新启动计算机。然后,编辑您 CONFIG.SYS 文件并删除您添加到设备命令 EMM386 P0 开关。然后,保存该文件、 重新启动您的计算机并重复过程 2 ; 务必仔细检查页面框架地址。
  6. 启动计算机后,请检查是否在程序被加载到 UMBs 成功。这样做请在命令提示符下键入以下内容:
    mem/c 更
    此命令将显示您的计算机的常规和上限内存的内容,并显示在内存中每个程序运行的。),有关 MEM/C 命令和 UMBs 有关的详细信息请参阅页 320 该用户的指南和参考。
如果在 UMBs 运行您的程序和设备驱动程序,您已经解决了问题。

如果您的程序和驱动程序仍不会加载到 UMBs,则可能您的系统只需使用的足够 UMBs 来运行这些程序。您的计算机硬件的信息,请参阅文档有关的高端内存区中的地址都在使用 ; 请与 Microsoft 产品支持服务以获得进一步的帮助。

参考

有关其他信息,请参见以下页中"用户指南并参考":

  • 如何将您的计算机设置为在高端内存区域中运行程序页 313 326
  • 有关疑难解答的正在运行的程序,在高端内存区域的页面 327 过程的提示
  • 有关 DEVICEHIGH 命令的页面 435 信息
  • 有关 LOADHIGH 命令的页面 518 信息
  • MEM 命令的页面 519 有关的信息
  • 页 605 EMM386.EXE 的启动参数信息
  • 页 610 HIMEM.SYS 的启动参数信息

属性

文章编号: 77083 - 最后修改: 2006年11月16日 - 修订: 1.1
这篇文章中的信息适用于:
  • Microsoft MS-DOS 5.0 标准版
关键字:?
kbmt KB77083 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 77083
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com