Zum Inhalt springen

Extended Memory Specification

aus Wikipedia, der freien Enzyklopädie

Die Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., kurz XMS, wurde von Microsoft für Windows 2.1 entwickelt.<ref>Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref> Die Spezifikation normiert den Zugriff auf Arbeitsspeicher unter zu MS-DOS kompatiblem DOS oberhalb der 1-MB-Grenze des IBM PC. Dieser Speicher wird als Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. bezeichnet, was meist mit „Erweiterter Speicher“ übersetzt wird. Im Gegensatz zu Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., der beim originalen IBM PC von 1981 (und kompatiblen Computern) eine Speicherkarte voraussetzt und dessen Zugriff per Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. (EMS) normiert ist, ist Erweiterter Speicher erst ab dem 80286-Prozessor von Intel, der ab dem IBM PC/AT von 1984 verwendet wird, im Betriebsmodus Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. nutzbar,<ref>Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref> da x86-Prozessoren seit diesem Prozessor mehr Adressleitungen besitzen und somit auch mehr Speicher direkt verwalten können. Die Verwaltung des Erweiterten Speichers bzw. auch XMS-Speichers übernimmt ein Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. (mit XMM abgekürzt).

Nach einer Übergangszeit, in der auf manchen 80286-Systemen und dank Vorlage:Monospace auf allen 80386ern (und neuer) kompatiblen DOS-Anwendungen XMS-Speicher als EMS-Speicher zur Verfügung gestellt werden konnte, löste „Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.“ (XMS) bis Mitte der 1990er Jahre „Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.“ (EMS) beinahe vollständig ab. Beide Speicherarten kommen auf dem IBM-kompatiblen PC nur unter DOS vor. Modernere 32-Bit-PC-Betriebssysteme verwenden das Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. (siehe Speichermodell) des Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., der auf der x86-Architektur bereits in den 1980er Jahren eingeführt wurde. Da sich allerdings MS-DOS lange Zeit auf dem IBM-kompatiblen PC als Standard-Betriebssystem halten konnte, konnte erst mit Windows 95, das noch voll DOS-kompatibel ist, eine langsame Ablöse zugunsten der Windows-Plattform erreicht werden, die schließlich Anfang der 2000er Jahre mit Windows XP ihr Ende fand.

Entwicklung[Bearbeiten]

Das Betriebssystem MS-DOS war für den Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. gedacht, ein 16-Bit-Betriebsmodus der x86-kompatiblen Mikroprozessoren, in dem der Hauptspeicherzugriff wie beim 8086er Prozessor erfolgt. In diesem Betriebsmodus kann nur das erste Mebibyte des Hauptspeichers angesprochen werden. Ab dem 80386 lässt sich diese Limitierung im undokumentierten Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. umgehen, was allerdings kein eigener Betriebsmodus, sondern als Programmiertrick zu bezeichnen ist.

Als die ersten PC/ATs von IBM ausgeliefert wurden, waren diese mit dem 80286er Prozessor versehen, der mehr Hauptspeicher ansprechen konnte. So kamen mit der Zeit auch PCs auf den Markt, die mit mehr als 1 MiB Hauptspeicher ausgerüstet waren. Inzwischen waren die 640 KB, die unter DOS für Anwendungsprogramme nutzbar waren, für viele Zwecke bereits zu klein geworden. Der Zugriff auf den erweiterten Speicher war jedoch schwierig, da der Prozessor hierfür in den Protected Mode geschaltet werden musste. Vom BIOS wurde zwar eine Funktion (über den Software-Interrupt 15hex) angeboten, mit der Speicherbereiche in den erweiterten Speicher kopiert werden konnte, doch der Umgang damit war umständlich und riskant. Auch gab es keinerlei Zugriffskontrolle, falls mehrere Programme auf den Speicher zugreifen wollten.

Deshalb wurde 1988 von den Firmen Lotus Development Corp., Intel Corp., Microsoft Corp. und AST Research Inc. eine Spezifikation erarbeitet, die den Zugriff auf den erweiterten Speicher steuern sollte.

Skriptfehler: Ein solches Modul „Vorlage:Anker“ ist nicht vorhanden.Extended Memory Manager[Bearbeiten]

Für den Zugriff auf den Erweiterten Speicher nach XMS ist der Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. (XMM) zuständig. Dieser wurde anfangs auch mit „EMM“ abgekürzt, was allerdings zu oft mit dem Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., der für EMS-Speicher zuständig ist, verwechselt wurde. Über den Speichermanager können sich Anwendungsprogramme und Gerätetreiber Speicherbereiche im Erweiterten Speicher (XMS) reservieren lassen, Daten vom Konventionellen Speicher dort hinein und später wieder zurück kopieren, sowie den Speicher nach Gebrauch wieder freigeben.

Unter DOS muss der Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. als Gerätetreiber in der Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. beim Systemstart geladen werden. Dieser wurde als Vorlage:Monospace in den späten 1980er Jahren erstmals mit Windows 2.1 ausgeliefert und ist nach dem HIMEM-Hack benannt, mit dem auch im Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. auf die ersten rund 64 KB über der 1-MiB-Grenze (die Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., HMA) zugegriffen werden kann. Seit MS-DOS 4.01 von 1988 ist Vorlage:Monospace auch fixer Bestandteil von MS-DOS (IBM folgte mit PC DOS 5.0), aber auch bei anderen PC-kompatiblen DOS-Varianten ist meist ein kompatibler Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. enthalten, beispielsweise Vorlage:Monospace in DR DOS 5.0.

