Willkommen zur VO Betriebssysteme Betriebssysteme – eine Einführung Peter Puschner Peter Puschner Institut f. Technische Informatik Institut f. Technische Informatik Peter Puschner 1 • Wie entstanden die heutigen Betriebssysteme? • wichtige Grundkonzepte Vorlesung Betriebssysteme, Einführung; WS 06/07 2 Entstehung von Betriebssystemen • Was ist ein Betriebssystem? Peter Puschner, TU Wien Peter Puschner 3 Entstehung moderner BS Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 4 Serial Processing (1950) Von der technologischen Entwicklung und der damit verbundenen Kostenentwicklung bestimmt – Hardwarekosten – Kosten der menschlichen Arbeitskraft • kein Betriebssystem • direkte Programmierung der Hardware • I/O: Schalter, Lampen; Kartenleser, Drucker teure Hardware Ö Maximierung der Hardwareauslastung teure Arbeitskraft Ö Komfort und Unterstützung für Benutzer Weitere Faktoren: Fehlerbehebung, neue Anforderungen Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 5 Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 6 1 Serial Processing Job-Ausführung mit Monitor Problem: Fehleranfälligkeit der I/O Lösung: Unterprogrammbibliotheken für I/O Job vom Eingabegerät in die User Programm Area lesen Interpretierung der JCL Kommandos Problem: Setup benötigt viel Zeit Lösung 1: Spezialist für Setup Lösung 2: Monitor Ausführung des Anwendungsprogramms Fortsetzung im Monitor Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 7 Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 Monitor (1960) Monitor • • • • Interrupt Processing Device Drivers Job Sequencing JCL Interpreter Job Steuerkommandos (JCL) + Programm User Program Area Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 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 9 Multiprogramming (1965) Peter Puschner, TU Wien – CPU-intensive Programme (CPU bound) – I/O-intensive Programme (I/O bound) Lösung: Multiprogramming bzw. Multitasking run wait run wait run A wait run A wait run B wait run B wait run run A B Vorlesung Betriebssysteme, Einführung; WS 06/07 Vorlesung Betriebssysteme, Einführung; WS 06/07 10 Multiprogrammed Batch Systems Problem: Kaum ein Programm nützt CPU und Hardware gleichmäßig aus Peter Puschner, TU Wien 8 11 Peter Puschner, TU Wien run run A B Vorlesung Betriebssysteme, Einführung; WS 06/07 12 2 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): nun billigere Computer sollen Produktivität teurer Arbeitskräfte fördern Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 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 Weitere Entwicklung … Vorlesung Betriebssysteme, Einführung; WS 06/07 14 Unix, Windows, Linux • 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, … Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 • 1970 Unix auf PDP-7 C-Implementierung • 1981 MS-DOS auf IBM PC (4000 Zeilen Ass.) • 1983 PC XT : Festplatte, ein Directory, 64 Files • 1984 Apple Macintosh • 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 15 Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 16 Betriebssystem als Interface • Interface zwischen Benutzer und Hardware – – – – Was ist ein Betriebssystem? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 17 stellt Programmierinterface zur Verfügung virtuelle Maschine Ressourcenmanager passt sich den Anforderungen des Benutzers an Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 18 3 Position des Betriebssystems Endbenutzer Betriebssystem als Dienstleister Programmierer Anwendungsprogramme Betriebssystemdesigner Utilities • • • • • • Programmerstellung Programmausführung I/O, Filezugriff, Netzwerkkommunikation Zugangskontrolle Fehlererkennung und Behandlung Logging (Accounting, Überwachung) Betriebssystem Computerhardware Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 19 Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 20 BS als Ressourcenmanager • • • • keine externe Kontrollinstanz verwendet selbst Ressourcen gibt Ressourcen vorübergehend ab hebt sich durch die Funktionalität von anderen Programmen ab einige Grundkonzepte – leitet den Prozessor bei der Verwendung der Ressourcen und bei der Zeitzuteilung an Prozesse Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 21 Peter Puschner, TU Wien … Abstraktion … Vorlesung Betriebssysteme, Einführung; WS 06/07 22 Einige Konzepte • Abstraktion • • • • • – Prozesse – “unendlich” großer Speicher, Files – Synchronisation und Kommunikation • Standard Interface - Portabilität • Verwaltet die Ressourcen Prozesse Speicherverwaltung Zugriffsschutz Scheduling und Ressourcenverwaltung Systemarchitektur – CPU, Arbeitsspeicher, Platte, Netzwerkzugriff Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 23 Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 24 4 Prozess Prozess Arbeitsspeicher Informell: – Programm bei der Ausführung – “Animated Spirit of a Program” i Prozessliste Basis Länge Kontext Signalisieren von Ereignissen Mutual Exclusion Synchronisation Deadlockvermeidung bzw. -behandlung Daten Prozess A weitere Register Prog. b Prozess B l i PC j Anforderungen an Prozessmanagement: – – – – Register Proz.Idx b l ... Kontext Daten Prog. Vorlesung Betriebssysteme, Einführung; WS 06/07 Peter Puschner, TU Wien 25 Vorlesung Betriebssysteme, Einführung; WS 06/07 Peter Puschner, TU Wien Speicherverwaltung 26 Speicherverwaltung • Virtual Memory • Verwaltung der Speicherzuteilung an Prozesse – logische Speicheradressierung 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 – Speicherzuteilung an Prozesse nach Bedarf – Auslagern von Speicherinhalten auf Sekundärspeicher • Verwaltung der Zugriffsrechte – Schutz und Isolation der Prozesse – Gemeinsamer Speicher (Shared Memory) • Filesystem Vorlesung Betriebssysteme, Einführung; WS 06/07 Peter Puschner, TU Wien 27 Peter Puschner, TU Wien Memory Management Views Vorlesung Betriebssysteme, Einführung; WS 06/07 28 Datenschutz und Sicherheit • Access Control Virtueller Prozessor Virtueller Speicher – Wer darf welche Ressourcen verwenden – erlaubte Operationen Files • • • • Benutzersicht Realer AdressHauptProzessor virt. übersetzg. phys. speicher Adr. Adr. Sekundärspeicher Information flow control Authentizität - Quelle der Information Integrität - keine Verfälschungen Verfügbarkeit Swapping Sicht des BS-Designers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 29 Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 30 5 Scheduling, Ressourcenverwaltung • • • • Fairness Behandlung verschiedener Anforderungen Effizienz Lifeness 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 06/07 31 Ursprüngl. Unix-Schichtenmodell Objekte Name 7 Virtueller Speicher Seiten, Segmente 6 Sekundärspeicher Datenblöcke, -kanäle 5 primitive Prozesse Prozesse, Ready list, Semaphore 4 Interrupts 3 Prozeduren Interruptbehandlung Prozeduren, Call Stack 2 Instruktionen Eval. Stack, skalare Daten, Felder 1 Schaltkreise Register, Gatter, Busse Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 33 Programmierumgebung 12 User-Prozesse Benutzerprozesse 11 Directories Directories 10 Devices Drucker, Bildschirm, Tastatur 9 Filesystem Files 8 Kommunikation Pipes Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 a.out elf Services Services Applications Applications Environment Environment Subsystems Subsystems exec switch File mappings Device mappings Kernel Mode Executive Executive API API Disk driver Object Object Manager Manager 35 Common Facilities Peter Puschner, TU Wien RFS Scheduler Time-sharing framework processes Block device switch Tape driver Device Microkernel Microkernel Device Drivers Drivers Hardware Hardware Abstraction Abstraction Layer Layer (HAL) (HAL) NFS vnode/vfs FFS interface s5fs Virtual memory framework Anonymous mappings I/O Window I/O Security Security Plug’n Power Window Memory Process Process Ref. LPC Memory Plug’n Power Manager Manager Manager LPC Manager Ref. Facility Manager Manager Manager Monitor Play Manager Graphics Facility Manager Play Manager File File Graphics Monitor Systems Dev. Systems Dev.Dr. Dr. Vorlesung Betriebssysteme, Einführung; WS 06/07 34 Unix Architektur (SVR4) User Mode Peter Puschner, TU Wien Objekte 13 Shell Windows Architektur (Bsp.) System System Processes Processes 32 Urspr. Unix-Schichtenmodell (2) one or more processors Prozessor-HW single processor Name Vorlesung Betriebssysteme, Einführung; WS 06/07 Peter Puschner, TU Wien System processes Network driver Streams tty driver Vorlesung Betriebssysteme, Einführung; WS 06/07 36 6 Rückblick Ausblick • BS macht Computer “verwendbar” • stellt Abstraktionen zur Verfügung • • • • • • • • – Prozess, Speicher, Kommunikation, Sync. • bietet ein portables Programmierinterface • verwaltet Ressourcen Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS 06/07 37 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 06/07 38 7