Speicheroptimierung

E-Books


Speicheroptimierung



Auch unter der neuen Version 6.0 von MS-DOS ist das Problem des zu kleinen konventionellen Arbeitsspeichers (der Bereich bis 640 KB) noch immer vorhanden. In der Version 5.0 wurde begonnen, neue Adreßbereiche (Upper Memory Blocks bzw. UMB) zu finden, die die Prozessoren 80386 und 80486 verwenden konnten, um Programme, die im Extended Memory geladen waren, über die Real-Mode-Adressen (im 1-MB-Bereich) ansprechen zu können.
In der neuen Version wurden neue Hilfsmittel implementiert bzw. existierende verbessert, um den Benutzer die Verwendung des UMB-Bereichs zu erleichtern.
*
Der MEM-Befehl verfügt über einen neuen Schalter /F, mit dessen Hilfe die freien Bereiche in den Upper Memory Blocks (UMSs) angezeigt werden können. Dadurch ist der Benutzer in der Lage, auf einen Blick zu erkennen, wo welche Treiber bzw. speicherresidente Programme installiert werden können.
Die freien Bereiche werden durch Nummern identifiziert, die bei den Anweisungen DEVICEHIGH und LOADHIGH angegeben werden können, um die Installation eines Programms in einem bestimmten Bereich festzulegen.
Durch den ebenfalls neuen Schalter /M (gefolgt von einem Modulnamen) können Informationen darüber gewonnen werden, welche Speicherbereiche von einem Programm belegt sind.
Die Anweisungen DEVICEHIGH und LOADHIGH wurden um die Schalter /L und /S erweitert:
*
Über den Schalter /L kann ein Bereich festgelegt werden, in den der Zusatztreiber bzw. das speicherresidente Programm geladen werden soll. Folgende Syntax ist zu beachten:
DEVICEHIGH{/L:Bereiche}={lw:}{Pfad}Dateiname{Argumente}
und
LOADHIGH{/L:Bereiche}{Lw:}{Pfad}Dateiname{Argumente}
Das Argument Bereiche ist folgendermaßen aufgebaut:
Bereich1{,Mingröße}{;Bereich2{Mingröße}}...
Der Bereich (Bereich1, Bereich2 usw.), in den das Modul geladen werden soll, wird durch jene Nummer angegeben, die der MEM-Befehl mit dem Schalter /F anzeigt.
Das Argument Mingröße legt fest, wieviel Speicher der Treiber bei seiner Ausführung benötigt, und teilt dadurch dem System mit, wie Groß der Bereich ist, der für den Treiber reserviert werden muß. Diese Angabe ist nur für Treiber zu verwenden, die nach dem Laden mehr Speicher vom System anfordern, und wird haupsächlich von MemMaker verwendet. Manche Module belegen mehrere Bereiche, die nach dem Schalter /L, getrennt durch Semikolons, angegeben werden können.
*
Wird der Schalter /S angegeben, wird der Bereich, in dem das Modul geladen wird, auf seine Minimalgröße verkleinert.
Informationen darüber, wie ein Zusatztreiber den Speicher belegt und welche Angaben in der Anweisung DEVICEHIGH gemacht werden sollen, können gefunden werden, indem der Treiber mit Hilfe der DEVICE-Anweisung installiert wird und anschließend seine Lage mit dem MEM-Befehl und dessen Schalter /M überprüft wird.
(c) Jürgen Richter