1 Einordnung I Einführung in Betriebssysteme Ebene 6 Problemorientierte Sprache Ebene 5 Assemblersprache Ebene 4 Betriebssystem Ebene 3 ISA (Instruction Set Architecture) Ebene 2 Mikroarchitektur Ebene 1 Digitale Logik Ebene 0 Physik I.1 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.2 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 2 Was ist ein Betriebssystem? 2 Was ist ein Betriebssystem? (2) ■ DIN 44300 ■ Silberschatz/Galvin ◆ „...die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden und die insbesondere die Abwicklung von Programmen steuern und überwachen.“ ◆ „... ein Programm, das als Vermittler zwischen Rechnernutzer und RechnerHardware fungiert. Der Sinn des Betriebssystems ist eine Umgebung bereitzustellen, in der Benutzer bequem und effizient Programme ausführen können.“ ■ Tanenbaum ■ Brinch Hansen ◆ „...eine Software-Schicht ..., die alle Teile des Systems verwaltet und dem Benutzer eine Schnittstelle oder eine virtuelle Maschine anbietet, die einfacher zu verstehen und zu programmieren ist [als die nackte Hardware].“ ◆ „... der Zweck eines Betriebssystems [liegt] in der Verteilung von Betriebsmitteln auf sich bewerbende Benutzer.“ ✱ Zusammenfassung ◆ Software zur Betriebsmittelverwaltung ◆ Bereitstellung von Grundkonzepten zur statischen und dynamischen Strukturierung von Programmsystemen I.3 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.4 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 2.1 Struktur des Betriebssystems 2.1 Struktur des Betriebssystems (2) ■ Betriebssystem zwischen Anwendung und Hardware ■ Anwendungen ◆ laufen „auf“ Betriebssystem Anwendungen Systemanwendung ◆ Betriebssystem stellt virtuelle/abstrakte Maschine dar (Programmiermodell) Systemschnittstelle ◆ Interaktion mit Betriebssystem über Systemschnittstelle • Systemaufrufe (Supervisor Call): Beauftragung des Betriebssystems Betriebssystemkern ■ Systemanwendungen SW/HW-Schnittstelle Hardware ◆ einige Systemdienste häufig als Systemanwendungen realisiert ◆ laufen wie Anwendungen, gehören aber zum Betriebssystem • z.B. Systemdienste, Dateiserver ... ◆ spezielle Anwendungen Anwendung Interaktion Systemsoftware Hardware • z.B. Editoren, Compiler, Konfigurationsprogramme ... ■ Interaktion zwischen Anwendungen nur über Betriebssystemkern I.5 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.6 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 2.2 Betriebsarten 2.3 Verwaltung von Betriebsmitteln ■ Klassifikation nach Auftragsbearbeitung ■ Physikalische Betriebsmittel ◆ Stapelverarbeitung (Batch Processing) Prozessor (CPU, Central Processing Unit) • eine Aufgabe nach der anderen ◆ interaktiver Betrieb (Interactive Processing) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) • Rechner reagiert sofort auf Befehle Hauptspeicher (Memory) ◆ Time-Sharing-Betrieb • Rechenzeit wird über mehrere Benutzer oder Programme aufgeteilt ◆ Echtzeitbetrieb (Real Time Processing) externe Schnittstellen (Interfaces) • Rechner reagiert unmittelbar innerhalb vorgegebener Zeitschranken ■ Ein- oder Mehrprogrammbetrieb (Uni-Programming, Multiprogramming) Hintergrundspeicher (Secondary Storage) ■ Virtuelle Betriebsmittel ■ Ein- oder Mehrbenutzerbetrieb (Single User, Multiuser) ◆ vom Betriebssystem erst geschaffene • z.B. Speichersegment, Datei I.7 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.8 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 2.3 Verwaltung von Betriebsmitteln (2) 2.3 Verwaltung von Betriebsmitteln (3) ■ Resultierende Aufgaben ■ Typische Einzelkomponenten des Betriebssystems ◆ Belegung von Betriebsmitteln auf Anforderung ◆ Verwaltung der Ein-, Ausgabegeräte ◆ Multiplexen von Betriebsmitteln für mehrere Benutzer bzw. Anwendungen • Gerätetreiber ◆ Schaffung von Schutzumgebungen ◆ Speicherverwaltung • gegenseitiger Ausschluss des Betriebsmittelzugriffs ◆ Anwendungs-, Prozessverwaltung • Zugriffsberechtigungen ◆ Dateisystem ■ Ermöglichen einer koordinierten gemeinsamen Nutzung von Betriebsmitteln, klassifizierbar in ■ Systemsteuerung ◆ Kommandosprache ◆ aktive, zeitlich aufteilbare (Prozessor) ◆ Shell (Kommandointerpreter) ◆ passive, nur exklusiv nutzbare (periphere Geräte, z.B. Drucker u.Ä.) ◆ grafische Benutzeroberfläche ◆ passive, räumlich aufteilbare (Speicher, Plattenspeicher u. Ä.) ◆ Ablaufsteuerung (Starten und Beenden von Programmen) ■ Unterstützung bei der Fehlererholung ◆ Konfiguration I.9 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.10 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 2.4 Programmiermodelle 3 Hardware-Unterstützung ■ Betriebsystem realisiert ein Programmiermodell ■ Effiziente Betriebssysteme ◆ Programmiermodell im Kleinen durch Programmiersprache geprägt ◆ Unterstützung durch Hardware ◆ Programmiermodell im Großen durch Betriebssystem geprägt • Prozessor • große und/oder verteilte Anwendungen bestehen aus vielen kooperierenden Programmen • Memory-Management-Unit • intelligente I/O-Bausteine • usw. ✱ Programmiermodell des Betriebssystems ◆ abstrahiert von konkreter Hardware und Hardwarekonfigurationen • virtuelle/abstrakte Maschine ◆ begriffliche Basis zur Strukturierung von Programmsystemen und ihrer Ablaufsteuerung • Komponenten, z.B. Programme, Tasks, Prozesse • Interaktionen, z.B. Aufrufe, Benachrichtigung, Datenströme I.11 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.12 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 3.1 Prozessor 3.2 Betriebsmodus des Prozessors ■ Wird im Laufe der Vorlesung genauer definiert ■ Moderner Prozessor arbeitet in einem von mindestens zwei Modi ◆ Benutzermodus (User Mode) ■ Vorabinformation • eingeschränkter Befehlssatz ◆ digitales Schaltwerk ◆ enthält Register ◆ privilegierter Modus (Supervisor Mode) • für Daten und ähnliches • erlaubt Ausführung privilegierter Befehle – Konfigurationsänderungen des Prozessors – Moduswechsel – spezielle Ein-, Ausgabebefehle • Programmzähler (Speicheradresse des nächsten Befehls im Speicher) ◆ führt einen Befehl (Instruktion) nach dem anderen aus • Programmzähler wird inkrementiert (außer bei Sprüngen) ◆ Modus wird meist als Bit in speziellem Register repräsentiert (CCR, Condition Code Register) • Supervisor-Flag S (z.B. 1 = priv. Modus, 0 = Benutzermodus) • Bit kann nur im privilegierten Modus verändert werden I.13 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.14 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 3.3 Externe Unterbrechungen 3.3 Externe Unterbrechungen (2) ■ Unterbrechungen von außen (External Interrupts) ■ Anwendung ◆ Reaktion auf externes Ereignis Signalisieren der Unterbrechung (Interrupt Request; IRQ) • Fehlerbedingung • ankommende Netzwerknachricht Interruptleitungen • Rückmeldung durch langsame Geräte ◆ Prozessor unterbricht laufende Bearbeitung und führt eine definierte Befehlsfolge aus (vom privilegierten Modus aus konfigurierbar) • „Wecker“-Funktion ■ Abwicklung der Unterbrechungsbehandlung? ◆ vorher werden alle Register einschließlich Programmzähler gesichert (z.B. auf einem Stapelspeicher/Stack) ◆ nach einer Unterbrechung kann der ursprüngliche Zustand wiederhergestellt werden ◆ Unterbrechungen werden im privilegierten Modus bearbeitet I.15 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.16 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 3.3 Externe Unterbrechungen (2) 3.3 Externe Unterbrechungen (3) ■ Schematische Befehlsabwicklung ■ Adresse der Unterbrechungsbehandlung steht fest ◆ meist konfigurierbar [PC] ←[PC] + 1 Befehlsausführung Unterbrechung? Ja ■ Rückkehr von der Unterbrechungsbehandlung ◆ spezieller Befehl, z.B. RTI: Return from Interrupt Nein ◆ Befehlsausführung von RTI: ◆ reale Prozessoren sichere Register schalte in priv. Modus lade PC für Unterbrechungsbehandlung • Maskierung von Unterbrechungen • Restaurieren gesicherte Register – insbes. PC (alter Befehlspfad) – insbes. CCR • Annahmeprotokoll gegen Doppelausführung • Umschaltung in alten Modus – meist durch Restauration des CCR restauriere Register I.17 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.18 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 3.3 Externe Unterbrechungen (4) 3.4 Interne Unterbrechungen ■ Ablauf der Unterbrechung ■ Unterbrechungen durch die Befehlsausführung (Internal Interrupt, Exceptions) unterbrochene Befehlsfolge ◆ bei bestimmten Fehlersituationen (z.B. Division durch Null) unterbricht Prozessor laufende Befehlsbearbeitung und führt definierte Befehlsfolge aus (ähnlich wie bei externen Unterbrechungen) Befehlsfolge der Unterbrechungsbehandlung ◆ unterbrochene Befehlsfolge bleibt in der Regel unberührt • Unterbrechung ist transparent ◆ verschachtelte Unterbrechungen möglich • Unterbrechung der Unterbrechungsbehandlung • koordinierte Handhabung der gesicherten Register ◆ Unterbrechung beliebiger Betriebsmodi • Unterbrechung auch des privilegierten Modus I.19 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.20 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ 3.5 Systemaufrufe 3.5 Systemaufrufe (2) ■ Systemaufrufe (Traps; User Interrupts) ■ Schematische Befehlsabwicklung ◆ Wie kommt man kontrolliert vom Benutzermodus in den privilegierten Modus? ◆ spezielle Befehle zum Eintritt in den privilegierten Modus ◆ Prozessor schaltet in privilegierten Modus und führt definierte Befehlsfolge aus (vom privilegierten Modus aus konfigurierbar) ◆ solche Befehle werden dazu genutzt die Betriebssystemschnittstelle zu implementieren (Supervisor Calls) ... MOVE D0, a TRAP #3 MOVE a, D0 ... Ausführung sichere Register, priv. Modus lade PC des Systemaufrufs ◆ Parameter werden nach einer Konvention übergeben (z.B. auf dem Stack) letzter Befehl: RTI restauriere Register nächster Befehl I.21 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/ I.22 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005s-TI1-I-OS.fm, 2005-05-29 22.08] http://www-vs.informatik.uni-ulm.de/teach/ws04/avo/