最佳化您的使用上層記憶體區塊,

文章翻譯 文章翻譯
文章編號: 77083 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

設定您的電腦程式或裝置驅動程式載入上層記憶體區塊 (UMBs)。現在您想要確定您對那些的最佳使用 UMBs,您就可以執行多個程式以最上層記憶體區域中。

本文提供技術善加利用電腦的上層記憶體區域。若要將這些技巧您應該熟悉頁面 313 330 的 Microsoft MS-DOS 」 使用者的快速入門及參考 「 說明如何將 UMBs 載入程式的版本 5.0 上, 資訊。在特別 327、 329 頁提供了有關最佳化您的 UMBs 使用一些基本資訊。

本文將告訴您下列最佳化技術:

  • EMM386 開頭 NOEMS 切換控制,而不是 RAM 切換控制的
  • 尋找最佳以便將 UMBs 載入驅動程式及程式
  • 調整以提供更多 UMBs EMM386

emm386 開頭 NOEMS 代替鎚切換參數

如果不使用需要擴充的記憶體 (EMS) 的程式啟動 [與 NOEMS 參數的 [EMM386]。這樣可以提供您額外 64K 的 UMBs,因為 NOEMS 參數會指示 EMM386 不若要在上層記憶體區域中建立 EMS 頁面框架。如果您使用 NOEMS 參數啟動 EMM386,程式將無法以 Windows 執行時,即使使用擴充的記憶體。

若要啟動 EMM386 與 NOEMS 參數:

  1. 編輯 CONFIG.SYS 檔案。若要編輯檔案使用 MS-DOS 編輯器,請在 MS-DOS 命令提示字元中如下輸入:
    編輯 c:\config.sys
  2. 找到啟動 EMM386 DEVICE 指令。如果 DEVICE 命令包含 RAM 切換控制,變更讓它而是包含 NOEMS 切換控制。EMM386 DEVICE 命令現在應該看起來如下所示:
    device=c:\dos\emm386.exe noems
  3. 您在 CONFIG.SYS 檔案 (如果有的話) 儲存變更並結束文字編輯器。如果您使用 MS-DOS 編輯器,選擇結束] 從 [檔案] 功能表。當 MS-DOS 編輯器會顯示對話方塊,提示您儲存您的檔案時,選擇 [是],或按下 ENTER 鍵。
  4. 藉由按下 CTRL + ALT + DEL,重新啟動您的系統。
完成這個程序之後,某些程式可能會顯示記憶體不足的訊息,或者無法執行。這類程式可能需要擴充的記憶體。如果是這種情況,取代 RAM 切換控制,若要一次的使用擴充的記憶體 NOEMS 切換控制。

尋找最佳以便將 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 順序是很重要的。在一般載入到上層記憶體] 區域的程式負載時較大的程式在較小的之前。不過,這個簡單的負載-最大-優先方法可能不一定是最有效率。有時,您可能必須 juggle 載入順序取得出上層記憶體區域。

比方說假設您想要將 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 並不會使用整個 4K 中該 UMB 空間,一個額外的千位元組的記憶體仍將處於未使用。下一個程式 PROGRAM1 (2 K) 放入 3 K 一次留下一個未使用的千位元組的記憶體的 UMB。 不過,PROGRAM2 也需要 2 K 的連續空間,而無法納入到任一種維持在 1 K UMBs。它的不一樣有效率先載入最大的程式時,這是的範例。

