Dockers DEV Site


Updates · Faq · Home 

Protected Mode

2.1 Einleitung

Die Möglichkeit, einen Intel Prozessor in zwei verschiedenen Modi betreiben zu können, wurde 1982 mit der Vorstellung des 80286 eingeführt. Dieser Prozessor befindet sich nach einem Reset standardmäßig im bekannten Realmode. Dabei verhält er sich wie ein schneller, zum 8086 kompatiblen Prozessor. Erst durch das Setzen eines Bits in einem bestimmten Register wird der neue Modus, der sogenannte Protected-Mode aktiviert.

Hinter "Protected-Mode" verbirgt sich dabei in erster Linie ein anderes logisches Prinzip, auf den Arbeitsspeicher zuzugreifen. Dieses neue Prinzip versetzt den Prozessor zusammen mit einem geeigneten Betriebssystem in die Lage, mehrere Anwendungen quasi-parallel ablaufen zu lassen (Multitasking) und sie gleichzeitig voneinander zu isolieren. So können beispielsweise Bereiche des Speichers gegen Zugriffe anderer, quasi-parallel ablaufender Programme geschützt werden (daher auch der Name: "Protected-Mode" to protect, englisch, schützen).

Einem Programm im Realmode ist es ohne (!) Einschränkungen gestattet, Teile des Betriebssystems (z.B. den residenten Teil des Kommandointerpreters COMMAND.COM) zu überschreiben und so das gesamte System zum "Absturz" zu bringen. Obwohl es unwahrscheinlich ist, daß ein solches Programm existiert, reicht in den meisten Fällen auch ein Programmfehler aus, um denselben Effekt zu erreichen (dazu gehört z.B. der Versuch, einen NIL-Zeiger zu dereferenzieren).

Ein Prozessor im Protected Mode würde in einem dieser Fälle über eine Exception (englisch, Ausnahme) die Kontrolle an ein entsprechendes Betriebssystem abgeben. Das Betriebssystem kann dann versuchen, den Fehler zu korrigieren, oder, falls er sich nicht korrigieren läßt, das entsprechende Programm einfach beenden. Dabei wird weder die Stabilität anderer Anwendungen, noch die des gesamten Systems beeinflußt.

Multitasking

Die gleichzeitige Ausführung mehrerer Programme (bzw. Programmteile oder Tasks) wird als Multitasking bezeichnet. Bei den im PC-Bereich verwendeten Systemen mit nur einem Prozessor handelt es sich dabei immer nur um eine Illusion. Denn eine wirklich parallele Verarbeitung ist nur auf entsprechenden Multiprozessor-Systemen möglich. Im PC-Bereich und unter allen anderen Systemen mit nur einem Prozessor muß die verfügbare Prozessorzeit auf mehrere Tasks verteilt werden.

Dabei lassen sich zwei unterschiedliche Verfahren unterscheiden:

Damit ein unterbrochener Task später überhaupt fortgesetzt werden kann, muß der aktuelle Zustand (beispielsweise der Inhalt der Prozessor-Register) festgehalten werden. Der Protected Mode der Intel Prozessoren unterstützt diese Art der Taskumschaltung bereits auf der Hardwarebene.

Damit Multitasking überhaupt sinnvoll angewendet werden kann, müssen sich auch mehrere Anwendungen (also Programme) gleichzeitig im Arbeitsspeicher befinden. Daraus folgt, daß sich alle laufenden Programme bzw. Tasks den Arbeitsspeicher untereinander aufteilen müssen. Damit sich diese Anwendungen nicht gegenseitig stören können, hat Intel mit der Vorstellung des 80286 ein Schutzkonzept eingeführt, das genau diese Trennung der einzelner Programme voneinander unterstützt.

Schutzkonzept / Privilegierung

Der verfügbare Arbeitspeicher wird nicht nur zwischen einzelnen Programmen aufgeteilt, sondern es wird auch nach den Privilegstufen der Programme unterschieden. Dabei kennt der Prozessor 4 Privilegstufen, die von 0 (höchste Stufe) bis 3 (niedrigste Stufe) definiert sind. Jede dieser Stufen besitzt genau definierte Zugriffsrechte. Unter Zugriffsrechten ist dabei die Möglichkeit zu verstehen, auf die Daten anderer Privilegstufen zugreifen zu können bzw. "kritische" Maschinensprache-Befehle auszuführen Dazu gehören beispielsweise alle Portbefehle zur Kommunikation mit den Peripheriegeräten und Befehle, die in die Speicheradressierung des Betriebssystems eingreifen.

Es ist grundsätzlich nicht gestattet, daß ein Programm Programmcode in einer anderen Privilegstufe ausführt! Dazu gehören vor allem Unterprogrammaufrufe.

Dieses Schutzkonzept läßt sich in der Form eines Ringsystems darstellen, wobei die Privilegierung der einzelnen Stufen nach außen abnimmt (Vgl. Abb. 2.1).

Ringmodell
Abb. 2.1: Ringmodell eines geschützten Systems

Ein Betriebssystem muß dabei nicht alle 4 Privilegstufen benutzen. Viele Systeme kommen bereits mit nur 2 Ebenen aus (Ring 0: für den Betriebssystemkern und Ring 3: für gestartete Anwendungen).

Index
weiter >>
<< zurück ||

Last change 27/11/2022 by Docker Rocker.
This page uses no cookies, no tracking - just HTML.
Author: "Docker Rocker" ~ 2022 · [Public Git]