Speicherver-
waltung unter
MS-DOS 5.0

E-Books


Die Problematik der Speicherverwaltung



Als die Prozessoren 8086 und 8088 vor ungefähr 13 Jahren entwickelt wurden, konnte kaum jemand die rasante Entwicklung der Hardware in den nächsten Jahren absehen. Diese beiden Prozessoren sind 16-Bit-CPUs, können also mit ihren Registern einen Wertbereich von 0 bis 65535 bearbeiten. Da die Speicheradressen in den Registern der CPU gebildet werden, wäre mit einem Register eine Adressierung von 64 KB Hauptspeicher möglich.
Durch die Unterteilung des Hauptspeichers in Segmente (maximale Größe 64 KB) und die Verwendung von zwei Registern für die Adressierung des Hauptspeichers (logische Adresse bestehend aus Segment und Offset) kann ein maximaler Adressierungsbereich von 1 MB bearbeitet werden, in dem alle Speicherbereiche, die in einem PC von der CPU angesprochen werden sollen, untergebracht werden müssen.
Aus einer logischen Adresse erzeugt die Adressierungseinheit der CPU eine absoluter Adresse (bestehend aus 5 Hexadezimalstellen), die einen Speicherplatz eindeutig identifiziert. In dem folgendem Bild sehen Sie die höchste logische Adresse, die mit dieser Technik angesprochen werden kann (F000:FFFF oder absolut FFFFFH).
Logische Adresse:
Segment Offset
F000 FFFF
F000H*10H = F0000
+FFFF
Absolute Adresse: FFFFF
Die absolute Adresse muß von der Adressierungseinheit zur Speicherelektronik übertragen werden, wobei für jedes Bit eine Adreßleitung vorhanden sein muß. 5 Hexadezimalstellen werden durch 20 Bits dargestellt, d.h. daß auch 20 Adreßleitungen benötigt werden. Aus dieser Tatsache ergibt sich für die Prozessoren 8086 und 8088 eine hardwaremäßige Beschränkung auf einen maximalen Adressierungsbereich von 1 MB.
Ab dem 80286 stehen zwischen dem Prozessor und dem Speicher 24 Adreßleitungen zur Verfügung, wodurch rein von der Hardware gesehen die höchste Adresse FFFFFFH ist - das entspricht 16 MB. In den folgenden Ausführungen werden wir Ihnen zeigen, daß dieser Umstand allein kaum Abhilfe für die Speicherprobleme von MS-DOS gebracht hat.
Die Aufteilung des 1-MB-Adreßbereichs schien zur Zeit der Entwicklung der Prozessoren sehr großzügig:
*
Der Arbeitsspeicher für das Betriebssystem und Anwenderprogramme wurde mit maximal 640 KB festgelegt. Die ersten PCs wurden mit 64 KB Hauptspeicher ausgeliefert, ausreichend für MS-DOS 1.0 (etwa 12 KB) und kleine Anwenderprogramme. Die Entwicklung der letzten Jahre führte dazu, daß immer mehr Arbeitsspeicher installiert werden konnte. Trotzdem wurden auch die Platzprobleme im Hauptspeicher größer. Folgende Faktoren waren dafür hauptsächlich auschlaggebend:
- Das Betriebssystem benötigte mit jeder Version mehr Speicher.
- Für neue Geräte müssen Zusatztreiber installiert werden, die auch im Arbeitsspeicher abgelegt werden.
- Immer mehr speicherresidente Programme wurden als Erweiterungen zum Betriebssystem entwickelt. Sie liegen im Arbeitsspeicher im Anschluß an MS-DOS.
- Die Größe von Anwenderprogrammen wuchs proportional mit der wachsenden Verfügbarkeit relativ preisgünstiger Speicherchips.
*
128 KB wurden als Adreßbereich für RAM auf Zusatzkarten reserviert. Als dieser Bereich festgelegt wurde, gab es einen Adapter, der über ein eigenes RAM verfügte - der Videoadapter. Im Textmodus benötigt ein Videoadapter 4 KB (eine Bildschirmseite), im Grafikmodus reichten zu dieser Zeit 16 KB aus. Verständlich, daß 128 KB für die nächsten Jahre ausreichend schienen.
Modernde Videokarten arbeiten mit einem Bildschirmspeicher von 512 KB und mehr. Um diesen Speicher zu bearbeiten, werden Teile davon in den 128-KB-Bereich übertragen und nach Abschluß der Bearbeitung durch einen anderen Teil ausgetauscht. Daraus folgt, daß dieser Bereich in den meisten Fällen voll ausgelastet ist.
*
Für ROM auf Zusatzkarten wurden 192 KB reserviert. Von Anfang an war den Entwicklern klar, daß das eingebaute ROM-BIOS des PCs nicht alle zukünftigen neuen Geräte steuern können wird. Daher wurde ein Adreßbereich von 192 KB für ROM reserviert, um Zusatzkarten die Möglichkeit zu geben, die von Ihnen benötigten Steuerroutinen in einem eigenen ROM zu verwalten.
Der erste Adapter, der in diesem Bereich angesiedelt wurde, war ein Festplattenkonroller, da das BIOS über keine Steuerroutinen für eine Festplatte verfügte. In der letzten Zeit wurden immer mehr dieser Zusatzkarten entwickelt (z.Bsp. EGA, VGA, SCSI, Netzwerkkarten usw.), so daß es auch in dem 192-KB-Bereich ziemlich eng wurde.
*
Die letzten 64 KB des Adressierungsbereichs sind durch das ROM-BIOS belegt, in dem sich die Steuerungsroutinen für die Standardgeräte von MS-DOS befinden. Da diese Routinen immer umfangreicher wurden, kann dieser Bereich bei einigen PCs auf 128 KB erweitert sein.
Das folgende Bild soll Ihnen während der folgenden Ausführungen die Orientierung erleichtern. Die einzelnen Bereiche werden im folgenden Kapitel im Detail behandelt.
(c) Jürgen Richter