Extended Memory (XMS)


Während ein Programm sich den Expanded Memory häppchenweise zuführen muß, kann man auf den gesamten Extended Memory gleichzeitig zugreifen, wenn man erst einmal im Protected Mode ist. Im Real Mode läuft mit dem Extended Memory gar nichts, weil er für den Prozessor unerreichbar hinter der 1-MByte-Speichergrenze sein Dasein fristet. Damit ist auch bereits klar, wer Extended Memory nicht nutzen kann, nämlich Rechner, die mit einem 8088- oder 8086-Prozessor bestückt sind, also einfache XTs. Ihr Prozessor kennt nur den Real Mode und ist im Gegensatz zu seinen großen Brüdern daher nicht in der Lage, in den Protected Mode umzuschalten. (Nachträgliche Anmerkung: das sollte heute kein Problem mehr sein ;-)

Dabei ist es gar nicht schwer, in den Protected Mode zu gelangen, denn dazu muß lediglich ein bestimmtes Bit im sogenannten Flag-Register des Prozessors gesetzt werden. Ist dies erst einmal geschehen, liegen einem Programm bis zu 16 MByte Extended Memory zu Füßen, von denen man jedoch nur wenig hat, weil der Rechner im nächsten Moment abstürzen wird. Schuld daran ist der Mechanismus, mit dem der 80286 und seine Nachfolger den Speicher im Protected Mode adressieren, denn dieser differiert völlig von allem, was man im Real Mode gewohnt ist.

Nicht mehr mit direkten Segmentadressen arbeitet der Prozessor nun, sondern mit sogenannten Segmentdeskriptoren, die auf sogenannte Segmentbeschreiber zeigen, die in einer globalen und unzähligen lokalen Deskriptor-Listen zusammengefaßt werden. Auf die Unterstützung des DOS kann man dabei leider nicht zählen, denn es beschränkt sich ausschließlich auf die Arbeit im Real Mode und kann mit dem Protected Mode in keiner Weise umgehen.



Abbildung: Der Extended Memory im Adreßraum eines PCs

Wenn man also nicht selbst die entsprechenden Deskriptor-Listen vor der Umschaltung in den Protected Mode anlegt und initialisiert, hat man schnell das Nachsehen. Doch diese Aufgabe erfordert eine nicht geringe Erfahrung in der Assembler-Programmierung und intime Kenntnisse um die Arbeitsweise des Prozessors im Protected Mode.

Helfer beim Zugriff auf das Extended Memory findet man jedoch glücklicherweise in verschiedenen BIOS-Funktionen und den sogenannten XMS-Treibern, die speziell für diese Aufgabe geschaffen wurden. Im Vergleich zu den BIOS-Funktionen bieten diese Treiber einen besseren Zugriffsmechanismus auf das Extended Memory, weil sie darauf eingestellt sind, daß nicht ein einziges Programm den gesamten Extended Memory für sich in Anspruch nimmt, sondern ihn sich mehrere Programme untereinander teilen. Gerade aber das Gerangel um die Zugriffsrechte auf den Extended Memory ist ein großes Problem.

Zurück