Microsoft Disk Operating System — Änderungen 9868 → 9869

Zeile 31: Zeile 31:
 
Der Treiber himem.sys stellt gemäß der ''Extended Memory Specification'' (XMS) den Zugriff auf verschiedene Arten von hohen Speicherbereichen zur Verfügung:
 
Der Treiber himem.sys stellt gemäß der ''Extended Memory Specification'' (XMS) den Zugriff auf verschiedene Arten von hohen Speicherbereichen zur Verfügung:
 
* Die ''High Memory Area'' (HMA) bezeichnet den 65520 Bytes großen Bereich ab 1 MB (von 0x00100000 bis 0x0010FFEF). Der Zugriff darauf wird ermöglicht, indem das [[A20-Gate]] aktiviert wird, so dass der Bereich innerhalb des im Real Mode adressierbaren Bereichs liegt.
 
* Die ''High Memory Area'' (HMA) bezeichnet den 65520 Bytes großen Bereich ab 1 MB (von 0x00100000 bis 0x0010FFEF). Der Zugriff darauf wird ermöglicht, indem das [[A20-Gate]] aktiviert wird, so dass der Bereich innerhalb des im Real Mode adressierbaren Bereichs liegt.
−
* Je nach Hardware freie Speicherbereiche in der ''Upper Memory Area'' zwischen 640 kB und 1 MB. Die Adressierung im Real Mode stellt hier kein Problem dar. Dieser Service wird aber nicht von himem.sys selber angeboten. Zusätzliche Speichermanager, wie emm386.exe oder umbpci.sys, stellen diesen Service zur Verfügung.
+
* Je nach Hardware freie Speicherbereiche in der ''Upper Memory Area'' zwischen 640 kB und 1 MB. Die Adressierung im Real Mode stellt hier kein Problem dar. Dieser Service wird aber nicht von himem.sys selber angeboten. Zusätzliche Speichermanager, wie emm386.exe oder umbpci.sys, stellen diesen Service zur Verfügung indem diese den XMS-Service "überladen".
 
* ''Extended Memory Blocks'' beginnen nach dem Ende der HMA. Die API erlaubt es, im erweiterten Speicher Blöcke zu reservieren, freizugeben und Daten hinein/heraus zu kopieren (die Speicherverwaltung schaltet dazu kurzzeitig in den [[Protected Mode]]). Eine direkte Adressierung des Speichers ist im Real Mode nicht möglich, so dass die API-Funktion zum Kopieren der Daten in den konventionellen Speicher benutzt werden muss bevor mit dem Inhalt gearbeitet werden kann. Darüber hinaus kann so ein Extended Memory Block auch gelockt werden was ihn in seiner Größe unveränderlich macht aber dafür auch als nicht verschiebbar deklariert. Von einem gelockten EMB bekommt man auch die physische 32Bit-Adresse und kann ihn so für eigene Protected Mode Spielchen benutzen (alle DOS-Extender machen das so wenn sie auf einem DOS-System gestartet werden in dem nur himem.sys aber nicht emm386.exe läuft).
 
* ''Extended Memory Blocks'' beginnen nach dem Ende der HMA. Die API erlaubt es, im erweiterten Speicher Blöcke zu reservieren, freizugeben und Daten hinein/heraus zu kopieren (die Speicherverwaltung schaltet dazu kurzzeitig in den [[Protected Mode]]). Eine direkte Adressierung des Speichers ist im Real Mode nicht möglich, so dass die API-Funktion zum Kopieren der Daten in den konventionellen Speicher benutzt werden muss bevor mit dem Inhalt gearbeitet werden kann. Darüber hinaus kann so ein Extended Memory Block auch gelockt werden was ihn in seiner Größe unveränderlich macht aber dafür auch als nicht verschiebbar deklariert. Von einem gelockten EMB bekommt man auch die physische 32Bit-Adresse und kann ihn so für eigene Protected Mode Spielchen benutzen (alle DOS-Extender machen das so wenn sie auf einem DOS-System gestartet werden in dem nur himem.sys aber nicht emm386.exe läuft).