MS-DOS Forum

MS-DOS Forum
Anleitungen, Referenz aller DOS Befehle, Batch Dateien
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    MS-DOS Forum Foren-Übersicht -> Systemoptimierung
Autor
Nachricht
matthias





Optimieren der Benutzung des hohen Speicherbereichs
Verfasst am: 18.11.2009, 18:05

Beim Laden eines Programms oder Treibers in den hohen Speicherbereich belegt MS-DOS den größten freien Speicherblock, selbst wenn dieses Programm in einen kleineren Speicherblock passen würde. Deshalb ist die Reihenfolge wichtig, in der Programme in den hohen Speicherbereich geladen werden. Wahrscheinlich werden Sie etwas experimentieren müssen, um die rationellste Möglichkeit herauszufinden, wie die verfügbaren Teile des hohen Speicherbereichs genutzt werden können.

Empfehlungen

Im folgenden werden einige grundlegende Empfehlungen zur Optimierung der Benutzung des hohen Speicherbereichs gegeben:

Laden Sie im allgemeinen Gerätetreiber und Programme in der Reihenfolge ihrer Größe (vom größten zum kleinsten).

Probieren Sie unterschiedliche Kombinationen und Reihenfolgen von Programmen aus. Die optimale Reihenfolge hängt von den Größen der geladenen Programme und den Größen der verfügbaren hohen Speicherblöcke ab.

Fehlersuche im hohen Speicherbereich

Einige Gerätetreiber und Programme können im hohen Speicherbereich nicht ausgeführt werden. Dieser Abschnitt beschreibt Probleme, die auftreten können, und einige mögliche Lösungen.

Bei Empfang einer Fehlermeldung

Falls Sie eine Fehlermeldung für einen Gerätetreiber oder ein Programm erhalten, den/das Sie im hohen Speicherbereich ausführen wollten, löschen Sie den Befehl devicehigh oder loadhigh für diesen Gerätetreiber beziehungsweise dieses Programm. Wenn es sich um einen Gerätetreiber handelt, bearbeiten Sie die Datei CONFIG.SYS. indem Sie den Befehl devicehigh in den Befehl device ändern. Handelt es sich um ein Programm, das mit dem Befehl loadhigh in der Datei AUTOEXEC.BAT gestartet wurde, öffnen Sie die Datei AUTOEXEC.BAT, löschen Sie den Befehl loadhigh für dieses Programm, und speichern Sie Ihre Änderungen. Nachdem Sie die entsprechende Datei bearbeitet haben, starten Sie Ihren Computer neu. Auf diese Weise können Sie sich vergewissern, dass das Problem behoben ist. Jetzt lädt MS-DOS den Gerätetreiber oder das Programm in den konventionellen Arbeitsspeicher.

Bei einem Systemabsturz

Wenn Ihr System während des Versuchs von MS-DOS, den hohen Speicherbereich für Gerätetreiber oder Programme zu benutzen, oder im Anschluß daran abstürzt, notieren Sie alle angezeigten Fehlermeldungen. Versuchen Sie, anhand dieser Informationen den Gerätetreiber oder das Programm zu identifizieren, der/das dieses Problem verursacht. Wenn Sie das Problem ermitteln können, löschen Sie den Befehl devicehigh oder loadhigh für den betreffenden Gerätetreiber oder das betreffende Programm, und starten Sie Ihren Computer neu. Falls Sie nicht ermitteln können, welcher Gerätetreiber oder welches Programm das Problem verursacht, können Sie ihn/es vielleicht entdecken, indem Sie jeden/jedes einzeln testen. Bevor Sie damit beginnen, legen Sie erst mit dem Befehl format /s eine Systemdiskette an, falls dies nicht bereits geschehen ist.

Hinweis Auch ein Gerätetreiber, der die Grenzen seines hohen Speicherblocks überschreitet, könnte einen Systemabsturz verursachen. Weitere Einzelheiten hierzu finden Sie im folgenden Abschnitt.

Um zu ermitteln, welcher Gerätetreiber oder welches Programm im hohen Speicherbereich nicht funktioniert:

Legen Sie Ihre Systemdiskette in Laufwerk A ein, und starten Sie Ihren Computer neu.

Löschen Sie den Befehl devicehigh oder loadhigh für einen der Gerätetreiber oder eines der Programme, den/das Sie im hohen Speicherbereich auszuführen versuchten.

Bei einem Gerätetreiber bearbeiten Sie die Datei CONFIG.SYS, indem Sie den Befehl devicehigh in den Befehl device ändern. Bei einem Programm, das mit dem Befehl loadhigh in der Datei AUTOEXEC.BAT gestartet wurde, öffnen Sie die Datei, und löschen Sie den Befehl loadhigh für dieses Programm. Speichern Sie anschließend die Datei.

Nehmen Sie Ihre Systemdiskette aus Laufwerk A heraus, und starten Sie Ihren Computer neu.

Wenn Ihr Computer erfolgreich startet, haben Sie die Ursache des Problems gefunden.

Wiederholen Sie dieses Verfahren so lange, bis Ihr Computer erfolgreich startet.

Denken Sie daran, jeweils nur einen Gerätetreiber oder ein Programm in den konventionellen Arbeitsspeicher zu verschieben. Auf diese Weise können Sie bei der Ermittlung, welcher/welches das Problem verursacht hat, die Befehle devicehigh und loadhigh für die anderen Gerätetreiber und Programme wiederherstellen.

Ein Gerätetreiber, der klein genug für einen hohen Speicherblock ist, wird dort nicht geladen

