2 - Protected Mode [ID:25727]
50 von 385 angezeigt

Mein, mein liebe Leute, willkommen zum nächsten Video zur Vollesungsreihe Betriebssysteme.

Nachdem wir uns am letzten Video angeguckt haben, wie dann so ein Intel Prozessor so grob

aufgebaut ist, schauen wir uns in diesem Video den sogenannten Protected Mode an.

Das ist so der Modus, in dem heutzutage die Intel Prozessoren benutzt werden.

Also in Protected Mode, da geht es im Wesentlichen darum, Segmente zu definieren,

die MMU zu nutzen und die sogenannten Ringe, also das ist so ein Schutzmechanismus,

erkläre ich euch. Fangen wir mit den Segmenten an. Ihr kennt das, typischerweise besteht ein

Programm aus drei Segmenten. Code Segment, da steht halt der Programmtext drin. Daten,

da gehört gegebenenfalls auch der Heap dazu, die globalen Variablen und das Dexsegment.

Jedes Segment kennt ihr auch, bestehen letztendlich, alle Segmente bestehen

letztendlich aus Adresse und Länge, sprich wo im Speicher liegen sie und wie lang sind sie.

Aus Sicht des Programms, typischerweise uninteressant diese Info. Die Adresse

kenne ich als Programm nicht. Die CPU leitet mich schon in mein Segment um,

an die entsprechende Adresse, das passt. Einziger was ich beachten muss, ich darf nicht über das

Ende des Segments hinauszugreifen. Wenn ich das nicht tue, merke ich auch nicht, dass da eine

Länge definiert ist. Gut, letztes Video haben wir schon angeguckt, wie macht Intel das? Ja,

Intel definiert eine effektive Adresse, die stammt letztendlich aus der Berechnung beim Berechnen

der Adressierungsart. Also da steht dann irgendwie drin RE Zugriff, da haben wir ein Basisregister,

Indexregister und so weiter. Ihr erinnert euch, daraus ergibt sich die effektive Adresse und

bevor jetzt, bevor die CPU wirklich auf den Speicher zugreift, addiert sie jeweils noch vom

Segment die Startadresse dazu. Das ist die lineare Adresse und das ist die Adresse mit der ihr entweder

direkt zugreift auf den Speicher, physikalische Adresse, oder wenn die MMU eingeschaltet ist,

dann ist die lineare Adresse gleich der virtuellen Adresse, die dann noch umgerechnet wird.

Ja, wir haben schon beim letzten Video gesehen, dass manchmal auch Segmente sich überlappen können.

Wir hatten ja bei den verschiedenen Programmiermodellen, Speichermodellen gesehen.

Manchmal bei dem Tiny Modell, da sind dann Code, Daten und Stack alle zusammen in einem Segment

oder anderes Modell war. Code ist separat und Daten und Stack sind zusammen in einem Modell,

in einem Segment. Das kann man typischerweise frei wählen. In der Linux Welt, in der Windows Welt

macht man es heutzutage so, dass die Segmentierung nahezu ausgeschaltet ist. Ja gut, sie ist nicht

ausgeschaltet, aber die Startadresse von allen Segmenten liegt bei Null und das Limit ist auf

unendlich gesetzt. Heißt, Code, Daten und Stack liegen zusammen in einem Segment jeweils.

Wie ist das dann schematisch zu sehen? Ja, wir haben die sechs Segmentregister. Code Segment,

Daten Segment, Extra Segment, Stack Segment und noch zwei, die man für sonstige Dinge

benutzen kann, die definieren ja letztendlich, ja was ist dann mein Limit, was ist dann meine

Startadresse. Aus der Adressierungsart heraus, ihr erinnert euch, Basisadresse, Indexregister und so

weiter. Daraus wird zusammengerechnet eine effektive Adresse und die Startadresse zusammen

addiert mit der effektiven Adresse, ergibt dann unsere lineare Adresse und auf die wird dann

wirklich schreibend, lesend zugegriffen. Wenn, ja ihr seht hier, wenn das Limit oberhalb liegt,

also von da bis da darf ich zugreifen, sprich die effektive Adresse muss zwischen Null und diesem

Limit liegen. Was man heutzutage statt der Segmentierung lieber macht, ist das Seitenbasierte

Paging. Die 386 Aufwärtsprozessoren haben so eine Seitenbasierte MMU eingebaut, manchmal auch als

Paging Unit bezeichnet. Die kann man einschalten, man kann sie auch ausschalten. Dafür gibt es ein

extra Bit in einem Kontrollregister, heißt, ja früher die ersten Prozessoren von Intel hatten

halt keine MMU, dementsprechend wenn man kompatibel sein will, muss man die MMU ausschalten können,

kann man, wenn man hier eine Null reinschreibt. Und beim Booten nach dem Reset steht da auch eine Null

drin, heißt die CPU läuft mit ausgeschaltetem Paging los. MS-DOS damals kannte kein Paging,

also konnte MS-DOS dann booten. Linux oder Windows oder so, das bootet dann los und wird so ziemlich

am Anfang irgendwann hier eine 1 reinschreiben, um die MMU anzuschalten. Die anderen Register hier,

die anderen Bits in dem Register sind auch dazu gedacht, Dinge ein- und auszuschalten, also

typischerweise Extensions ein- und auszuschalten. CRT1 hatte ich schon mal gesagt, das ist zwar

Teil einer Videoserie :
Teil eines Kapitels:
IA-32 – Das Programmiermodell der Intel-Architektur

Zugänglich über

Offener Zugang

Dauer

00:48:01 Min

Aufnahmedatum

2020-11-27

Hochgeladen am

2020-12-04 17:28:55

Sprache

de-DE

7. Kapitel der Vorlesung Betriebssysteme.

Folien zum Video.

Tags

betriebssysteme operating systems
Einbetten
Wordpress FAU Plugin
iFrame
Teilen