Vorlesung Dozent: Prof. Dr. Sergei Gorlatch Büro: R 711 E-Mail: [email protected] Sprechstunde: Montag 10.00–11.00 Uhr und n.V. Sekretariat: Frau Kaiser-Mariani (R 704), vormittags, Tel.: 83-32740 Betriebssysteme Prof. Sergei Gorlatch Homepage der Vorlesung: http://pvs.uni-muenster.de/pvs/lehre/WS09/bs/ Vorlesungstermine: Gruppe PVS (Parallele und Verteilte Systeme) Institut für Informatik Montag, 12.00 Uhr–14.00 Uhr, M2 Dienstag, 16.00 Uhr–18.00 Uhr, M2 Es werden nicht jede Woche beide Termine gehalten. Genaue Termine werden rechtzeitig auf der Webseite bekanntgegeben. Westfälische Wilhelms-Universität Münster Wintersemester 2008/09 Skriptum: Folienskript im WWW im PDF-Format. Es wird empfohlen, Folien auszudrucken und in die Vorlesung mitzubringen Anmeldung zur Vorlesung und Übung: https://wwwmath.uni-muenster.de:16032/KursBuchungen/ Wichtig: Voraussetzung für die Klausuranmeldung! Übungen 0-2 Übungsblätter Im Netz werden Übungsblätter zur selbständigen Bearbeitung bereitgestellt. Übungsblätter sollen praktische Kenntnisse und Fertigkeiten vermitteln Übungsleiter: Dipl.- Math. Alexander Ploß Büro: R 710 Tel.: 83-32752 E-Mail: [email protected] Sprechstunde: Donnerstag 13–14 Uhr Intensive Beschäftigung mit den Übungsblättern ist Voraussetzung zum Verständnis der Übung und der Vorlesung und für das erfolgreiche Bestehen der Klausur! Bonuspunktregel: Übungstermine: Montags 16.00 Uhr–18.00 Uhr, Hörsaal M3 Dienstags 14.00 Uhr–16.00 Uhr, Hörsaal M3 Mittwochs 14.00 Uhr–16.00 Uhr, Hörsaal M6 Durch die erfolgreiche Bearbeitung der Übungen können bis zu 10% der Klausurpunkte erworben werden. Bei weniger als 50% der möglichen Punkte für die Übungsaufgaben werden keine Bonuspunkte vergeben. Ab 50% (1 Bonuspunkt) wird für weitere 5% der Übungspunkte je ein Bonuspunkt vergeben. Beginn: Ab dem 19.10. (nächste Woche) Inhalt: Vertiefung des Stoffs aus der Vorlesung Besprechung von Übungsblättern Beantwortung von Fragen zur Vorlesung ⇒ Übungsblätter werden korrigiert Abgabe in Kleingruppen (Details in den Übungen) 0-3 0-4 Prüfungsleistungen Ziele der Vorlesung Die Teilnehmer sollen am Ende der Vorlesung: Prüfungsleistung: Klausur (90 Minuten) wissen, wie ein modernes Betriebssystem aufgebaut ist, Abtestat, unbenotet (GI): 50% der Übungspunkte oder Bestehen der Klausur die einschlägigen Algorithmen und Strategien zur effizienten Verwaltung und fairen Vergabe von Betriebsmitteln kennen, Jede mündliche Prüfung setzt das Bestehen der Klausur voraus! die Umsetzung wesentlicher Mechanismen in aktuellen Betriebssysteme beispielhaft kennen lernen, Klausurtermin: Dienstag, 02. 02. 2010, 16.00–18.00 Uhr Wiederholungsklausur (2. Termin) vor bzw. zu Begin des SS2010. ein Verständnis für die gegenwärtigen und künftigen Trends in Betriebssystemen entwickeln. Fragen zur Organisation der Vorlesung & Übung? 0-6 0-5 Inhalte der Vorlesung Vorlesungsstil Struktur eines Betriebssystems (Mikrokernarchitektur) Prozesse und ihre Implementierung im wesentlichen Folien Prozessinteraktion (Synchronisation und Kommunikation) selten Tafelanschrieb Betrieb von Geräten Betriebsmittel- und Speicherverwaltung Folien werden in Form eines Folienskriptums zur Verfügung gestellt: als PDF-Dokumente im WWW (kurz vor der jeweiligen Vorlesung) Dateiverwaltung, virtueller Speicher Kleinere Abweichungen (insb. Korrekturen) möglich Programmverwaltung Zwischenfragen in der Vorlesung grundsätzlich erwünscht! Sicherheitsaspekte in Betriebssystemen Beispiele aus Unix, Windows und anderen BS 0-7 0-8 Darstellung der Mechanismen Beispiel für ein Ablaufdiagramm Auftrag annehmen Ablaufdiagramme vermitteln eine Konstruktions- oder Organisationsidee unter Verzicht auf Sprach- und Implementierungsdetails. Betriebsmittel frei? ja Programmskizzen nein Betriebsmittel belegen erlauben eine weitere Präzisierung einer Konstruktionsidee oder eines Ablaufs. Auch hier i.d.R. Verzicht auf syntaktische Details einer konkreten Programmiersprache. Auftrag löschen Erledigung melden 0-9 Beispiel für eine Programmskizze 0-10 Worum geht’s in dieser Vorlesung? Diese Veranstaltung ist ... q:= first(OR) if (∃ i: resource[q.type, i] = free) then begin resource[q.type,i]:= occupied; remove(OR); send(q.process_id, i); weder ein Programmierkurs noch eine Einführung in Unix, DOS, VMS, MVS, WindowsXP, OS/2, Mach, Chorus, BeOS, Linux, MacOS, PalmOS, Symbian . . . // examine outstanding requests // check if satisfiable // // // // Zielgruppe: Nicht nur die Benutzer heutiger Computersysteme, sondern vielmehr die Nutzer und Entwickler zukünftiger Systeme. allocate one unit of resource remove request from queue send no. of allocated unit to requesting process Denken Sie beim Einsatz von Betriebssystemen nicht nur an konventionelle Rechner (PCs, Arbeitsplatzrechner, Großrechner). end Das Spektrum ist viel größer! Betriebssysteme gibt es auch: end ... unter der Motorhaube im Flugzeug-Cockpit in der Waschmaschine auf der Chipkarte, z. B. im Handy 0-11 0-12 0.1 Literaturhinweise Kapitel 1 BS: Aufgaben und historische Entwicklung Die Vorlesung basiert auf drei Quellen: A. S. Tanenbaum: Moderne Betriebssysteme. 3., aktualisierte Auflage. Prentice Hall, 2009 Vorlesung Betriebssysteme“ von Prof. Dr. H.-U. Heiss, TU-Berlin ” und das Buch: H. Wettstein: Systemarchitektur. Hanser, 1993 W. Stallings: Betriebssysteme: Prinzipien und Umsetzung. 4. Auflage. Prentice Hall, 2003 0-13 Betriebssystem: Motivation Betriebssystem: Motivation Moderne Rechner bestehen aus vielen komplexen Komponenten: Prozessor, Arbeitsspeicher, Platten, Druckern, Tastatur, Maus, Bildschirm, Netzwerkschnittstellen, etc. Um ein Anwendungsprogramm zu schreiben, müsste der Programmierer alle Details der Komponenten und ihrer Zusammenarbeit verstehen, was fast unmöglich ist Deshalb wird Betriebssystem – zusätzliche Software-Schicht eingeführt Aufgabe des Betriebssystems: den Benutzerprogrammen ein besseres, einfaches, klares Modell des Rechners zur Verfügung zu stellen und die Ressourcen zu steuern Merke: Während Programme direkt mit BS kommunizieren, arbeitet der Endbenutzer normalerweise mit der Benutzungsoberfläche: textbasierte Benutzeroberfläche = Shell Benutzeroberfläche mit Icons = graphische Oberfäche (GUI ) 1-15 1-16 Formale Definition und Aufgaben Rechensystem Betriebssystem (Definition nach DIN 44300) Ein Rechensystem besteht aus Hardware, Systemprogrammen und Anwendungsprogrammen. Die Programme eines digitalen Rechensystems, die zusammen ” mit den Eigenschaften der Rechenanlage die Grundlage der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Ausführung von Programmen steuern und überwachen.“ Aufgaben Anpassung der Maschinenwelt an die Benutzerbedürfnisse Regelung des Zugriffs auf Ressourcen Verwaltung von Daten und Programmen Effiziente Ausnutzung der Betriebsmittel Unterstützung bei Fehlern und Ausfällen Quelle: Tanenbaum 2003. Sicherheitsvorkehrungen 1-17 1-18 Betriebssystemarchitektur Betriebssysteme für Universalrechner Zitat: The job of a system architect is similar to the one of a witty ” octopus juggling daily new balls of different size on the back of a jumping dolphin at the shore of Waikiki.“ Zwei Ebenen: sichtbar und unsichtbar für den Anwender. Betriebssystem: Bedienung und Kontrolle Neue Anwendungen Betriebssystem Markt Qualitätsmerkmale: • Sicherheit Anwendung Anwendung Anwendung • Echtzeit • Mobilität Betriebssystem: Verwaltung und Betrieb • Energieverbrauch • Verlässlichkeit Hardware • ... Hardware 1-19 1-20 Betriebssystem: Zwei Sichten Historischer Abriss: Die 50er Jahre Zwei mögliche Sichten auf das Betriebssystem: Virtuelle Maschine (Top-Down Sicht): Erste Anfänge Bietet dem Programmierer eine abstrakte, einfache Sicht auf die Hardware an. Reale, low-level Eigenschaften werden versteckt. Beispiel Festplatte/Dateisystem: In den ersten Maschinen (J. von Neumann, K. Zuse, . . . ) kümmern sich Spezialisten sowohl um die Anwendungen als auch um den Betrieb. Ein Programm wird von einem Prozessor abgearbeitet Reale Maschine (Hardware): Folge von Datenblöcken fester Größe Virtuelle Maschine (BS): Benannte Dateien variabler Größe Zunächst einzeln. Später Stapel-Verarbeitung (Batch-Betrieb), mit Lochkarten. Ressourcenmanager (Bottom-Up Sicht): Verwaltet Prozessoren, Speicher, Platten, Terminals, . . . Koordiniert den Zugriff von Anwendungen auf Ressourcen. Die Betriebssystemfunktion beschränkt sich hierbei auf Zeitliche Ressourcenverwaltung: Anwendungen greifen nacheinander auf Ressourcen zu (z. B. Drucker). Räumliche Ressourcenverwaltung: Anwendungen greifen auf unterschiedliche Bereiche einer Ressource zu (z. B. Speicher). Unterstützung bei der Ein-/Ausgabe. Umwandlung von Zahl- und Zeichendarstellungen. 1-21 Historischer Abriss: Die 60er Jahre 1-22 Beispiel: Betriebssystem OS/360 von IBM OS/360: Versuch, ein BS für alle unterschiedlichen Computer einer Serie (IBM/360) zu schaffen. Virtualisierung Unterschied zwischen CPU- und E/A-Rate wird immer größer. Verzahnte Ausführung unabhängiger Programme (Multiprogramming) wird möglich. Echte Parallelität durch Aufkommen von E/A-Prozessoren. Der Begriff des Prozesses als virtueller Prozessor wird geboren. Ergebnis: Millionen LOC (Maschinencode), Tausende Fehler, deren Anzahl von Release zu Release in etwa konstant blieb. Die wichtigsten Fortschritte in OS/360: Multiprogrammierung: Früher wartete der Prozessor auf die Beendigung von Ein-/Ausgabe. Lösung: den Speicher unter den Jobs in Bereiche aufteilen; wartet ein Programm kann ein anderes ausgeführt werden. Mehrere Jobs im Arbeitsspeicher: gegenseitiger Schutz notwendig (spezielle Hardware). Der Prozess wird auch internes Strukturierungsmittel für BS. Auch der Speicher wird virtualisiert“ (virtueller Speicher). ” Interaktiver Betrieb durch mehrere Benutzer (Timesharing). Spooling: Jobs von Karten auf Platten einlesen und dann abarbeiten. Timesharing: Prototypen bzw. Vorläufer heutiger Großrechner-BS entstehen (OS/360, CTSS/ Multics, CP67, VMOS/BS2000). Man wollte den Rechner wieder für sich alleine“ haben. ” Virtuelle Maschinen, online-Zugang über Terminals. 1-23 1-24 Historischer Abriss: Die 70er Jahre Historischer Abriss: Die 80er Jahre Software Engineering Verteilte Systeme Beginnende Software-Krise: Betriebssysteme werden groß und komplex und dadurch fehlerbehaftet. Die Forderung nach strukturiertem Systementwurf, nach Wartbarkeit, Zuverlässigkeit, Schutz und Sicherheit kommt auf. Unix entsteht nach dem Prinzip simple is beautiful“ auf einfacher ” Hardware (PDP-11). Aufkommen von Arbeitsplatzrechnern und PCs, MS-DOS (Microsoft geboren). Aufkommen leistungsfähiger Kommunikationsmedien: Ethernet, führt zu vermehrtem Interesse an vernetzten Systeme. Zur effizienten Implementierung von Kommunikationssoftware für verteilte Systeme braucht man Prozesse. Erstmalig Einsatz höherer Programmiersprachen (z. B. C) für BS-Implementierung. Da Prozesse zu komplex sind (ein Umschalten kostet“ Tausende ” Maschinenbefehle) trennt man Adressraum und Prozess wieder: mehrere Prozesse im selben Adressraum (lightweight process, thread). Das Potential früher entwickelter GUIs wurde von S. Jobs erkannt → Apple. Prozess wird zur Schutzumgebung (context, domain) mit eigenem, abgeschottetem Adressraum und Rechten (capabilities). Forderung nach Unterstützung von modularer Programmierung, abstrakten Datentypen und Objektorientierung bzw. Anwendung dieser Prinzipien auf das Betriebssystem selbst. Idee wird später von MS Windows übernommen. 1-25 Historischer Abriss: Die 80er Jahre (Forts.) 1-26 Historischer Abriss: Die 90er Jahre Hochparallele und Eingebettete Systeme, Multimedia, Interoperabilität Parallelitätskonzepte werden in Programmiersprachen aufgenommen. Sie ermöglichen verteiltes (paralleles) Rechnen auf Supercomputern und Netzen von Arbeitsplatzrechnern. Infolge hoher Stückzahlen werden einfache Mikroprozessoren relativ billig ⇒ Zusammenschaltung tausender Mikroprozessoren bringt oft höhere Leistung bei geringerem Preis als ein Supercomputer. Unix hat im Arbeitsplatzrechner ein ideales Vehikel zur Verbreitung und wird zum Quasi-Standard. Neue BS-Funktionen zur Unterstützung der Parallelverarbeitung. Multimedia-Anwendungen erfordern Unterstützung von Audio- und Videodaten (Echtzeit bzw. Real-time). Notwendigkeit der Integration ⇒ Standardisierungsaktivitäten (OSI, TCP/IP, NFS, POSIX, OSF, X/OPEN, OMG, ODP). Software in eingebetteten Systemen benötigt BS-Unterstützung (z. B. Consumer Electronics). Betriebssysteme überwinden Rechnergrenzen: Von der Rechnerkommunikation zum Verbundsystem (Verteiltes System). Verteilte Systeme in heterogenen Umgebungen ⇒ Interoperabilität (DCE, CORBA) Emulation anderer BS-Schnittstellen, d. h. mehrere BS-Welten auf demselben Rechner. 1-27 1-28 Historischer Abriss: Aktuelle Themen Multicore-, Cluster- und Grid-Computing Sicherheit Robustheit und Verfügbarkeit Energiemanagement (mobile Geräte) Benutzerschnittstellen 1-29