更有效率的方法,就是再載入 PROGRAM1 (2 K) PROGRAM3 (3 K) 並再 PROGRAM2 (2 K)。然後,所有三種程式會放入 UMBs。MS-DOS 會載入 4K 留下的空間 2 K 的 UMB PROGRAM1。 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 命令。如果您使用 [小於最大的記憶體常駐程式指令檔中的該負載的裝置驅動程式開始使用 [DEVICE 這些驅動程式] 指令。(因為您無法在 UMBs 中執行這些驅動程式載入 HIMEM.SYS 和 EMM386.EXE,使用 DEVICE 命令)。
  • 在您的指令檔啟動您最大的記憶體常駐程式 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 DEVICE 命令。

為使用配置上層記憶體區域中的額外空間,為 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 切換控制的前面插入 DEVICE 命令。我切換上層記憶體] 區域中指定的位址範圍,並告知 EMM386 作為 UMBs 配置使用的該記憶體。值為我切換指定將視您的電腦與監視器類型而定。

    • 如果您的電腦不是為 IBM PS/2,且不具有單色監視器,新增 i = E000 EFFF 與 i = B000 B7FF 切換之前 RAM 或 NOEMS 切換,如下所示:
      device=c:\dos\emm386.exe i = E000 EFFF i = B000 B7FF 鎚
    • 如果您的電腦不是 PS/2,且具有單色監視器,新增 i = E000 EFFF 參數之前 RAM 或 NOEMS 切換,如下所示,:
      device=c:\dos\emm386.exe i = E000 EFFF 鎚
    • 如果您的電腦是為 IBM PS/2,且不具有單色監視器,新增 i = B000 B7FF 參數之前 RAM 或 NOEMS 切換,如下所示,:
      device=c:\dos\emm386.exe i = B000 B7FF 鎚
    • 如果電腦的 IBM PS/2 具有單色監視器請參閱程序 2]。
  5. 如果您正在使用 MS-DOS 編輯器,結束從 [檔案] 功能表選擇 []。當 MS-DOS 編輯器會顯示對話方塊,提示您儲存您的檔案時,選擇 [是],或按下 ENTER 鍵。
  6. 藉由按下 CTRL + ALT + DEL,重新啟動電腦。

    如果您的電腦無法在啟動時,您 EMM386 為指定的記憶體範圍可能正由硬體或視訊顯示驅動程式。在這種情況下將您的開機磁片插入磁碟機 A 中,並重新啟動您的電腦。然後,編輯您 CONFIG.SYS 並移除我 switch(es) 您新增到 DEVICE 命令 EMM386。 請連絡 Microsoft 支援服務以取得進一步協助。
  7. 當您啟動電腦之後,請檢查是否您的程式載入到 UMBs 成功。如果要執行這項操作,請在命令提示字元中如下輸入:
    mem/c 具
    這個命令會顯示您電腦的傳統及上層記憶體的內容,並顯示執行每個程式記憶體的位置。(如需 MEM/C 命令和 UMBs 的詳細資訊,請參閱頁面 320 之使用者的指南和參考 >)。

程序 2: 減少空間預留設定,以便在使用擴充記憶體

啟動 EMM386 與 RAM 參數可較少的上層記憶體區塊 (UMBs) 比使用 NOEMS 參數下啟動它。如果程式或裝置驅動程式不會載入到 UMBs 電腦啟動時,不可能執行那些程式足夠 UMBs。這是因為使用 [RAM 切換集預留上層記憶體區域,以便在使用擴充記憶體 (64K)。即使您已可以包括額外的位址,依下列程序 2,其餘 UMBs 可能不是不夠大,無法執行您的程式。

您可以指示 EMM386 預留 16K 上層記憶體] 區域,而不是 64 K 為設定所使用的擴充記憶體。這使得多個 UMBs 可用,但使用擴充的記憶體的程式可能會有效地執行小於。請依照下列步驟執行:

  1. 結束 Windows,並在命令提示字元中輸入下列:
    emm386
    EMM386 顯示其目前的記憶體管理活動的相關資訊。找出會讀取頁面畫面格區段的那一行,並在該行記下十六進位的地址。在下列的範例頁面畫面格區段會是 E000。
    ........頁面畫面格區段 . e000 f
  2. 編輯原始的 CONFIG.SYS 檔案。若要編輯檔案使用 MS-DOS 編輯器,請在命令提示字元中如下輸入:
    編輯 c:\config.sys
  3. 找尋 EMM386.EXE,DEVICE 命令,並插入 P0 切換控制 RAM 參數之前。P0 切換控制應指定取自 EMM386 步驟 1 中的位址。比方說如果頁面畫面格區段已 E000,DEVICE 命令可能會出現,如下所示:
    device=c:\dos\emm386.exe i = E000 EFFF p0 = E000 鎚
  4. 如果您正在使用 MS-DOS 編輯器,結束從 [檔案] 功能表選擇 []。當 MS-DOS 編輯器會顯示對話方塊,提示您儲存您的檔案時,選擇 [是],或按下 ENTER 鍵。
  5. 藉由按下 CTRL + ALT + DEL,重新啟動電腦。

    如果您的電腦無法在啟動時,將啟動磁片插入磁碟機 A 中,並重新啟動您的電腦。然後,編輯您 CONFIG.SYS 檔案,請移除您新增到 DEVICE 命令 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 Standard Edition
關鍵字:?
kbmt KB77083 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:77083
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 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