Frage deutsch
~~~~~~~~~~~~~~
Was ist XMS-Speicher ?
Question English
~~~~~~~~~~~~~~
What's XMS Memory?
Antwort 1
~~~~~~~~~~~~~~~~
[ von Thomas Antoni ]
XMS ist eine Abkürzung für "eXtended Memory Specification" . Das ist ein von INTEL, Microsoft und Lotus festgelegter
Standard für die Speicherverwaltung oberhalb der 1 MByte Grenze. Dieser Speicher
kann erst ab 286er Prozessoren angesprochen werden. Unter DOS kann dieser
Speicher nur mit einem speziellen Treiber (z.B. HIMEM.SYS) genutzt werden.
Antwort 2
~~~~~~~~~~~~~~~~
[von Wikipedia]
Die Extended Memory Specification (kurz: XMS) ist eine Beschreibung, wie
Programme unter dem Betriebssystem MS-DOS (und kompatible) auf den Hauptspeicher
jenseits der 1-Megabyte-Grenze (den so genannten extended memory, auch als
"Erweiterter Speicher" eingedeutscht) zugreifen können.
*** Entwicklung
Das Betriebssystem MS-DOS war für den Real Mode gedacht, ein Betriebsmodus
der x86-kompatiblen Mikroprozessoren, in dem der Hauptspeicherzugriff wie beim
8086er Prozessor erfolgt. In diesem Betriebsmodus kann nur das erste Megabyte
des Hauptspeichers angesprochen werden. (Wenn man von bestimmten
Programmiertricks einmal
absieht.)
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 1MB Hauptspeicher
ausgerüstet waren. Inzwischen waren die 640KiB, die unter DOS nutzbar waren, für
viele Programme bereits zu klein geworden. Der Zugriff auf den extended memory
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
15h) angeboten, mit der Speicherbereiche in den Extended Memory kopiert werden
konnte, doch 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 extended Memory steuern sollte. Diese ist als Extended Memory
Specification veröffentlicht worden.
*** Zugriffsverfahren
Für den Zugriff auf den extended Memory nach XMS ist ein spezieller Treiber,
der extended memory manager (XMM) zuständig. Über diesen können sich
Anwendungsprogramme, aber auch andere Gerätetreiber, Speicherbereiche im
extended Memory reservieren lassen, Daten kopieren und den Speicher nach
Gebrauch wieder freigeben. Unter MS-DOS heißt dieser Treiber HIMEM.SYS und muss
beim Hochfahren des Rechners geladen werden. Unter anderen MS-DOS-kompatiblen
Betriebssystemen heißt dieser Treiber teilweise anders und ist bisweilen auch
mit einem Expanded Memory Manager, der EMS bereitstellt, verknüpft.
Über den Software-Interrupt 2Fh kann der Einsprungpunkt für die
Service-Routine des XMM ermittelt werden, über die der XMM seine Dienste
anbietet.
Antwort 2
~~~~~~~~
[ aus dem Assemblerkurs auf der Seite http://www.orf.at/teletext/cbarchiv/cboxarch.htm
, 21.08.2002 ]
Die Abkürzung XMS steht für "Extanded
Memory System". Das ist eine
Methode, bei
Prozessoren der 8086-Familie den
Hauptspeicher über 1 MB zu nutzen.
Eine andere (ältere) Methode, das
PC-Problem des zu knappen Arbeitsspeichers
(maximal 640 KByte) zu lösen ist Expanded
Memory (-> EMS-Speicher ).
Kurz zusammengefaßt nocheinmal das
Prinzip von EMS:
Zusätzliches RAM wird mit Hilfe von
spezieller Hardware in ein 64 KByte
großes Fenster des normalen Adressraums
jenseits der 640 KByte-Grenze einge-
blendet. Die CPU kann also mit ganz
normalen Assemblerbefehlen auf den
jeweils eingeblendeten Teil des EMS-
Speichers zugreifen.
Der Hauptnachteil des EMS ist daher,
daß gleichzeitig immer nur ein kleiner
Teil des Zusatzspeichers ansprechbar
ist.
Diesen Nachteil vermeidet die zweite
Variante: Extended Memory (XMS).
Extended Memory ist aus Sicht der Hard-
ware "ganz normaler" Speicher ohne die
vorige Woche erklärte Bank-Switching-
Hardware. Er beginnt bei der Adresse
100000H - also genau hinter jenem
Adressraum von 1 MByte, den die CPU im
Real-Modus erreichen kann.
Damit sind die Nachteile von XMS be-
reits klar:
PCs mit 8088 oder 8086-Prozessoren
können XMS überhaupt nicht nutzen, da
sie nur im REAL-Modus arbeiten können.
Man muß die CPU erst in den Protected
Mode bringen, um auf das Extended-
Memory zugreifen zu können. Das Um-
schalten in den Protected Mode ist an
sich ganz einfach: Ein einziges Bit im
Flag-Register muß geändert werden.
Versuchen Sie allerdings, dieses Bit
einfach zu aktivieren, zu landet die
CPU zwar im Protected Mode, gleichzei-
tig aber auch im Nirwana.
Der Grund dafür liegt darin, daß im
Protected Mode die Bedeutung der Seg-
mentregister vollkommen anders als
im REAL-Mode ist. Sie geben nun nicht
mehr den höherwertigen Teil der
physikalischen Adresse an, sondern
zeigen auf einen sogenannten Segment-
Deskriptor.
Dies ist eine Datenstruktur, die neben
der physikalischen Startadresse des
zugehörigen Speicherbereiches auch
dessen Länge und diverse Zugriffsrechte
enthält. Man muß also vor der Akti-
vierung der Protected-Modes diverse
Segment-Deskriptor-Tabellen aufbauen.
Der Grund für diese komlizierte Art des
Speicherzugriffs liegt darin, daß die
Entwickler des 80286 mit dem Protected-
Mode eine Möglichkeit schaffen wollten,
das Betriebssystem vor amoklaufenden
Anwenderprogrammen zu schützen - daher
kommt auch der Name dieser Betriebsart:
geschützter Modus.
Da MS-DOS aber ausschließlich im REAL-
Modus arbeiten kann, ist die Entwick-
lung von Programmen im Protected-Mode
eine sehr komplexe Angelegenheit.
Nähere Details würden den Rahmen dieses
Kurses sprengen.
Beschränkt man sich darauf, Datenblöcke
zwischen XMS und "normalem" Speicher zu
kopieren, kann man eine Funktion des
BIOS-Interrupts 15H benutzen. Sie ist
allerdings ziemlich kompliziert aufzu-
rufen. Außerdem ist der Zugriff auf
solcherart ins XMS ausgelagerte Daten
natürlich ziemlich langsam, da sie
nicht einfach eingeblendet, sondern
physikalisch kopiert werden müssen.
Ein weiterer Nachteil zeigt sich bei
Rechnern mit 80286-Prozessor:
Bei dieser CPU gibt es keinen Befehl,
der vom Protected-Mode in den REAL-Mode
zurückführt.
Da die BIOS-Funktion aber in den
Protected-Mode schalten muß, um die
Daten zum oder vom Extended-Memory
kopieren zu können, muß sie sich zur
Rückkehr in den REAL-Modus eines Tricks
bedienen: Mit Hilfe des Tastatur-Con-
trollers wird ein Reset der CPU aus-
gelöst. Diese Aktion dauert aber sehr
lange, sodaß die Kopierfunktion des INT
15H bei 80286-CPUs sehr langsam ist.
80386 und 80486 können per Software
wieder in den REAL-Modus geschaltet
werden, sodaß dieser Nachteil dort
wegfällt.
[ The QBasic-MonsterFAQ --- Start Page: www.antonis.de/faq ]