Dockers DEV Site
5 Microsoft Windows und Protected Mode
Einleitung
Inhalt dieses Kapitels soll es sein, Einblicke in die Speicherverwaltung
der Microsoft Benutzeroberflächen (Betriebssysteme) Windows
3.x und Windows 95 zu geben. Dabei soll vor allem die Frage behandelt
werden, wie die bereitgestellten Möglichkeiten des Protected
Mode unter Windows genutzt werden. Das Kapitel soll nicht (!)
als Einleitung in die Windows-Anwendungs-Programmierung oder als
Darstellung aller verfügbaren WIN-API-Funktionen verstanden
werden.
5.1 Windows 3.x und Protected Mode ?
Verschiedene Betriebsmodi
Windows 3.x kennt 3 verschiedene Betriebsmodi. Dabei kommen in
zwei der drei Modi ein Teil der Möglichkeiten des Protected
Mode zum Einsatz. Die drei Betriebsmodi sind dabei:
- Auf einem System mit 8086-Prozessor (XT) läuft Windows
im Realmode, dabei werden maximal 1 MB des Speichers genutzt.
Windows verhält sich in diesem Fall wie ein "gewöhnliches"
Anwendungsprogramm und wird in den konventionellen Speicher geladen.
Unter diesem Modus kann Windows EMS-Speicher in Form einer Erweiterungskarte
verwenden.
Interessant an diesem Modus ist das Verfahren, mit dem die Windows
Entwickler ein Paging-ähnliches, auf (Realmode-) Speichersegmenten
basierendes Speicherverwaltungssystem implementiert haben. Speichersegmente
können unter Windows auf die Festplatte ausgelagert und im
Speicher umhergeschoben werden, selbst wenn das Programm mit festen
FAR-Pointern arbeitet (mit einigen Ausnahmen!). Grundlage dafür
ist eine komplizierte Heap-Verwaltung, die sogar Attribute einzelner
(Realmode-) Segmente beachtet. Da die Hardware (Prozessor) auf
eine solche Verwaltung nicht ausgelegt ist, müssen alle
Manipulationen von einer Software (Windows-Speicherverwaltung)
übernommen werden.
- Im "Standardmodus" verwendet Windows die
80286er-Variante des Protected Mode. Adressen werden
in diesem Windows-Modus nicht mehr wie im Realmodus gebildet (Segment:Offset),
sondern werden immer über den zusätzlichen Schritt der
Deskriptorauswertung durchgeführt. Im Gegensatz zum Protected
Mode des 80386 sind 80286-Segmente jedoch auf eine maximale Größe
von 64KB beschränkt. Der Vorteil besteht darin, daß
einerseits der gesamte physisch vorhandene Speicher (80286, maximal
16 MB) direkt ansprechbar ist und andererseits ein Umherschieben
von Segmenten im Speicher (wie es im Realmode-Windows-Modus verwendet
wird) durch "einfaches" Ändern von Deskriptoren
durchgeführt wird.
- Im "386-Modus", der Verwendung auf 80386
Prozessoren findet, wird zusätzlich die virtuelle Speicherverwaltung
(Paging) sowie der V86-Modus aktiviert. Letzterer dient jedoch
nur dazu, mehrere DOS-Programme in unterschiedlichen DOS-Fenstern
"quasi"-parallel auszuführen. Die Verwendung des
Paging-Mechanismus bringt eine erhebliche Erleichterung für
die Speicherverwaltung mit sich, da die entsprechenden Prüfungen
(Seiten ausgelagert oder physisch vorhanden) vom Prozessor übernommen
werden.
80386 - Protected Mode
Außer dem Paging und dem V86-Modus findet unter Windows 3.x keine
der erweiterten Möglichkeiten der 80386-Prozessoren Verwendung.
So können 32-Bit breite Register (EAX, EBX, usw.) genauso wenig
genutzt werden wie Segmente, die größer als 64 KB sind.
Multitasking
Statt des hardwaremäßigen Multitasking wird ein auf
Nachrichten basierendes "kooperatives"-Multitasking eingesetzt.
Das heißt, eine Windows-Anwendung muß "von sich
aus" die ihr zugewiesene "Prozessorzeit" abgeben.
Eine unsauber programmierte oder fehlerhafte Windows-Anwendung
kann so zur Blockierung des gesamten Systems führen.
Last change 27/11/2022 by Docker Rocker.
This page uses no cookies, no tracking - just HTML.
Author: "Docker Rocker" ~ 2022 · [Public Git]