Der XMM-Gerätetreiber muss beim Hochfahren des Rechners geladen werden. Über den Software-Interrupt 2Fhex kann der Einsprungpunkt für die Service-Routine des XMM ermittelt werden, über die der XMM seine Dienste anbietet.

Der Zugriff auf Speicherbereiche im XMS geschieht über sogenannte Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., die der XMM beim Allozieren eines Speicherblocks zurückgibt. Um Speicherblöcke zwischen dem XMS und dem konventionellen Speicher hin und her zu kopieren, wird das spezielle XMS-Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. 000016 benutzt, um Speicheradressen im konventionellen Speicher anzugeben. XMS-Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. sind allerdings eine knappe Ressource, da der XMM für jedes Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. Verwaltungsdaten vorrätig halten muss. Üblich waren 32 Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., die Anzahl kann allerdings je nach XMM auf bis zu 256 hochgesetzt werden.<ref>https://www.i8086.de/dos-befehle/himem-sys.html</ref>

Für den Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. auf x86-PC-Systemen mit 80386-Prozessor oder besser ist ein XMS-Speichermanager wie Vorlage:Monospace meist Voraussetzung, um „Expansionsspeicher“ (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., EMS) simuliert bereitstellen zu können. Der EMS-Speichermanager Vorlage:Monospace muss in der Vorlage:Monospace daher immer nach Vorlage:Monospace geladen werden.

Weiterentwicklung[Bearbeiten]

Die in XMS Version 1 und 2 definierten XMS-Funktionen benutzten 16-Bit-Werte, um Blockgrößen (in Kibibyte) anzugeben, was ausreichte, um maximal 64 MiB anzusprechen. Das war nicht nur auf 80286-Systemen, die ohnehin maximal 16 MiB Arbeitsspeicher adressieren können, mehr als ausreichend, sondern auch auf 80386-Systemen. Selbst 80486-Systeme von Anfang der 1990er Jahre mit 72-poligen SIMMs unterstützen normalerweise nicht mehr als 64 MiB RAM. Teure Workstation- oder Server-Platinen ab ca. 1992 konnten allerdings bereits 128 MiB RAM aufnehmen.

XMS 3.0 „Super Extended Memory“[Bearbeiten]

1991 wurde die XMS 3.0 veröffentlicht, die den Zugriff auf mehr als 64 MiB Hauptspeicher möglich machte. Dies wurde damals auch Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. genannt.<ref>https://www.phatcode.net/res/219/files/xms30.txt</ref> Die Funktionen wurden dazu auf 32-Bit-Register erweitert, die erst ab dem 32-Bit-80386-Prozessor zur Verfügung stehen.

Probleme[Bearbeiten]

Da zum Kopieren von Daten zwischen dem DOS-Speicher und dem erweiterten Speicher vorübergehend in den Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. gewechselt werden muss, ist der Zugriff auf diesen Speicher vergleichsweise langsam, insbesondere auf 80286-Prozessoren, da diese zum Zurückschalten in den Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. das kontrollierte Zurücksetzen des Prozessors erfordern, der ebenfalls recht lange dauert. Auch das prinzipiell kaum sinnvolle Hin- und Herkopieren von Daten zwischen verschiedenen Speicherbereichen bremst XMS merklich aus. Auf einem 80286er ist daher EMS-Speicher („Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.“ oder „Expansionsspeicher“) in der Regel schneller als XMS-Speicher („Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.“, „Erweiterter Speicher“, manchmal auch „hoher Speicher“), da das Einblenden eines 64-KiB-EMS-Fensters in den oberen Speicherbereich von DOS, die Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. bzw. UMA, nur wenige Male und durch Hardware, wie den NEAT-Chipsatz, geschieht und dann der 80286 auf dieses 64-KiB-Fenster vom Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. aus, ohne in den Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. schalten zu müssen, direkt zugreifen kann. Der auf dem 286er langsame Umschaltprozess entfällt damit weitgehend.<ref>https://www.pcplayer.de/archiv/data/1993/1993-02.pdf Extended Memory und Expanded Memory Mehr RAM PC Player 1992-02 S. 100</ref>

Ab dem i386 kann der Erweiterte Speicher (XMS) alternativ auch dazu genutzt werden, um Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. (EMS) emuliert bereitzustellen. Da programmtechnisch die Nutzung von EMS-Speicher einfacher und auf dem 286er schneller als die von XMS-Speicher ist, waren DOS-Programme, die EMS-Speicher benutzten, häufiger. Einige speicherhungrige Anwendungsprogramme, aber auch PC-Spiele, die um 1990 erschienen, können mit beiden Speichererweiterungen umgehen. In den 1990er Jahren setzte sich XMS schließlich eindeutig durch, während ab Mitte der 1990er DOS an Bedeutung verlor. Windows-Programme sind von den DOS-Speichertypen nicht mehr betroffen.

Siehe auch[Bearbeiten]

Quellen[Bearbeiten]

<references />