RW-Systemarchitektur Kap. 7
Wiederholung
Betriebssystem bietet eine Abstraktion der Hardware an:
• Dateien sind eine Abstraktion von persistentem Speicher– geräteunabhängig– organisiert in baumartigen Verzeichnisstrukturen– zu jeder Datei gehört ein Pfad in diesem Baum
• Adressraum eines Prozesses ist eine Abstraktion des Arbeitsspeichers des Rechners– virtueller Speicher abstrahiert von der Größe des vorhandenen
Arbeitsspeichers– virtuelle Adressen abstrahieren von physischen Adressen
• Betriebssystem verwaltet Ein-/Ausgabegeräte– Gerätetreiber sind geräteabhängig, realisieren Abstraktion des Geräts
RW-Systemarchitektur Kap. 7
Systemfunktionen (System Calls)
• Schnittstelle zum Betriebssystem• realisieren Betriebssystem-Dienste, z.B. Ein-/Ausgabe,
Dateioperationen, Prozesskreieren, -löschen, …• schalten zwischen Benutzer-Modus und System-Modus um,• manche blockieren den aufrufenden Prozess.
Benutzer-programm
Betriebs-system
AufrufSystemfunktion
blockiert
AusführungSystemfunktion
WiederaufnahmeBenutzerprogramm Benutzer-
Modus
System-Modus
RW-Systemarchitektur Kap. 7
Systemfunktionen (System Calls)
• Systemfunktionen organisiert in Programmbibliothek• Aufrufe sehen wie Prozeduraufrufe aus
1. Aufrufer blockiert,2. neuer Eintrag für Systemfunktion (mit Rückkehradresse) auf dem
Laufzeitkeller angelegt, 3. dieser Eintrag bei Rückkehr wieder aufgegeben,4. Ausführung Benutzerprogramm an der Rückkehradresse fortgesetzt.
• Unterschiede:– Wechsel zwischen Benutzer- und System-Modus– Aufruf implementiert durch trap-Befehl statt durch üblichen
Unterprogramm-Aufruf-Befehl – trap-Befehl schaltet um in System-Modus, – übergibt die Nummer der Systemfunktion
RW-Systemarchitektur Kap. 7
Schritte für die Ausführung eines Systemdienstes
11 Schritte für die Ausführung von read (fd, buffer, nbytes)
RW-Systemarchitektur Kap. 7
Systemdienste
Prozesse besitzen 3 Segmente: Programmtext, Daten, Keller
RW-Systemarchitektur Kap. 7
Klassen von Systemfunktionen (POSIX)
• Prozessverwaltung:– pid = fork() : lege Kopie des aktuellen Prozesses an, fährt unabhängig fort;
gibt dem Vater-Prozess den Prozess-Identifier (pid) des neuen Prozesses und diesem 0 zurück
– waitpid((pid, … , …) : Vater-Prozess wartet auf Terminierung der Kind-Prozesse
– s = execve(name, argv, environp) : führe Kommando mir Name name aus
• Dateiverwaltung:– fd = openfile(file, modus, …) : öffne Datei für Lesen und/oder Schreiben
– s = close (fd) : schließe eine geöffnete Datei
– n = read(fd, buffer, nbytes) : lese Daten aus Datei in Puffer
– n = write(fd, buffer, nbytes) : schreibe Daten aus Puffer in Datei
– …
RW-Systemarchitektur Kap. 7
Beispiel – Kommando-Interpreter (Shell)
• Shell wartet auf Eingabe von Benutzer-Kommandos
• kreiert einen neuen Prozess für die Ausführung des Kommandos
#define TRUE = 1
while (TRUE) { /* Endlosschleife */ type_prompt(); /* gebe Prompt auf Bildschirm aus */ read_command(comm, params) /* lese Eingabe vom Terminal */ if (fork()!=0){ /* kreiere Kind-Prozess */ /* Vater-Prozess */ waitpid(…) /* warte auf Terminierung Kind-Prozess */ } else { /* Kind-Prozess */ execve(comm, params, 0); /* führe Kommando aus */ }}
RW-Systemarchitektur Kap. 7
(Einige) Betriebssystem-Strukturen
• Monolithische Struktur – das ganze Betriebssystem ist ein ausführbares Maschinenprogramm
• Geschichtetes System
• Mikrokerne
• Client-Server
• Virtuelle Maschinen
RW-Systemarchitektur Kap. 7
Geschichtetes System (THE System, Dijkstra 1968)
Hardware
0 Prozessor-Verwaltung und Multiprogramming
1 Speicher- und Trommel-Verwaltung
2 Kommunikation Operateur- Prozess
3 Ein-/Ausgabe-Verwaltung
4 Benutzerprogramme
5 Operateur
ab hier: Virtualisierung des Prozessors
ab hier: Lage-unabh.Speicheradressierung
ab hier: Virtualisierung derOperateur-Konsole
ab hier: Abstraktion derEin-/Ausgabegeräte
Stapelverarbeitungs-Betriebssystem
RW-Systemarchitektur Kap. 7
Mikrokerne
• Prinzip: Teile Betriebssystem in eine Menge von Modulen auf, von denen nur einer, der Mikrokern, im System-Modus laufen muss.
• Halte Mikrokern so klein wie möglich.
• Grund: – Fehler im Kern sind gefährlicher als Fehler in Benutzerprogrammen.
Sie können das System zum Absturz bringen.Fehler in Benutzerprogramm i.A. nicht.
– Größerer Kern mehr Fehler.
RW-Systemarchitektur Kap. 7
Virtuelle MaschinenVirtual Machine Monitor organisiert den Mehrprogrammbetrieb mit mehreren
identischen Kopien der Hardware, aber ohne Erweiterungen wie Dateien etc.
Auf jeder Kopie kann ein (evtl. anderes) Betriebssystem laufen.
Problem: Das Abfangen von privilegierten Befehlen –
1. Abfangen in CMS-virtueller Maschine (trap in CMS),
2. CMS führt Ein-/Ausgabe-Operationen aus (trap in VM/370),
3. Ausführen auf der realen Hardware.
RW-Systemarchitektur Kap. 7
Client-Server
Client-Server in verteiltem BS
Gleicher Aufruf – verschiedene Implementierung