Betriebssysteme eine Einführung Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1
Betriebssystem Was ist das? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 2
Wie entstanden die heutigen Betriebssysteme? Was ist ein Betriebssystem? wichtige Grundkonzepte Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 3
Entstehung von Betriebssystemen Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 4
Entstehung moderner BS Von der technologischen Entwicklung und der damit verbundenen Kostenentwicklung bestimmt Hardwarekosten Kosten der menschlichen Arbeitskraft von teurer Hardware Maximierung der Hardwareauslastung zu teurer Arbeitskraft Komfort und Unterstützung für Benutzer Weitere Faktoren: Fehlerbehebung, neue Anforderungen Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 5
Serial Processing (1950) kein Betriebssystem direkte Programmierung der Hardware I/O: Schalter, Lampen; Kartenleser, Drucker Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 6
Serial Processing Problem: Fehleranfälligkeit Lösung: Unterprogrammbibliotheken für I/O Problem: Setup benötigt viel Zeit Lösung 1: Spezialist für Setup Lösung 2: Monitor Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 7
Job-Ausführung mit Monitor Job vom Eingabegerät in die User Program Area lesen Interpretierung der JCL Kommandos Ausführung des Anwendungsprogramms Fortsetzung im Monitor Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 8
Monitor (1960) Device Drivers Interrupt Processing Job Sequencing JCL Interpreter Job Steuerkommandos (JCL) + Programm User Program Area Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 9
Monitor Speicherschutz Timer Privilegierte Instruktionen Interrupts Problem: entweder CPU oder I/O-System aktiv, der Rest der Maschine ist untätig Lösung: parallele CPU und I/O Aktivität Pufferung und I/O Interrupts Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 10
Multiprogramming (1965) Problem: Kaum ein Programm nützt CPU und periphäre Hardware gleichmäßig aus CPU-intensive Programme (CPU bound) I/O-intensive Programme (I/O bound) Lösung: Multiprogramming bzw. Multitasking Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 11
Multiprogrammed Batch Systems run wait run wait run A wait run A wait run B wait run B wait run A run B run A run B Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 12
Multiprogrammed Batch Systems Die parallele Ausführung von Programmen macht neue Mechanismen notwendig, z.b. Speicherverwaltung Verwaltung der CPU und Ressourcen (Scheduling) Situation (ca. 1970): billiger gewordene Computer sollen Produktivität teurer Arbeitskräfte fördern Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 13
Time-Sharing Systems Problem: Mehrere Benutzer teilen einen Computer; Warten auf Fertigstellung von (Batch) Jobs Lösung: Preemptive Scheduling, Prioritäten Problem: Daten und Programme sollen für Benutzer leicht verfügbar sein Lösung: Filesystem am Rechner Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 14
Weitere Entwicklung billige HW pro Benutzer ein Rechner (PC) Computer vermehrt für Verwaltung und Austausch von Daten Networking Security Wachstum des Internet Middleware (Java API, ) Mobilität, Voice und Video,... Embedded Computing, Real-Time Comp., Pervasive Computing, real-time, energy management Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 15
Unix, Mac OS, Windows,... 1972 "... the number of UNIX installations has grown to 10..." (D. Ritchie, K. Thompson) 1981 MS-DOS auf IBM PC (4000 Zeilen Ass.) 1983 PC XT : Festplatte, ein Directory, 64 Files 1984 Apple Macintosh, Mac OS 1987 MINIX 1990 MS Windows 3.0, auf DOS aufsetzend 1991 erste Linux Version 1993 Windows NT (10+ Mio. Code-Zeilen) multi-tasking, single- / multi-user System Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 16
Was ist ein Betriebssystem? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 17
Betriebssystem als Interface Interface zwischen Benutzer und Hardware virtuelle Maschine Ressourcenmanager stellt Programmierinterface zur Verfügung passt sich den Anforderungen des Benutzers an Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 18
Was interessiert uns? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 19
Betriebssystem - Sichten Endbenutzer Programmierer Anwendungsprogramme Betriebssystemdesigner Utilities Betriebssystem Computerhardware Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 20
Betriebssystem als Dienstleister Programmausführung Programmerstellung I/O, Filezugriff, Netzwerkkommunikation Zugangskontrolle Fehlererkennung und Behandlung Logging (Überwachung, Accounting) Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 21
BS als Ressourcenmanager keine externe Kontrollinstanz verwendet selbst Ressourcen gibt Ressourcen vorübergehend ab hebt sich durch die Funktionalität von anderen Programmen ab leitet den Prozessor bei der Verwendung der Ressourcen und bei der Zeitzuteilung an Prozesse Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 22
einige Grundkonzepte Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 23
Abstraktion Abstraktionen ungestörte Programmabarbeitung unendlich großer Speicher, Files Synchronisation und Kommunikation Standard Interface - Portabilität Verwaltet die Ressourcen CPU, Arbeitsspeicher, Platte, Netzwerkzugriff Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 24
Einige Aspekte Prozesse Speicherverwaltung Zugriffsschutz Scheduling und Ressourcenverwaltung Systemarchitektur Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 25
Prozess Informell: Programm bei der Ausführung Anforderungen an Prozessmanagement: Zeitzuteilung Signalisieren von Ereignissen (z.b. I/O) Vermeidung von Zugriffskonflikten Synchronisation Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 26
Prozess Prozessliste Arbeitsspeicher i j Proz.Idx PC Basis Länge Register i b l Prozess A Kontext Daten Prog. weitere Register... b Prozess B l Kontext Daten Prog. Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 27
Speicherverwaltung Virtual Memory Verwendung von Speicher ohne Berücksichtigung der Größe des physikalischen Speichers nur Teile laufender Programme werden im physikalischen Speicher gehalten der Rest befindet sich auf dem Sekundärspeicher: adressierbarer Speicher > Arbeitsspeicher Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 28
Memory Management Views Virtueller Prozessor Virtueller Speicher Files Benutzersicht Realer Prozessor virt. Adr. Adressübersetzg. phys. Adr. Hauptspeicher Paging, Swapping Sekundärspeicher Sicht des BS-Designers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 29
Speicherverwaltung Verwaltung der Speicherzuteilung an Prozesse Speicherzuteilung an Prozesse nach Bedarf Verschieben von Speicherinhalten zwischen Hauptund Sekundärspeicher Verwaltung der Zugriffsrechte Schutz und Isolation der Prozesse Gemeinsamer Speicher (Shared Memory) Filesystem Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 30
Datenschutz und Sicherheit Access Control Wer darf welche Ressourcen verwenden erlaubte Operationen Information flow control Authentizität - Quelle der Information Integrität - keine Verfälschungen Verfügbarkeit Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 31
Scheduling, Ressourcenverwaltung Zuteilung von Rechenzeit und Betriebsmitteln an die Prozesse Effizienz Fairness Lifeness... Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 32
Systemarchitektur Schichten jede Schicht erfüllt eine bestimmte Funktionalität höhere Schichten verwenden Services der darunterliegenden Schichten Modularer Aufbau überschaubare Teile mit definierte Funktionalität klar definierte Interfaces: Module können ohne Wechselwirkungen geändert werden Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 33
Ursprüngl. Unix-Schichtenmodell Name Objekte single processor Prozessor-HW 7 6 5 Virtueller Speicher Sekundärspeicher primitive Prozesse Seiten, Segmente Datenblöcke, -kanäle Prozesse, Ready list, Semaphore 4 Interrupts Interruptbehandlung 3 Prozeduren Prozeduren, Call Stack 2 Instruktionen Eval. Stack, skalare Daten, Felder 1 Schaltkreise Register, Gatter, Busse Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 34
Urspr. Unix-Schichtenmodell (2) Name Objekte one or more processors 13 12 Shell User-Prozesse 11 Directories Directories 10 Devices Drucker, Bildschirm, Tastatur 9 Filesystem Files 8 Kommunikation Pipes Programmierumgebung Benutzerprozesse Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 35
Windows Architektur (Bsp.) User Mode System Processes Services Applications Environment Subsystems Kernel Mode Executive API I/O Manager File Systems LPC Facility Memory Manager Process Manager Security Ref. Monitor Object Manager Plug n Play Power Manager Window Manager Graphics Dev. Dr. Device Drivers Microkernel Hardware Abstraction Layer (HAL) Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 36
Unix Architektur (SVR4) Device mappings File mappings Anonymous mappings Virtual memory framework elf exec switch Common Facilities a.out vnode/vfs interface NFS RFS FFS s5fs Disk driver Tape driver Block device switch Network driver Streams Scheduler framework tty driver Time-sharing processes System processes Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 37
Rückblick BS macht Computer verwendbar stellt Abstraktionen zur Verfügung Prozess, Speicher, Kommunikation, Synchronisation bietet ein portables Programmierinterface verwaltet Ressourcen Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 38
Ausblick Prozesse, Threads Parallelität, Synchronisation (Mutual Exclusion) Deadlock Speicherverwaltung (Virtual Memory) Scheduling Ein- und Ausgabe Dateiverwaltung Networking Security Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 14/15 39