SS 2007 Version vom 21 03 2007 bersicht
SS 2007 Version vom 21. 03. 2007 Übersicht
Organisation Leitung: Praktikum: H. Weber Abdellaoui, Adrian, Debusmann, Schäfer, Weber Vorlesung: Do, 7. 45 - 10. 15 (3 Stunden V, inkl. Pause) Praktikumsgruppen : 3 -stündig PL/SL : Klausur am Semesterende Praktikum: 2 bewertete (live) Aufgaben (je 40 %) und weitere 5 Aufgaben (je 2%), mündlicher Anteil (5%), Praktikumsordner (5%) Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 2
Literatur I z R. Brause, Betriebssysteme – Grundlagen und Konzepte, 2. Auflage, Springer-Verlag, Berlin 2001 z A. S. Tanenbaum, Moderne Betriebssysteme, 2. Auflage, Pearson-Verlag 2002 z C. Vogt, Betriebssysteme, Spektrum Akademischer Verlag, Heidelberg 2001 z J. Nehmer, P. Sturm, Systemsoftware – Grundlagen moderner Betriebssysteme, dpunkt. Verlag, Heidelberg 1998 z A. Silberschatz, P. Gavin, G. Gagne, Applied Operating Systems Concepts, John Wiley&Sons, New York 2000 Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 3
Literatur II z W. Stallings, Operating Systems, Prentice Hall, New Jersey 1998 z G. Nutt, Operating Systems, Addison-Wesley, Reading 2000 z L. Bic, A. Shaw, Betriebssysteme, Hanser-Verlag, 1988 z E. Glatz, Betriebssysteme Grundlagen, Konzepte, Systemprogrammierung, dpunkt-Verlag, 2005 z R. A. Finkel, An Operating Systems Vade Mecum, Prentice Hall – bei uns als PDF-File vorhanden z H. Weber, Praktische Systemprogrammierung, Vieweg, Wiesbaden 1998 Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 4
Inhalt der Vorlesung zÜbersicht z. Prozesse z. Prozeßsynchronisation z. Speicherverwaltung z. Dateiverwaltung z. Ein- und Ausgabeverwaltung z. Verteilte Systeme Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 5
Kap. 1 Übersicht
Kap. 1 - Inhalt z Einleitung: Was ist ein Betriebssystem z Betriebssystemschichten z Schnittstellen und virtuelle Maschinen z Geschichte z Aufbau von Betriebssystemen z Rechnerarchitekturen z Wichtige Konzepte Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 7
Betriebssystem-Zoo Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 8
Einleitung I Was ist ein Betriebssystem ? * die Gesamtheit der Programmteile, die Benutzung von Betriebsmitteln steuern und verwalten * die Software (Programmteile), die für den Betrieb eines Rechners anwendungsunabhängig notwendig ist * virtuelle Maschine, die dem Benutzer Abstraktionen der Hardware zur Verfügung stellt, die wesentlich einfacher zu benutzen sind Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 9
Einleitung II Definition (Betriebssystem): Ein Betriebssystem ist ein Programmsystem, das alle Betriebsmittel eines Rechensystems verwaltet und ihre Zuteilung kontrolliert und den Nutzern des Rechensystems eine virtuelle Maschine offeriert, die einfacher zu verstehen und zu programmieren ist als die unterlagerte Hardware. Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 10
Betriebssystemschichten I Benutzer benutzt Benutzerprogramm benutzt Betriebssystem benutzt Maschinenhardware Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 11
Betriebssystemschichten II Schichtenmodell User 1 User 2 User 3 Compiler Editor. . . Spiele Betriebssystemdienste Hardware Betriebssysteme und Grundlagen Verteilter Systeme Übersicht Zwiebelschalenmodell HW © H. Weber, FH Wiesbaden 12
Betriebssystemschichten III Systemsoftware versus Anwendersoftware z Das Betriebssystem ist der Teil der Software, die normalerweise im Kernmodus oder Supervisormodus ausgeführt wird z. Die Anwendungsprogramme (Compiler, Editor, E-Mail-Programm etc. ) werden im Benutzermodus ausgeführt Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 13
Schnittstellen & virt. Maschinen I SCSI-Operationen fur Festplatten: FORMAT UNIT INQUIRY MODE SELECT MODE SENSE NO OPERATION PRIORITY RESERVE READ BUFFER READ CAPACITY READ DEFECT DATA READ EXTENDED READ LONG REASSIGN BLOCKS RECEIVE DIAGN. RESULTS RECOVER DATA RECOVER ID RELEASE UNIT REQUEST SENSE RESERVE UNIT REZERO UNIT SEEK EXTENDED SEND DIAGNOSTIC SET LIMITS START/STOP UNIT TEST UNIT READY VERIFY WRITE AND VERIFY WRITE BUFFER WRITE EXTENDED WRITE LONG WRITE SAME. . . Wer will schon mit dieser Schnittstelle Informationen langfristig speichern und zugreifen wollen ? !? Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 14
Schnittstellen & virt. Maschinen II Eine Schnittstelle besteht aus n Daten sowie Funktionen bzw. Methoden dafür (Objekte) n Protokolle für die Benutzung der Funktionen und Daten, mit denen das Objekt Dienstleistungen erbringt (Exportschnittstelle) Die Implementierung benötigt dazu n Daten, Funktionen und Protokolle für die Dienstleistungen, die sie zur Erfüllung benötigt (Importschnittstelle). Virtuelle Maschinen Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 15
Schnittstellen & virt. Maschinen III Schicht 3 Zeit Schicht 2 Schicht 1 Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 16
Schnittstellen & virt. Maschinen IV – Virt. CPU Software-Hardware-Migration durch virtuelle CPU Programm in Java-Code / Maschinencode CPU- Hardware Betriebssysteme und Grundlagen Verteilter Systeme Übersicht Programm in Java-Code Microcodeund CPU-Hardware © H. Weber, FH Wiesbaden 17
Schnittstellen & virtuelle Maschinen V - virtuelle logische, physikalische Geräte Beispiel: Festplattenspeicher Kontrolle Daten n virtuelles Gerät = logisches Gerät +Verwaltungstreiber Treiber für log. Geräte log. Gerät 1 n logisches Gerät = physikalisches Gerät + HW-Treiber. Betriebssysteme und Grundlagen Verteilter Systeme Übersicht log. Gerät 2 Treiber 1 Treiber 2 phys. Gerät 1 phys. Gerät 2 Virtuelles Gerät © H. Weber, FH Wiesbaden 18
Geschichte I Gliederung (parallel zu Rechnergenerationen): 1. Generation (1945 -1955): Röhren und Steckkarten 2. Generation (1955 -1965): Transistoren und Stapelverarbeitung 3. Generation (1965 -1980): ICs und Mehrprogrammbetrieb 4. Generation (1980 -1990): Personal Computer und Netzwerkbetriebssysteme 5. Heute Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 19
Geschichte II 1. Generation (1945 -1955): USA: H. Aiken (Harvard), J. v. Neumann (Princeton) u. a. Deutschland: Konrad Zuse z Eine Gruppe von Personen kümmert sich um Entwurf, Bau, Programmierung, Operating und Wartung jedes einzelnen Rechners. z Programmierung durch Verdrahtung von Steckkarten oder in absoluter Maschinensprache (Programmiersprachen unbekannt). z Nutzung fur numerische Berechnungen. z Ab Anfang der 50 er Jahre Benutzung von Lochkarten. z Betriebssysteme unbekannt. Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 20
Geschichte III 2. Generation (1955 -1965): z Nach Einfuhrung von Transistoren werden Rechner zuverlässig genug, um an Kunden verkauft zu werden. z Unterscheidung zwischen Entwicklern, Herstellern, Operateuren, Programmierern und Wartungspersonal. z Zunächst Ausfuhrung einzelner Jobs in Form von Lochkartenstapeln mit hohem Anteil manueller Arbeiten. z Rationalisierung des Operating durch Einfuhrung des Stapelbetriebs (Batch-System): Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 21
Geschichte IV - Batch-System – bringt Kartenstapel zur 1401 – kopiert Karten auf Band – bringt Eingabeband auf 7094, die Berechnung ausführt – bringt Ausgabeband zur 1401, die den Output ausdruckt Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 22
Geschichte V Die Steuerkarten waren Vorläufer der heutigen Kommandosprachen, die Monitore Vorläufer der heutigen Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 23
Geschichte VI 3. Generation (1965 -1980): ICs und Multiprogramming z Timesharing-Betrieb z Zugriff über Terminals z Multics z UNIX Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 24
Geschichte VII 4. Generation (1980 -1990): z Personal Computer als Individuen zugeordnete Werkzeuge (= Workstation). z Netzwerke zur Kommunikation und Kooperation. z getrieben durch LSI und VLSI- Entwicklung, preiswert, aber leistungsstark wie Minirechner bzw. Großrechner. z hohe Graphikfähigkeit führt zu benutzerfreundlichen Oberflächen z Marktdominierende Betriebssysteme: MS- DOS und UNIX. z Netzwerkbetriebssysteme erlauben Zugang zu anderen Rechnern, Dateitransfer, gemeinsame Benutzung von Informationen (z. B. TCP/ IP Netzwerk Utilities, Novell Netware, Network File System) Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 25
Geschichte VIII 5. Heute: Neue Anwendungen gekennzeichnet durch: z steigende Komplexität und neue geforderte Funktionalitäten: z Verteiltheit (Client/ Server), z Offenheit, z Heterogenität, z Skalierbarkeit z "Cooperative Computing" z Sicherheit (Security) z Realzeitfähigkeit z Fehlertoleranz / Robustheit z Multimedia z WWW- Anbindung Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 26
Geschichte IX Aktuelle Entwicklungsrichtungen: z Verteilte Betriebssysteme z Multiprozessing z Standardisierung von Schnittstellen z Mehrere BS-Schnittstellen auf einem Rechner z Konfigurierbarkeit z Realzeitfähigkeit z Administration grosser Netzwerke z Multimediaunterstützung z Erhöhung der Sicherheit Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 27
Geschichte X - Fragen Gestern: Welche Betriebssysteme haben Sie benutzt? . . . Heute: Welche Betriebssysteme benutzen Sie ? . . . Welche Systeme sind nützlich für diese LV? Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 28
Aufbau I - Unterschiedliche Arten von BSn z. Mainframe-Betriebssysteme z. Server-Betriebssysteme z. Multiprozessor-Betriebssysteme z. PC Betriebssysteme z. Echtzeit-Betriebssysteme z. Betriebssysteme für eingebettete Systeme z. Betriebssysteme für Chipkarten Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 29
Aufbau II - Betriebssystemgliederung § Benutzerschnittstelle textuelle und graphische Interaktion mit dem Benutzer § Dienstprogramme, Werkzeuge oft benutzte Programme wie Editor, Linker, . . . § Übersetzungsprogramme Interpreter, Compiler, Translator, . . § Organisationsprogramme Speicher-, Prozessor-, Geräte-, Netzverwaltung Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 30
Aufbau III - Benutzerschnittstelle Ein Blick auf die Benutzerschnittstelle: 1. Benutzeroberfläche (Kommandointerpreter, Grafische Oberflächen) einschließlich der Schnittstellen zu Dienstprogrammen (Tools) wie etwas Editoren, Übersetzer (Compiler), Binder (Linker), . . . 2. Bibliotheksschnittstellen (Standardbibliotheken und spezielle Bibliotheken), zur Programmierung benutzt. 3. Betriebssystemdienst-Schnittstelle enthält Systemaufrufe (system calls), d. h. „erweiterte Befehle“ = Operationen zum Umgang mit den Abstraktionen, die der Kern offeriert. Wesentliche Kernabstraktionen: Prozesse (processes) = Programme in Ausführung, damit verbunden Mechanismen zur Prozess-Synchronisation und –Kommunikation Dateien (files) , damit verbunden Dateisysteme (file systems) und Verzeichnisse (directories) IO-Geräte (devices) Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 31
Aufbau IV - Typischer Betriebssystemaufbau ¼ Benutzer 1 Benutzer N Benutzeroberfläche User Interface Management System Anwendung 1 Dienstprogramm ¼ Werkzeug Systemaufruf Betriebssystemkern Operating System Kernel Maschinencode Hardware Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 32
Aufbau V - Der Betriebssystemkern Aufruf mittels Traps (Falltüren) Eingang Ausgang Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 33
Aufbau VI - Systemaufrufe: Traps und Interrupts n Synchrone, indirekte Methodenaufrufe (Traps). . . Move A, R 1 Tabelle von Interruptvektoren Trap 7 Adr 0017 Status PS der ISR 8 Move R 1, A Adr 0016 Adresse PC der ISR 8. . . Adr 0015 Status PS der ISR 7 Adr 0014 Adresse PC der ISR 7 n Asynchrones HWInterrupt-Signal 7 Adr 0013 Status PS der ISR 6 Adr 0012 Adresse PC der ISR 6 ISR = Interrupt Service Routines = Treiber PS = Processor Status Word (prio, mode, . . ) Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 34
Aufbau VII - Aufruf des Betriebssystemkerns Programminstruktionen Interrupt {PC+1, PS=user mode} stack BS PC, kernel mode PS return from interrupt stack {PC, PS=user mode} Betriebssystemkerndienste BS : Bootstrap Umschaltung vom Usermodus in Kernmodus und zurück !! Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 35
Aufbau VIII - UNIX-Betriebssystemkern Multi-User user mode kernel mode Benutzer. Shell 1 Benutzer. Shell 2 Benutzer. Programm 1 System. Programm 1 ¼ Multiprogramming System. Programm 2 ¼ Überprüfbare Schnittstelle und Funktionsvertei lung Speicher. Serielle Ein/Ausgabe Dateisystem verwaltung Prozess. Dis. Platte manage. TTY Drucker Maus Netz play Floppy ment Hardware Implementierungsunabhängige Schnittstellen: Portable Operating System Interface based on Uni. X Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 36
Aufbau IX - UNIX Systemsoftware I Systemprogramme ar cat cc chmod cp echo grep kill build & maintain archives concatenate files standard out compile C program change protection mode copy file print argument file search including a pattern send a signal to a process Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 37
Aufbau X - UNIX Systemsoftware II ln lp ls mv sh tee wc link a file print a file list files and directories move a file start a user shell copy standard in to standard out and to a file word count Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 38
Aufbau XI – Monolitisches System Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 39
Aufbau XII – Geschichtetes System Struktur des THE Betriebssystems Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 40
Aufbau XIII – Virtuelle Maschinen Struktur von VM/370 mit CMS Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 41
Aufbau XIV – Client-Server Modell Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 42
Aufbau XV – Client-Server Modell in einem verteilten System Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 43
Aufbau XVI – Bsp. : MACH- Betriebssystemkern Mach-Kern Benutzerprogramm File Manager Speicher Manager Terminal I/O user mode kernel mode Scheduler, Nachrichtenübermittlung, Basic I/O, Speicherobjekte Hardware Mikrokern § § Vorteile: minimaler Kern, alle Funktionen modularisiert austauschbar Nachteile: Kommunikationsdauer zwischen Managern Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 44
Aufbau XVII – Bsp. : Windows NT - Anforderungen n kompatibel zu vorhandenen Systemen Unix, DOS, . . n zuverlässig und robust n leichte Portierbarkeit n leicht veränderbar und anpassungsfähig n leistungsstark Geht das überhaupt ? Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 45
Aufbau XVIII – Bsp. : Windows NT - Lösungen 1. Kompatibilität 2. pro emuliertes BS ein extra Subsystem (Server), von Kunden (Clients) durch Nachrichten (local procedure calls LPC) angefordert. Sie setzen auf Dienstleistungen der NT Executive (Syscalls) auf. 3. Robustheit 4. Trennung der Programmablaufumgebungen 5. 6. (virt. Maschinen), kein direkter Hardwarezugriff fehlertolerantes Dateisystem, Netzdienste, 7. Portierbarkeit 8. In C geschriebene Module, auf Hardwaremodell aufsetzend Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 46
Aufbau XIX – Bsp. : Windows NT - Betriebssystemkern Logon Security Win/DOS Subsys. Client tem Win 32 POSIX OS/2 Subsys- Client tem tem user mode kernel mode Object Manager Process Manager Hardware Betriebssysteme und Grundlagen Verteilter Systeme Übersicht Systemdienste Local Memory Proc. Calls Manager Kernel Abstraction Layer Hardware Security Monitor I/O System HAL © H. Weber, FH Wiesbaden 47
Rechnerarchitekturen I Einprozessorsystem BSKern . . . Nutzer n Programm Hauptspeicher Massenspeicher Programme Daten Nutzer 1 Programm Prozessor Bis max. N (~ 16) CPUs erweiterbar. Problem: Speicherzugriff (Systembus) Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 48
Rechnerarchitekturen II Multiprozessorsystem P 1 P 2 ¼ Pn Verbindungsnetzwerk „Tanzsaal “ Arbeitsspeicher BSKern Nutzer 1 Programm . . . Nutzer n Programm Problem: Performance-Einbussen bei häufigen Speicherzugriffen Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 49
Rechnerarchitekturen III Mehrrechnersystem BSKern Nutzer 1 Programm BSKern ¼ P 1 Nutzer n Programm Arbeitsspeicher Pn Verbindungsnetzwerk „Vorzimmer“ Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 50
Rechnerarchitektur IV Rechnernetz BSKern Nutzer 1 Programm P 1 ¼ Nutzer n Programm Pn Verbindungsnetzwerk LAN, WAN Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 51
Wichtige Konzepte I v. Prozesse v. Dateien v. Systemaufrufe v. Shells Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 52
Konzepte II - Prozesse Prozeß : Programm in seiner Ausführung Prozess-Baum – A hat zwei Kind-Prozesse B and C erzeugt – B hat drei Kind-Prozesse D, E, und F erzeugt Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 53
Konzepte III - Dateissytem Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 54
Konzepte IV – Mounten von Dateisystemen • Vor dem Mounten, Files auf Floppy sind nicht benutzbar • Nach dem Mounten der Floppy auf b, Files auf Floppy sind Teil der Filehierarchie Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 55
Konzepte V - Systemaufrufe Es gibt 11 Schritte beim Ausführen des Systemaufrufs read (fd, buffer, nbytes) Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 56
Konzepte VII – Systemcalls für File Management Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 57
Konzepte VII – Directory Management Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 58
Konzepte IX - Verschiedene Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 59
Konzepte X – UNIX/Windows 32 - Systemaufrufe Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 60
Konzepte XI – Eine kleine Shell while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt */ read_command (command, parameters) /* input from terminal */ if (fork() != 0) { /* Parent code */ waitpid( -1, &status, 0); } else { /* Child code */ execve (command, parameters, 0); /* fork off child process */ /* wait for child to exit */ /* execute command */ } } Betriebssysteme und Grundlagen Verteilter Systeme Übersicht © H. Weber, FH Wiesbaden 61
- Slides: 61