Betriebssysteme Vorlesung ¨Ubungen ¨Ubungsblätter

Werbung
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
Herunterladen