2 Ü
BERSICHT2.1 Betriebssystemsichten
Nutzer eines Programmiersystems:
* Kommandointerpreter Steuersprache
* Dienstprogramme - Editor
- Compiler Programmiersprache
- Binder - Testhilfe
* Objekte - Dateien
- Objekte der Nutzerprogramme
* E/A-Geräte Programmein-/ausgaben
Mit Ausnahme der Kommandoschnittstelle bleibt das Betriebssystem verdeckt.
Der Nutzer arbeitet zum Beispiel mit der PASCAL-Maschine, die durch Compiler, Betriebssystem und Hardware gebildet wird.
Die Programmerstellung erfolgt mittels Text-Maschine: Editor, Betriebssystem, Hardware.
- Operator, Systemverwalter: (bei Konfiguration und Administration)
* Kommandointerpreter
* Konfigurationsdienstprogramme
- Betriebssystementwickler / Entwickler systemnaher Programme
* Kommandointerpreter
* Dienstprogramme
* Betriebssystemkern:
- angebotene Dienste - Komponenten
- Architektur - Datenstrukturen - Algorithmen
* logische Betriebsmittel
* Hardware-Betriebsmittel
Qualitätsaspekte:
- Sicherheit - Zuverlässigkeit - Leistungsfähigkeit - Funktionalität
- Unterstützung spezieller Einsatzgebiete - Benutzerfreundlichkeit
- Robustheit - Anpaßbarkeit - Erweiterbarkeit
2.2 Aufgaben, Dienste und Komponenten von Betriebssystemen
2.2.1 Zentralspeicherverwaltung
physikalische Adressen
Speicherbereich
logische Adressen
0 1 0
1 2
0 1 2
- Belegung, Freigabe und Zuordnung von verschiedenen Speicherbereichen an Prozesse
- Verwaltung des Zentralspeichers - gegenseitiger Zugriffsschutz - virtuelle Adreßräume
2.2.2 Prozeß- und Prozessorverwaltung
Prozeß Programm Daten
übrige Betriebsmittel dynamischer Zustand
Speicherbereich Speicherbereich / Register z. B. Dateien, Geräte Prozessorzuordnung
bereit
rechnend wartend
fortsetzen zuordnen
blockieren
Entzug
Prozessorzuteilung
t P3
P2 P1
Prozessor 2 Prozessor 1
- logische Prozesse (Erzeugung, Löschung) - Prozessorzuordnung
- gegenseitige Beeinflussung von Prozessen, Synchronisation
- Ablaufsteuerung, betriebsmittelabhängige Planung und Kontrolle des Gesamtablaufs
2.2.3 Programmverwaltung
Programmdatei
Auftragsdefinition
Sitzungsumgebung
Programme Daten Betriebsmittel dynamischer Zustand Ablaufparameter Nutzerverweis
sonstige Betriebsmittel
Code
Daten
Prozeß Speicherbereiche
- Definition von Programmen
- Zuordnung von Programmen zu Prozessen - Abbildung des Programmablaufs auf Prozesse
- Besonderheiten (mehrfach-verwendbarer Code, dynamisches Binden)
2.2.4 Ein-/Ausgabe-Steuerung
Rechnersystem Gerät
Zentral Speicher
Pro- zessoren
E/A-
System
SteuerungLaufwerke
d)a) b) e)
Datenfluss:
a) Ein/Ausgabeunterbrechungen b) Ein/Ausgabebefehle
c) Interprozessorsignale d) Daten
e) Kanalprotokoll:
Kanalbefehle, Gerätedaten (Adresse, Status), Transferdaten
Aufgaben:
- Geräte-/Konfigurationsverwaltung
* Verkabelung
* Parameter
- physikalische Ein-/Ausgabe
* Gerätesteuerung
* Datentransfer - logische Geräte
* e.g. Dateien
* Abbildungs- und Zugriffsparameter - logische Ein-/Ausgabe
* Dateiorganisation
* Dateizugriffe - Betriebsmittelverwaltung
* Zuordnung zu Prozessen
2.2.5 Externe Datenverwaltung
Physikalische Speichermedien
* Magnetplatte (Schreib-/Lesekopf, Sektor, Spur)
* Magnetband (Block, Spur, Sprosse) Dateien
*logischer Adreßraum der Datei
Satz: logische Zugriffseinheit für Ein/Ausgabe Logische Zugriffsstruktur: Satz-Schlüsselfeld
Feld: vom Programm auswertbareer Teil eines Satzes
*Physikalischer Adreßraum der Datei
Block: physikalische Zugriffseinheit für Ein/Ausgabe Dateiorganisation
* Darstellung: sequentiell, indexsequentiell,direkt ...
* Zugriffsmethoden: sequentiell, indexsequentiell,physikalisch ..
* Verwaltung:
Statisch: Dateikataloge, Speicherplatz, ...
Dynamisch: Sperrenverwaltung, ...
2.2.6 Betriebsmittelverwaltung
- Betriebsmittel
* physikalisch - logisch
* aktiv - passiv
* exklusiv – teilbar
- Anforderung, Belegung, Freigabe - Fremdzuweisung, Entzug
- Wettbewerb um Betriebsmittel
* Auswahl- und Zuteilungsstrategien
* Verklemmungen (Verhinderung, Entdeckung, Auflösung) - Zugriffsschutz
Kommando- Editor interpreter Compiler Linker * E/A-Steuerung, logische E/A
* Speicherverwaltung * Prozeßverwaltung
Speicher Prozessor E/A
höhere Programmiersprache Dienstprogramme Betriebssystemaufrufe -> Maschinensprache Betriebssystem Maschinensprache Hardware-Maschine
Maschine:
Mechanismus zur Interpretation von in Maschinensprache formulierten Programmen.
Virtuelle Maschine:
Durch interpretierende oder abbildende Software auf Basis einer gegebenen Maschine definiert.
Hierarchie virtueller Maschinen:
Hardware und Software-Schichten definieren Maschinen mit steigendem Sprachniveau
2.4 Schnittstellen
Hardware Betriebssystem
Programm Kommando-
interpreter
Kommandos, Meldungen
Betriebssystem- aufrufe
- Programmschnittstelle
* Betriebssystemoperationen
* Aufrufmechanismus
- Kommandoschnittstelle
* Steuersprache
* Kommandoprozeduren
Auftragsannahme Prozeß 1
Lagerverwaltung Prozeß 3
Auftragsabwicklung Prozeß 2
Zentrale
Datenverwaltung
- Interprozeßkommunikations-Mechanismen - Interaktionsmuster
2.6 Verteilte Betriebssysteme
Rechner 1 Rechner 2
Rechner 3 Rechner 4 öffentliches Datennetz lokales Netz
- Rechnernetze
- Kommunikationsdienste und Protokolle - homogene verteilte Betriebssysteme - Client-Server Modell
2.6 Fallbeispiel: Einfaches Betriebssystem
2.6.1 Rechnerkonfiguration
Prozessor
Betriebssystem Benutzerprogramm
Speicher
Eingabe Ausgabe
Prozessor: Anzahl schneller Register, Befehlszähler PC, Befehlsregister PR Befehlszyklus: REPEAT
PR := S[PC];
PC := PC + 1;
ausführen(PR);
UNTIL Prozessor wird ausgeschaltet Speicher: Feld S[0..n]
Geräte: besitzen Befehlsregister, die durch Prozessor mit Befehlen versorgt werden.
Anzeigen: AKTIV (startet Befehlsausführung) BEREIT (nach Beendigung des Befehls)
STOP (durch Start/Stop-Taste oder Magazin leer) Ablaufsteuerung:
REPEAT
lies Eingabe
übersetze in Maschinensprache führe aus
drucke Ergebnisse
UNTIL Prozessor wird abgeschaltet
NR 0 1 2 3
Startta ste
0 0 1 1
Befehl 0 1 0 1
Zustan d STOP STOP BEREIT
AKTIV
0/1
2 E/A-Starten 3
E/A-Beenden STOP
BEREIT AKTIV
procedure drucke Ergebnisse begin
nächste Zeile := Anfang Ausgabebereich repeat
warte bis drucker BEREIT starte Drucker(nächste Zeile) Zeilenzähler := Zeilenzähler - 1 neuer Bereich(nächste Zeile) until Zeilenzähler = 0
end
Übung:
Erstellen Sie für die Prozedur "lies Eingabe" eine Zustandstabelle, ein Zustandsdiagramm und das zugehörige Programm.
Zustandstabelle:
NR 0 1 2 3 4 5 6 7
Starttas te
0 0 0 0 1 1 1 1
Magazi n 0 0 1 1 0 0 1 1
Befehl 0 1 0 1 0 1 0 1
Zustan d STOP STOP STOP STOP STOP STOP BEREIT
AKTIV Zustandsdiagramm:
0/1/2 3/4/5
6 7
E/A Starten
E/A beenden AKTIV
BEREIT
STOP
Start Stop/
Kartenende Stop
Start
Programm:
prozedure liesEingabe begin
nächste Karte := Anfang Eingabe Kartenzähler := 0
warte bis Leser BEREIT repeat
starte leser(nächste Karte) neuer Bereich(nächste Karte) Kartenzähler := Kartenzähler + 1 warte solange Leser aktiv
until Leser STOP end
Problem:
Durch drücken der STOP-Taste wird die Routine verlassen und kann nicht fortgesetzt werden.
=> Einführung einer speziellen Ende-Karte
=> until Endekarte ( übliches Zeichen: /* ) Problem:
Kartensalat
=> neuer Zustand "FEHLER" muß eingeführt werden.
Das Leistungsverhalten der bisher entwickelten Routinen ist schlecht.
Beispiel:
kleine Maschine: Wort = 8 Bit Zykluszeit = 10 µs mittlere Maschine: Wort = 32 Bit Zykluszeit = 1 µs Leser: 20 Karten/s 80 Zeichen/Karte
Drucker: 20 Zeilen/s 120 Zeichen/Karte
Für den Transfer eines Wortes sind 3 Speicherzugriffe erforderlich (holen und speichern, Transferzähler erniedrigen, testen).
Leser: pro Sekunde 20*80*3=4.800 bzw. 4.800 / 4
Speicherzugriffe
Drucker: pro Sekunde 20*120*3=7.200 bzw. 1.800 Speicherzugriffe
=> Speicherauslastung
- kleine Maschine: Lesen 4.800 * 10 µs = 4,8%
Drucken 7.200 * 10 µs = 7,2%
- große Maschine: Lesen 0,12%
Drucken 0,18%
Prozessorauslastung Drucken:
repeat Anzahl Befehle
warte bis Drucker bereit
starte Drucker(nächster Zähler) ca. 6
neuer Bereich(nächste Zeile) ca. 5
Zeilenzähler := Zeilenzähler - 1 ca. 2
until Zeilenzähler = 0 ca. 2
=> ca. 15 Befehle für Prozedur Drucken
Bei einer mittleren Befehlszeit von 3 µs ist der Prozessor für den Ausdruck einer Zeile 15*3=45µs aktiv. Der Ausdruck selbst dauert 50.000 µs.
Verbesserung des Leistungsverhaltens
Für die Bearbeitungszeit und Durchsatz von n Programmen gelten folgende Formeln:
Bearbeitungszeit t = e + v + a
mit Einlesezeit e = e1 + e2 + .. + en Verarbeitungszeit v = v1 + v2 + .. + vn Ausgabezeit a = a1 + a2 + .. + an Durchsatz d = n / t = n / (e+v+a)
Ansatz:
Überlappung von E/A-Phasen
=> Änderung des Rahmenprogramms und Erstelleung der Prozedur lies_und_drucke
=> Reduzierung der Bearbeitungszeit t Rahmenprogramm:
Zeilenzähler = 0 repeat
lies_und_drucke
if Kartenzähler > 0 then übersetzte
führe aus endif
until Prozessor abgeschaltet
Prozedur lies_und_drucke begin
nächste Karte := Anfang Eingabe nächste Zeile := Anfang Ausgabe Kartenzähler := 0
repeat
warte solange bis Leser und Drucker AKTIV if Leser BEREIT then
starte Leser (nächste Karte) neuer Bereich (nächste Karte) Kartenzähler := Kartenzähler + 1 endif
if Drucker BEREIT und Zeilenzähler > 0 starte Drucker(nächste Zeile) neuer Bereich(nächste Zeile) Zeilenzähler := Zeilenzähler - 1 endif
until Leser STOP und Zeilenzähler = 0 end
Problem:
Mehrere Programme können nicht gleichzeitig eingelegt werden.