Willkommen zur VO Betriebssysteme Peter Puschner Institut für Technische Informatik [email protected] Peter Puschner 1 Kontakt • Prof. Peter Puschner – [email protected] • Sprechstunden – Di, 14:00-15:00, bzw. nach Anmeldung – Sekretariat: Mo-Do, 10:00-11:30 • Institut – Treitlstraße 1-3, 3. Stock Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 2 Organisatorisches • Vorlesung: Montag 13:00 c.t.-15:00, InfHS • Unterlagen – Buch: William Stallings, “Operating Systems” – Präsentationen nach VO am Web (siehe tuwis++, http://ti.tuwien.ac.at/rts ) • Prüfungen – schriftlich, ohne Unterlagen, 90 Minuten Termine: (27.10.2009), 25.1.2010 Anmeldung über Web-Seite – mündlich: bei Bedarf Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 3 Ziele • solides Grundverständnis über BS • typische Konzepte und Mechanismen von BS • Aufzeigen von Designentscheidungen, offenen Fragestellungen • Schwerpunkt “Synchronisation” Nicht-Ziel: Vermittlung von Spezialwissen über Windows, Linux, MacOS, etc. Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 4 Betriebssysteme – eine Einführung Peter Puschner Institut für Technische Informatik Peter Puschner 5 Betriebssystem – Was ist das? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 6 • Wie entstanden die heutigen Betriebssysteme? • Was ist ein Betriebssystem? • wichtige Grundkonzepte Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 7 Entstehung von Betriebssystemen Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 8 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 09/10 9 Serial Processing (1950) • kein Betriebssystem • direkte Programmierung der Hardware • I/O: Schalter, Lampen; Kartenleser, Drucker Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 10 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 09/10 11 Job-Ausführung mit Monitor Job vom Eingabegerät in die User Programm Area lesen Interpretierung der JCL Kommandos Ausführung des Anwendungsprogramms Fortsetzung im Monitor Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 12 Monitor (1960) Interrupt Processing Device Drivers Job Sequencing JCL Interpreter Job Steuerkommandos (JCL) + Programm User Program Area Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 13 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 09/10 14 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 09/10 15 Multiprogrammed Batch Systems run wait run wait run A wait run A wait run B wait run B wait run run A B Peter Puschner, TU Wien run run A B Vorlesung Betriebssysteme, Einführung; WS 09/10 16 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 09/10 17 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 09/10 18 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, Real-Time Voice und Video, ... • Embedded Computing, Real-Time Comp., Pervasive Computing, … real-time …, power management … Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 19 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 09/10 20 Was ist ein Betriebssystem? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 21 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 09/10 22 Was interessiert uns …? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 23 Betriebssystem - Sichten Endbenutzer Programmierer Anwendungsprogramme Betriebssystemdesigner Utilities Betriebssystem Computerhardware Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 24 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 09/10 25 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 09/10 26 einige Grundkonzepte Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 27 … Abstraktion … • Abstraktion – Prozesse – “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 09/10 28 Einige Konzepte • • • • • Prozesse Speicherverwaltung Zugriffsschutz Scheduling und Ressourcenverwaltung Systemarchitektur Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 29 Prozess Informell: – Programm bei der Ausführung – “Animated Spirit of a Program” Anforderungen an Prozessmanagement: – – – – – Zeitzuteilung Signalisieren von Ereignissen Mutual Exclusion Synchronisation Deadlockvermeidung bzw. -behandlung Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 30 Prozess Arbeitsspeicher Register Proz.Idx i Prozessliste PC j Basis Länge Kontext Daten Prozess A weitere Register Prog. b Prozess B l Peter Puschner, TU Wien i b l ... Kontext Daten Prog. Vorlesung Betriebssysteme, Einführung; WS 09/10 31 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 09/10 32 Speicherverwaltung • Verwaltung der Speicherzuteilung an Prozesse – Speicherzuteilung an Prozesse nach Bedarf – Auslagern von Speicherinhalten auf Sekundärspeicher • Verwaltung der Zugriffsrechte – Schutz und Isolation der Prozesse – Gemeinsamer Speicher (Shared Memory) • Filesystem Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 33 Memory Management Views Virtueller Prozessor Virtueller Speicher Files Benutzersicht Realer AdressHauptProzessor virt. übersetzg. phys. speicher Adr. Adr. Sekundärspeicher Swapping Sicht des BS-Designers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 34 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 09/10 35 Scheduling, Ressourcenverwaltung Zuteilung von Rechenzeit und Betriebsmitteln an die Prozesse • Fairness • Effizienz • Lifeness • ... Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 36 Systemarchitektur • Modularer Aufbau - überschaubare Teile • klar definierte Interfaces: Module können ohne Wechselwirkungen geändert werden • Schichten – jede Schicht erfüllt eine bestimmte Funktionalität – höhere Schichten verwenden Services der darunterliegenden Schichten Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 37 Ursprüngl. Unix-Schichtenmodell Prozessor-HW single processor Name Objekte 7 Virtueller Speicher 6 Sekundärspeicher 5 primitive Prozesse Seiten, Segmente Datenblöcke, -kanäle Prozesse, Ready list, Semaphore 4 Interrupts 3 Prozeduren 2 Instruktionen Interruptbehandlung Prozeduren, Call Stack Eval. Stack, skalare Daten, Felder 1 Schaltkreise Register, Gatter, Busse Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 38 Urspr. Unix-Schichtenmodell (2) one or more processors Name 13 12 11 10 Shell User-Prozesse Directories Devices 9 Filesystem 8 Kommunikation Peter Puschner, TU Wien Objekte Programmierumgebung Benutzerprozesse Directories Drucker, Bildschirm, Tastatur Files Pipes Vorlesung Betriebssysteme, Einführung; WS 09/10 39 Windows Architektur (Bsp.) User Mode System Processes Services Applications Environment Subsystems Kernel Mode Executive API I/O Window Security Plug’n Power Manager Manager LPC Memory Process Ref. Facility Manager Manager Play Manager Graphics File Monitor Systems Dev. Dr. Object Manager Device Drivers Microkernel Hardware Abstraction Layer (HAL) Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 40 Unix Architektur (SVR4) a.out elf exec switch File mappings Device mappings vnode/vfs FFS interface s5fs Virtual memory framework Anonymous mappings Disk driver Tape driver Peter Puschner, TU Wien NFS Common Facilities RFS Scheduler Time-sharing framework processes Block device switch System processes Network driver Streams tty driver Vorlesung Betriebssysteme, Einführung; WS 09/10 41 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 09/10 42 Ausblick • • • • • • • • Prozesse, Threads Parallelität, Synchronisation (Mutual Exclusion) Deadlock Speicherverwaltung (Virtual Memory) Scheduling Ein- und Ausgabe Dateiverwaltung Security Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 09/10 43