Grundzüge der Informatik IV: Betriebssysteme Thomas Fahringer Institut für Informatik Universität Innsbruck V Thomas.Fahringer@uibk.ac.at 1
Kapitel I Betriebssysteme: Aufgaben und Überblick V 2
Was ist ein Betriebssystem (BS)? (1) Verwaltung von Ressourcen Ressourcen: CPU, Speicher, Platte, Netzwerk BS vergibt diese Ressourcen. BS benötigt selbst Ressourcen. Virtuelle Maschine Abstraktion einer größeren (oder anderen) Maschine Beispiele: virtueller Speicher ist größer als der tatsächliche Speicher Java Virtual Machine (Stack-Maschine) Multiplexor ermöglicht das Teilen von Ressourcen und Schutzmechanismen Motivation sind Kosten: $40 Mio Superrechner
Was ist ein Betriebssystem? (2) Anbieter von Serviceleistungen Ressourcen Schnittstelle für Programmierer Window-System Speicherverwaltung, etc. Software, die immer geladen ist oder läuft BS Kernel: kleines und geschütztes Programm
Betriebssystemstruktur in Betriebssystem besteht häufig aus folgenden omponenten: Prozessmanagement Hauptspeichermanagement Sekundärspeichermanagement Netzwerkmanagement Schutzmechanismus Kommando-Interpreter-System
Betriebssystemstruktur: Prozessmanagement Programm ist passive Einheit (z.b. Sequenz von Bytes). Ein Prozess ist ein Programm, das von der CPU exekutiert wird. Die Exekution der Befehle erfolgt in der Regel sequentiell. Programme benötigen Ressourcen, die vom BS zugeteilt werden. Betriebssystem: erzeugt/löscht Prozesse. legt Prozesse in Warteschlange. unterstützt Synchronisation von Prozessen. ermöglicht Kommunikation zwischen Prozessen.
Betriebssystemstruktur: Hauptspeichermanagement Programme und Daten befinden sich im Hauptspeicher (primärer Speicher). Programme müssen sich vor der Exekution im Hauptspeicher befinden. Hauptspeicher wird von CPU und Input/Output Devices geteilt. Betriebssystem: vergibt Hauptspeicher an Prozesse. überwacht, welche Teile des Hauptspeichers vergeben/frei sind. kontrolliert, welche Prozesse von der Platte in den Hauptspeicher geladen werden.
Betriebssystemstruktur: File-Management Daten können in verschiedenen Speichern abgelegt werden: Hauptspeicher, magnetische Platte, magnetisches Band, optische Platte usw. Jedes Speichermedium wird von speziellem Device Controller kontrolliert. BS abstrahiert von physikalischem Speicher auf logische Einheit: File. Ein File besteht aus Sequenz von Bits, Bytes, Zeilen, Records usw. Betriebssystem: erzeugt und löscht Files/Verzeichnisse. stellt Befehle für das Manipulieren von Files zur Verfügung. kontrolliert die Abbildung von Files auf sekundären Speicher.
Betriebssystemstruktur: Sekundärspeichermanagement Hauptspeicher zu klein für alle Programme. Bei Stromversorgungsproblemen gehen alle Daten des Hauptspeichers verloren. Benötige Sekundärspeicher (z.b. Plattenspeicher), der alle Programme dauerhaft speichert. Programme werden von Sekundärspeicher erst in den Hauptspeicher geladen, wenn diese exekutiert werden. Betriebssystem: vergibt Sekundärspeicher. gibt Sekundärspeicher frei.
Betriebssystemstruktur: Netzwerkmanagement Bei verteilten Architekturen gibt es n Rechner mit privatem Speicher. Rechner kommunizieren über ein Netzwerk. Netzwerk kann vollständig oder partiell konfiguriert sein. Betriebsystem ermöglicht Zugriff auf alle Ressourcen, die über ein Netzwerk verbunden sind.
Betriebssystemstruktur: Schutzmechanismus Parallel exekutierende Prozesse müssen geschützt werden. Irgendwann gibt jeder Prozess die CPU ab. Prozess darf nicht auf Daten eines anderen Prozesses zugreifen. HW-Schutzmechanismus kontrolliert den Zugriff von Prozessen auf Ressourcen.
Betriebssystemstruktur: Kommando-Interpreter-System (Shell) Schnittstelle zwischen Benutzer und BS. Teil des Betriebssystems, welches BS-Befehle exekutiert. Login. Starten eines neuen Prozesses. Statusabfrage von allen Prozessen, etc. Shell bekommt jeden Befehl an BS und exekutiert diesen. Prozesse erzeugen/terminieren Input/Output Management Management des Sekundärspeichers Hauptspeichermanagement File-Zugriffe Schutzmechanismus Netzwerkmanagement
BS Serviceleistungen BS stellt Umgebung (Services) für das Exekutieren von Prozessen zur Verfügung: Programmexekution Input/Output Operationen Manipulation des File-Systems Kommunikation Fehlererkennung: Probleme mit der Stromversorgung Speicherfehler Verbindungsfehler im Netzwerk Prüfsummenfehler bei Plattenzugriff Vergabe von Ressourcen Abrechnung von Ressourcen Schutzmechanismus Fehlerbehandlung durch BS
Anforderungen an ein BS Robust Akzeptiere jede gültige Eingabe Entdecke und behandle jede ungültige Eingabe BS sollte man nicht zum Absturz bringen können Konsistent Gleiche Operationen sollten gleiche Semantik haben Lese-Operationen von File oder Netzwerk sollten gleich aussehen. Ein - Flag sollte in allen Kommandos gleiche Bedeutung haben. Konventionen Definiere Konvention Beachte Konvention bei Erweiterungen Proportional Einfache Fälle sind schnell Default-Fälle Komplexe und seltene Fälle sind möglich aber langsamer rm sollte warnen
Warum beschäftigen wir uns mit BS? BS sind große und komplexe Programme Software Engineering ist wichtig! Es gibt kein perfektes BS Zu viele Klassen von Benutzern Echtzeit, Desktop, Server, Multimedia, etc. Viele verschiedene Modelle und Abstraktionen sind möglich. Viele Abstraktionsebenen Hardware-Details Höhere Konzepte: Deadlock, Synchronisierung, etc. Notwendigkeit Zuverlässigkeit: Wenn das BS abstürzt, ist auch der Computer abgestürzt. Recovery: Wenn das BS abstürzt, sollten nicht alle Files verloren gehen. BSe sind interessant Details sind interessant.
Einfache Batch-Systeme Ein Job besteht aus einem Programm mit Eingabedaten. Mehrere Jobs werden zu Batches zusammengefasst und vom Betriebssystem exekutiert. Keine Interaktion mit Programmierer oder Benutzer während der Exekution Die Zeit zwischen Abschicken des Jobs und Rückgabe der Resultate hängt von folgenden Faktoren ab: Berechnungsaufwand des Jobs Zeit bis das Betriebssystem mit der Exekution des Jobs beginnt. Probleme Jobs nützen die CPU, Platte und I/O Devices nicht gleichmäßig aus. Die CPU ist viel schneller als Platte oder I/O Devices.
Batch System in Batch-System aus den Anfängen des Computerzeitalters
Multiprogrammed Batch Systems Mehrere Jobs warten auf die Zuteilung der CPU. Das Betriebssystem kann beliebigen Job auswählen, um Auslastung der CPU zu maximieren. Wenn ein Job, dem die CPU zugeordnet ist, auf ein externes Ereignis (z.b. Ende einer I/O Operation) wartet, bekommt ein anderer Job die CPU vom Betriebssystem zugewiesen. Solange es einen Job gibt, der von der CPU exekutiert werden kann, ist die CPU ausgelastet. Die Auswahl eines bestimmten Jobs für die Exekution aus einer Job- Warteschlange nennt man Job-Scheduling. Problem: keine Interaktion während der Job-Exekution Jobs mit langen Laufzeiten und ohne Benutzereingabe eignen sich besonders gut für Multiprogrammed Batch Systems.
Time-Sharing-Systeme Mehrere Jobs teilen sich die CPU während die Jobs exekutieren. Interaktion während Exekution ist möglich. Z.B. während ein Benutzer Daten für einen bestimmten Job eingibt, kann ein anderer Job exekutiert werden. Interaktive Systeme werden vor allem für Jobs verwendet, die kurze Antwortzeiten benötigen. Wichtige Eigenschaften von Time-Sharing-Systeme: Preemptive und non-premptive Scheduling Prioritäten
Literatur Operating System Concepts, Silberschatz, Galvin, Verlag Addison Wesley Modern Operating Systems, Tanenbaum, Verlag Prentice Hall Operating Systems, Deitel, Verlag Addison Wesley
Zusammenfassung BS stellt portable Umgebung zur Verfügung, um Programme zu entwickeln und zu programmieren. BS verwaltet Ressourcen, um eine gute Performance des Systems zu erzielen. BS ist selbst ein komplexes Softwaresystem.