Ich möchte noch kurz etwas zu den Prinzipien sagen, nach denen die Maschinenprogramme grundsätzlich
grob organisiert sind. Da gehen wir kurz auf Funktion, bestimmte Funktionen nochmal ein,
welche Positionen, Systemfunktionen hier nochmal einnehmen und dann letztendlich auch Komponenten
werden wir betrachten, die denn letztendlich diese Maschinenprogramme konstituieren. Nun,
was wir gesehen haben vorher, kann sich hier in dieser Aufruf-Hierarchie wiederfinden. Wir
haben also ein Anwendungsprogramm gehabt, Main, unser Echo-Programm. In diesem Echo-Programm wurden
Read&Write als Systemaufrufe aktiviert. Intern in den Stümpfen haben wir gesehen von Read&Write,
dass dann eine Fehlerbehandlung noch ansteht, nachdem wir aus dem Systemaufruf zurückgekehrt
sind. Der Systemaufruf selbst, wenn er abgesetzt wird im Rahmen eines Trepps durch den Software-
Interrupt-Befehl, den Unterbrechungsbefehl, würde hier bei der Behandlungsroutine starten. Dort
wird dekodiert, die Parameter werden übernommen und es wird dann letztendlich die Read&Write-Funktion
als Systemfunktion, je nach dem was gewünscht ist, dann aktiviert, als Unterprogramm dann letztendlich
aktiviert. Hier innen drin haben wir einen normalen Prozeduraufruf, hier oben haben wir auch ganz normale
Prozeduraufrufe, aber insgesamt gesehen von hier oben bis nach hier unten runter haben wir eine
domänenübergreifende Aktion, die hier stattfindet. Die obere Domäne ist die Domäne der Ebene 3. Hier
sind wir im Anwendungsmodus, also die CPU, der Prozessor, läuft im Anwendungsmodus. Er ist
unprivilegiert, das heißt erlaubt eigentlich nur die direkte Ausführung nicht privilegierter
Maschinenbefehle. Dieser Modus, dieses Programm oder die Software, die hier oben existiert, ist
räumlich isoliert, total isoliert, komplett abgeschottet durch Adressraumschutz, durch eine
Adressraumisolation, Speicherschutz. Man kommt aus diesem Speicherbereich, wo diese Programme
liegen, nicht ohne weiteres raus. Logisch ist auch diese Domäne eine transiente Domäne, zumindest
sind die Programme, die in dieser Domäne residieren, sind transient, denn so ein Anwendungsprogramm wird
geladen, der läuft ab und am Ende verschwindet es auch wieder aus dem System. Es wird eben aus dem
Speicher, denn sozusagen wieder herausgenommen im Endeffekt. Die untere Domäne, die wir haben,
nämlich die Betriebssystem Domäne, läuft im Systemmodus. Die ist privilegiert, zumindest
graduell ein Stück weit. Also die aller allermeisten Funktionen sind wirklich privilegiert,
aber es ist nicht so, dass man da zumindest bei Linux etwa oder bei den anderen meisten
Betriebssystemen da dann halt noch eine feine Unterscheidung trifft. Man sagt, dass der gesamte
Betriebssystem gut privilegiert ist und demzufolge im privilegierten Arbeitsmodus des Prozessors,
des realen Prozessors, abläuft. Er ist räumlich isoliert, zumindest partiell. Das hängt von dem
Adressraummodell ab, das das Betriebssystem implementiert. Dazu werden wir im späteren
Verlauf der Vorlesung mehr zu hören, aber generell ist es so, dass das Betriebssystem eben zumindest
isoliert ist vom Maschinenprogramm. Das heißt, ein Maschinenprogramm ist nicht in der Lage,
normalerweise jedenfalls nicht in der Lage, Betriebssystem Code direkt zu aktivieren,
geschweige denn die Speicherbereiche, die in dem Betriebssystem zugeordnet sind,
dennoch nach Form zu manipulieren. Aus Sicht des Maschinenprogramms der oberen Domäne ist
die untere Domäne resident, logisch. Aber ich sagte ja in der Einleitung eben auch,
dass Betriebssysteme urgeladen werden. Also die haben schon gewissen transienten Charakter,
aber normalerweise ist es so, man lädt einmal, man fährt den Rechner hoch, da beim Hochfahren des
Rechners wird das Betriebssystem urgeladen und dann liegt es im Speicher drin, bleibt da eben auch
resident präsent und ist dann immer präsent während der Ausführung von den Maschinenprogrammen.
Muss ja so sein, denn jedes Maschinenprogramm wird wenigstens einen Systemaufruf absetzen und sei es
nur zur Ausgabe von irgendwelchen Informationen, die wir da haben. Es findet eine Interaktion
zwischen diesen beiden Domänen statt. Wir haben einen Domänenwechsel von oben nach unten im Rahmen
des Systemaufrufs, am Ende des Systemaufrufs haben wir einen Domänenwechsel zurück von unten nach
oben. Aber sollte bei der Ausführung von einem Maschinenbefehl der Teil eines Maschinenprogramms
es irgendeine Ausnahmesituation auftreten, findet die Ausnahmebehandlung in der ersten
Stufe immer im Betriebssystem statt. Denn diese Ausnahmesituation würde, wenn sie denn von der
CPU erkannt werden, wird in einen Trepp zum Beispiel münden, wo der Trepphändler die
Behandlungsroutine für diesen Trepp, für diese, wie wir später auch sagen werden, Synchronoprogramm
Presenters
Zugänglich über
Offener Zugang
Dauer
00:26:52 Min
Aufnahmedatum
2020-05-09
Hochgeladen am
2020-05-10 02:06:05
Sprache
de-DE