Einige Gerätetreiber passen selbst dann nicht in einen hohen Speicherblock, wenn die Datei klein genug zu sein scheint, um in den größten verfügbaren Speicherblock zu passen. Der Grund: Während diese Gerätetreiber in den Arbeitsspeicher geladen werden, dehnen sie sich aus. Deshalb benötigen sie mehr Arbeitsspeicher, als durch die Größe der Gerätetreiberdatei angegeben ist. In den meisten Fällen lädt MS-DOS einen solchen Gerätetreiber einfach in den konventionellen Arbeitsspeicher. Es ist jedoch möglich, dass Ihr System abstürzt, wenn ein solcher Gerätetreiber in einen hohen

Speicherblock geladen wird.

Zur Ermittlung, welchen Speicherumfang ein solcher Gerätetreiber tatsächlich benötigt, verwenden Sie den Befehl mem ic. Laden Sie hierfür den Gerätetreiber in den konventionellen Arbeitsspeicher, und geben Sie dann an der Eingabeaufforderung

mem ic ein. Suchen Sie den Gerätetreiber im Abschnitt "Konventioneller Arbeitsspeicher" der Anzeige, und notieren Sie sich die Zahl in der Spalte "Größe in Hex". Dies ist der Speicherumfang, den der Gerätetreiber benötigt. Sie können dem Treiber einen ausreichend großen hohen Speicherblock zur Verfügung stellen, indem Sie die notierte Zahl im Parameter size= des Befehls devicehigh angeben.

Ein Programm verhält sich beim Laden in den hohen Speicherbereich unzuverlässig

Einige Programme werden im hohen Speicherbereich nicht einwandfrei ausgeführt. Hierzu gehören:

Programme, die unter der Voraussetzung entwickelt wurden, dass über der Position des Programms im Speicher noch weiterer Speicher ist. Solche Programme arbeiten im konventionellen Arbeitsspeicher, weil es über ihnen immer mindestens den hohen Speicherbereich gibt. Wenn sie aber im hohen Speicherbereich ausgeführt werden, ist dies vielleicht nicht immer der Fall.



Programme, die Adressen im hohen Speicherbereich nicht richtig erkennen.

Falls ein Programm im hohen Speicherbereich unzuverlässig läuft, sollten Sie es im konventionellen Arbeitsspeicher ausführen. Wurde das Programm mit dem Befehl loadhigh in der Datei AUTOEXEC.BAT gestartet, öffnen Sie die Datei, und löschen Sie den Befehl loadhigh für dieses Programm. Speichern Sie anschließend die Datei, und starten Sie Ihren Computer neu.

Bei einem Konflikt im hohen Speicherbereich

Einige Hardware-Programme könnten versuchen, den hohen Speicherbereich zu benutzen, nachdem EMM386 festgestellt hat, dass dieser Speicher zur Ausführung von Gerätetreibern und Programmen verfügbar ist. Zur Vermeidung dieses Konfliktes können Sie beim Laden von EMM386 die Option x verwenden. Diese Option verhindert, dass EMM386 einen bestimmten Bereich des hohen Speicherbereichs für seine Zwecke verwendet. Um beispielsweise zu verhindern, dass EMM386 die Adressen D800h bis D1•1-1-1 für hohe Speicherblöcke benutzt, würden Sie in der Datei CONFIG.SYS folgenden Befehl hinzufügen:

device c:\dos\emm386.EXE noems x=d800-dfff

Im hohen Speicherbereich wird nichts ausgeführt

Wenn Sie meinen, dass Ihr Computer zur Ausführung von Gerätetreibern und Programmen im hohen Speicherbereich eingerichtet ist, im Abschnitt "Hoher Speicher" bei Eingabe des Befehls mem /c aber nichts aufgeführt wird, überprüfen Sie jeden Eintrag in der folgenden Liste.

Hinweis Bei der Ausführung von Microsoft Windows 3-0, im erweiterten 386-Modus, zeigt der Befehl mem den Inhalt des hohen Speicherbereichs nicht an.

Vergewissern Sie sich, dass die Datei CONFIG.SYS den Befehl dos=umb enthält.

Vergewissern Sie sich, dass der Befehl device für EMM386 in der Datei CONFIG.SYS die Option noems oder ram enthält.

Vergewissern Sie sich, dass die Datei CONFIG.SYS den Befehl devicehigh für jeden Gerätetreiber enthält, der im hohen Speicherbereich ausgeführt werden soll.

Vergewissern Sie sich, dass in der Datei AUTOEXEC.BAT der Befehl loadhigh vor dem Namen jedes Programms steht, das im hohen Speicherbereich ausgeführt werden soll.

Vergewissern Sie sich, dass in der Datei CONFIG.SYS der Befehl device für HIMEM vor dem Befehl device für EMM386 steht.

Vergewissern Sie sich, dass in der Datei CONFIG.SYS der Befehl device für EMM386 vor jedem Befehl devicehigh steht.
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    MS-DOS Forum Foren-Übersicht -> Systemoptimierung

Tags: hoher speicher, befehl dos, optimieren, arbeitsspeicher

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Der Befehl Undelete funktioniert nicht 1929 01.12.2008, 09:32
Keine neuen Beiträge eine gelöschte MS-DOS Datei wiederherstellen 4340 09.11.2008, 11:47
Keine neuen Beiträge Ein Programm benutzt nicht den XMS-Erweiterungsspeicher 1275 25.11.2008, 09:50
Keine neuen Beiträge Ein Programm meldet, dass die MS-DOS-Version falsch ist 991 16.11.2008, 11:59
Keine neuen Beiträge MS-DOS wird nicht im oberen Speicherbereich ausgeführt 1594 09.11.2008, 11:40
 



[ Time: 0.1580s ][ Queries: 61 (0.0235s) ][ GZIP on - Debug on ]