Betriebssysteme - Parallele und verteilte Systeme

Werbung
Betriebssysteme
Prof. Sergei Gorlatch
Gruppe PVS (Parallele und Verteilte Systeme)
Institut für Informatik
Westfälische Wilhelms-Universität Münster
Wintersemester 2010/11
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
Homepage der Vorlesung:
http://pvs.uni-muenster.de/pvs/lehre/WS10/bs/
Vorlesungstermine:
Montag, 12.00 Uhr–14.00 Uhr, M1
Dienstag, 16.00 Uhr–18.00 Uhr, M1
Es werden nicht jede Woche beide Termine gehalten.
Genaue Termine werden rechtzeitig auf der Webseite bekanntgegeben.
Skriptum: Folienskript im WWW im PDF-Format. Es wird
empfohlen, Folien auszudrucken und in die Vorlesung mitzubringen
Einmalige Anmeldung zur Vorlesung und Übung:
https://wwwmath.uni-muenster.de:16032/KursBuchungen/
Wichtig: Voraussetzung für die Klausuranmeldung!
0-2
Übungen
Übungsleiter: Dipl.- Math. Alexander Ploß
Büro: R 710
Tel.: 83-32752
E-Mail: [email protected]
Sprechstunde: Mittwoch 13–14 Uhr
Übungstermine:
Dienstags 14.00 Uhr–16.00 Uhr, Hörsaal M1
Mittwochs 12.00 Uhr–14.00 Uhr, Hörsaal M2
Mittwochs 14.00 Uhr–16.00 Uhr, Hörsaal M6
Beginn: Ab dem 19.10. (nächste Woche)
Inhalt:
Vertiefung des Stoffs aus der Vorlesung
Besprechung von Übungsblättern
Beantwortung von Fragen zur Vorlesung
Anmeldung zur Übungsgruppe: nicht nötig.
0-3
Übungsblätter
Im Netz werden Übungsblätter zur selbständigen Bearbeitung
bereitgestellt. Übungsblätter sollen praktische Kenntnisse und
Fertigkeiten vermitteln
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:
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.
⇒ Übungsblätter werden korrigiert
Abgabe in Kleingruppen (Details in den Übungen)
0-4
Prüfungsleistungen
Prüfungsleistung: Klausur (90 Minuten)
Abtestat, unbenotet (GI): 50% der Übungspunkte oder Bestehen der
Klausur
Jede mündliche Prüfung setzt das Bestehen der Klausur voraus!
Klausurtermin: voraussichtlich letze Vl. Woche (31.1. - 4.2.)
Wiederholungsklausur (2. Termin) vor bzw. zu Begin des SS2010.
Fragen zur Organisation der Vorlesung & Übung?
0-5
Ziele der Vorlesung
Die Teilnehmer sollen am Ende der Vorlesung:
wissen, wie ein modernes Betriebssystem aufgebaut ist,
die einschlägigen Algorithmen und Strategien zur effizienten
Verwaltung und fairen Vergabe von Betriebsmitteln kennen,
die Umsetzung wesentlicher Mechanismen in aktuellen
Betriebssysteme beispielhaft kennen lernen,
ein Verständnis für die gegenwärtigen und künftigen Trends in
Betriebssystemen entwickeln.
0-6
Inhalte der Vorlesung
Struktur eines Betriebssystems (Mikrokernarchitektur)
Prozesse und ihre Implementierung
Prozessinteraktion (Synchronisation und Kommunikation)
Betrieb von Geräten
Betriebsmittel- und Speicherverwaltung
Dateiverwaltung, virtueller Speicher
Programmverwaltung
Sicherheitsaspekte in Betriebssystemen
Beispiele aus Unix, Windows und anderen BS
0-7
Vorlesungsstil
im wesentlichen Folien
selten Tafelanschrieb
Folien werden in Form eines Folienskriptums zur Verfügung gestellt:
als PDF-Dokumente im WWW (kurz vor der jeweiligen Vorlesung)
Kleinere Abweichungen (insb. Korrekturen) möglich
Zwischenfragen in der Vorlesung grundsätzlich erwünscht!
0-8
Darstellung der Mechanismen
Ablaufdiagramme
vermitteln eine Konstruktions- oder Organisationsidee unter Verzicht
auf Sprach- und Implementierungsdetails.
Programmskizzen
erlauben eine weitere Präzisierung einer Konstruktionsidee oder eines
Ablaufs.
Auch hier i.d.R. Verzicht auf syntaktische Details einer konkreten
Programmiersprache.
0-9
Beispiel für ein Ablaufdiagramm
Auftrag annehmen
Betriebsmittel frei?
ja
nein
Betriebsmittel belegen
Auftrag löschen
Erledigung melden
0-10
Beispiel für eine Programmskizze
...
q:= first(OR)
if (∃ i: resource[q.type, i] = free)
then
begin
resource[q.type,i]:= occupied;
remove(OR);
send(q.process_id, i);
// examine outstanding requests
// check if satisfiable
//
//
//
//
allocate one unit of resource
remove request from queue
send no. of allocated
unit to requesting process
end
end
...
0-11
Worum geht’s in dieser Vorlesung?
Diese Veranstaltung ist
weder ein Programmierkurs
noch eine Einführung in Unix, DOS, VMS, MVS, WindowsXP, OS/2,
Mach, Chorus, BeOS, Linux, MacOS, PalmOS, Symbian . . .
Zielgruppe: Nicht nur die Benutzer heutiger Computersysteme,
sondern vielmehr die Nutzer und Entwickler zukünftiger Systeme.
Denken Sie beim Einsatz von Betriebssystemen nicht nur an
konventionelle Rechner (PCs, Arbeitsplatzrechner, Großrechner).
Das Spektrum ist viel größer!
Betriebssysteme gibt es auch:
unter der Motorhaube
im Flugzeug-Cockpit
in der Waschmaschine
auf der Chipkarte, z. B. im Handy
0-12
0.1 Literaturhinweise
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
Kapitel 1
BS: Aufgaben und historische
Entwicklung
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
1-15
Betriebssystem: Motivation
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-16
Formale Definition und Aufgaben
Betriebssystem (Definition nach DIN 44300)
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
Sicherheitsvorkehrungen
1-17
Rechensystem
Ein Rechensystem besteht aus Hardware, Systemprogrammen und
Anwendungsprogrammen.
Quelle: Tanenbaum 2003.
1-18
Betriebssystemarchitektur
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.“
Neue Anwendungen
Betriebssystem
Markt
Qualitätsmerkmale:
• Sicherheit
• Echtzeit
• Mobilität
• Energieverbrauch
• Verlässlichkeit
Hardware
• ...
1-19
Betriebssysteme für Universalrechner
Zwei Ebenen: sichtbar und unsichtbar für den Anwender.
Betriebssystem: Bedienung und Kontrolle
Anwendung
Anwendung
Anwendung
Betriebssystem: Verwaltung und Betrieb
Hardware
1-20
Betriebssystem: Zwei Sichten
Zwei mögliche Sichten auf das Betriebssystem:
Virtuelle Maschine (Top-Down Sicht):
Bietet dem Programmierer eine abstrakte, einfache Sicht auf die
Hardware an.
Reale, low-level Eigenschaften werden versteckt.
Beispiel Festplatte/Dateisystem:
Reale Maschine (Hardware): Folge von Datenblöcken fester Größe
Virtuelle Maschine (BS): Benannte Dateien variabler Größe
Ressourcenmanager (Bottom-Up Sicht):
Verwaltet Prozessoren, Speicher, Platten, Terminals, . . .
Koordiniert den Zugriff von Anwendungen auf Ressourcen.
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).
1-21
Historischer Abriss: Die 50er Jahre
Erste Anfänge
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
Zunächst einzeln.
Später Stapel-Verarbeitung (Batch-Betrieb), mit Lochkarten.
Die Betriebssystemfunktion beschränkt sich hierbei auf
Unterstützung bei der Ein-/Ausgabe.
Umwandlung von Zahl- und Zeichendarstellungen.
1-22
Historischer Abriss: Die 60er Jahre
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.
Der Prozess wird auch internes Strukturierungsmittel für BS.
Auch der Speicher wird virtualisiert“ (virtueller Speicher).
”
Interaktiver Betrieb durch mehrere Benutzer (Timesharing).
Prototypen bzw. Vorläufer heutiger Großrechner-BS entstehen
(OS/360, CTSS/ Multics, CP67, VMOS/BS2000).
1-23
Beispiel: Betriebssystem OS/360 von IBM
OS/360: Versuch, ein BS für alle unterschiedlichen Computer einer
Serie (IBM/360) zu schaffen.
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).
Spooling: Jobs von Karten auf Platten einlesen und dann abarbeiten.
Timesharing:
Man wollte den Rechner wieder für sich alleine“ haben.
”
Virtuelle Maschinen, online-Zugang über Terminals.
1-24
Historischer Abriss: Die 70er Jahre
Software Engineering
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).
Erstmalig Einsatz höherer Programmiersprachen (z. B. C) für
BS-Implementierung.
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.
1-25
Historischer Abriss: Die 80er Jahre
Verteilte Systeme
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.
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.
Idee wird später von MS Windows übernommen.
1-26
Historischer Abriss: Die 80er Jahre (Forts.)
Parallelitätskonzepte werden in Programmiersprachen aufgenommen.
Sie ermöglichen verteiltes (paralleles) Rechnen auf Supercomputern
und Netzen von Arbeitsplatzrechnern.
Unix hat im Arbeitsplatzrechner ein ideales Vehikel zur Verbreitung
und wird zum Quasi-Standard.
Notwendigkeit der Integration ⇒ Standardisierungsaktivitäten (OSI,
TCP/IP, NFS, POSIX, OSF, X/OPEN, OMG, ODP).
Betriebssysteme überwinden Rechnergrenzen: Von der
Rechnerkommunikation zum Verbundsystem (Verteiltes System).
1-27
Historischer Abriss: Die 90er Jahre
Hochparallele und Eingebettete Systeme, Multimedia,
Interoperabilität
Infolge hoher Stückzahlen werden einfache Mikroprozessoren relativ
billig ⇒ Zusammenschaltung tausender Mikroprozessoren bringt oft
höhere Leistung bei geringerem Preis als ein Supercomputer.
Neue BS-Funktionen zur Unterstützung der Parallelverarbeitung.
Multimedia-Anwendungen erfordern Unterstützung von Audio- und
Videodaten (Echtzeit bzw. Real-time).
Software in eingebetteten Systemen benötigt BS-Unterstützung (z. B.
Consumer Electronics).
Verteilte Systeme in heterogenen Umgebungen ⇒ Interoperabilität
(DCE, CORBA)
Emulation anderer BS-Schnittstellen, d. h. mehrere BS-Welten auf
demselben Rechner.
1-28
Historischer Abriss: Aktuelle Themen
Multicore-, Cluster- und Grid-Computing
Sicherheit
Robustheit und Verfügbarkeit
Energiemanagement (mobile Geräte)
Benutzerschnittstellen
1-29
Herunterladen