Betriebssysteme / Verteilte Systeme - BVS
(Prof. Dr. C. Vogt,
Bereich Informatik,
Institut Nachrichtentechnik,
Fakultät 07,
FH Köln)
Inhalt
Einordnung, Ziele, Voraussetzungen und Sprachliches
Die Vorlesung "Betriebssysteme / Verteilte Systeme (BVS)" ist für den Bachelorstudiengang
"Technische Informatik (Information Engineering)"
und für die auslaufende Diplomstudienrichtung "Informationstechnik" eine Pflichtveranstaltung
des dritten und vierten Semesters. Sie wird durch eine Übung und ein Praktikum ergänzt.
Ein Tutorium wird wegen sehr geringen Interesses nicht mehr angeboten.
Bachelor-Studenten können im vierten Semester wahlweise auch das Fach "Digital Systems
and Computer Architecture" bei
Prof. Hartung
belegen. Hören sie beide Fächer, so kann eines davon als
Pflichtmodul und das andere als Wahlpflichtmodul angerechnet werden.
Allerdings haben bei Überfüllung Pflichtfachteilnehmer Vorrang vor anderen Hörern.
Die Veranstaltungen sollen mit den wesentlichen Konzepten von
Betriebssystemen sowie den Grundlagen von verteilten Systemen
vertraut machen und, am Beispiel des Betriebssystems UNIX/Linux, praktische Kenntnisse
zur Systemprogrammierung vermitteln.
Vorausgesetzt werden
- die Beherrschung der Programmiersprache Java und/oder der Programmiersprache C,
- Grundkenntnisse über den Aufbau von Rechensystemen,
- Grundkenntnisse der Benutzeroberfläche eines Betriebssystems und
- (für die Teilnahme am BVS-Praktikum)
ein bestandenes Praktikum in beiden Modulen des Fachs "Praktische Informatik"
sowie bestandene Klausuren und Praktika des ersten Studienjahrs gemäß der
Verriegelungsregelung.
Zur Förderung der Internationalisierung wird die Vorlesung im Sommersemester (Modul BVS2) in englischer Sprache gehalten.
Empfehlenswerte Online-Wörterbücher sind
leo.org und
dict.cc.
Termine
Im Wintersemester 2011/12 gilt der folgende Terminplan:
- Vorlesung: Mo., 8:10 - 9:40 Uhr, ZW-8-03
- Übung: Mo., 9:45 - 11:15 Uhr, ZW-8-03
Die Übungen finden im allgemeinen in zwei Gruppen und im zweiwöchentlichen Wechsel statt.
Ausnahmen hiervon werden in der Vorlesung und auch hier bekanntgegeben;
sie betreffen insbesondere eine praktische Übung, die in kleineren Gruppen im Labor durchgeführt wird.
- Übungsgruppe A: 24.10., 5.12., 19.12., 9.1., 23.1.
- Übungsgruppe B: 24.10., 12.12., 2.1., 16.1., 30.1.
- Im Zeitraum 31.10.-28.11. finden praktische Übungen im Labor ZW-7-17 statt.
Die Termine richten sich hier nach den Praktikumsgruppen; Näheres wird bei der Vorbesprechung des Praktikums bekanntgegeben.
- Vorbesprechung Praktikum: Do., 27.10.11, 13:15 Uhr, Raum ZW-7-17 (Informatik-Labor).
Das Erscheinen ist für alle Teilnehmer Pflicht!
- Klausur: siehe Mitteilungen des Hochschulprüfungsausschusses.
Bitte beachten Sie für aktuelle Änderungen
auch die Mitteilungen in der Vorlesung und/oder meine Aushänge.
Themenübersicht
Wintersemester (BVS1):
- Einführung
Betriebsysteme: Position und Aufgaben im Rechensystem.
Nebenläufigkeit: Betriebsarten, Hard- und Softwarenebenläufigkeit.
Verteilte Systeme: Komponenten und Eigenschaften, Zusammenhang zu Betriebssystemen.
Softwarestrukturen: Lokale Betriebssysteme (u.a. Kern), verteilte Systeme (u.a. Middleware), Client-Server-Kooperation, Peer-to-Peer-Kooperation.
- Das UNIX-Betriebssystem
Schalenstruktur und Schnittstellen: Kern und Shell, Programmier- und Benutzerschnitstelle.
Benutzersicht: Kommandoausführung, Dateisystem, typische Dienste (insbes. C-Compiler).
- Nebenläufigkeit
Prozesse und Threads: allgemeine Eigenschaften,
Prozesse in UNIX,
Threads in Java.
Synchronisation (= zeitliche Koordination): Problemstellung, Spinlocks, Signale,
Semaphore (mit Anwendungsbeispielen
und Animation),
Monitore, Transaktionen, Deadlocks.
- Kommunikation (Datenaustausch)
Grundbegriffe: u.a. Shared Memory vs. Nachrichtensystem, Mailboxen und Ports, synchrone vs. asynchrone Kommunikation.
Lokale Kommunikation: Shared Memory, Pipes,
Message Queues.
Kommunikation in Rechnernetzen: Nachrichten und Protokolle, Protokollstacks, geschichtete Protokolle im OSI-Modell und im Internet,
Beispiele für Netze und Protokolle (u.a. TCP/IP), Sockets.
- Kooperation (Anbieten und Nutzen von Diensten)
Client-Server-Modell: Zeitverhalten, Fehlerbehandlung, Beispiele (Datei- und Namensdienste), Implementierung in Mehrschichtenarchitekturen.
Peer-to-Peer-Modell.
Prozeduraler Ansatz: Remote Procedure Call (RPC, u.a. in UNIX).
Objektorientierte Ansätze: Remote Method Invocation (RMI, insbes. in
Java),
objektorientierte Middleware
(CORBA),
Enterprise Java Beans.
WWW-basierte Dienste: dynamische WWW-Seiten (CGI, Servlets, JavaScript, PHP),
Web Services (SOAP).
Sommersemester (BVS2): Vorlesung in englischer Sprache
- Implementierung von Prozessen
Grundlegende Aspekte der Implementierung: Informationen über Prozesse, Dispatching und Scheduling, Exceptions und Interrupts.
Speicherkonzepte: Speicherhierarchie, Swapping,
Virtueller Speicher.
Prozesse in verteilten Systemen: Lastverteilung, Fehlertoleranz, Synchronisation.
- Dateisysteme
Grundlegende Konzepte: Dateien und Dateisysteme, logische Strukturen.
Lokale Dateisysteme: Realisierung von Verzeichnissen, Organisation der Festplatte, Leistungssteigerung und Fehlertoleranz.
Verteilte Dateisysteme: File Server und Name Server, Verteilte Dateibäume, Caching und Replikation.
- Sicherheit
Lokale Sicherheit: Zugangskontrollen, Zugriffskontrollen, Viren / Würmer / Trojanische Pferde.
Kryptographie: Einsatzmöglichkeiten, Verfahren, Schlüsselverteilung.
Sicherheit im verteilten System: Bedrohungsarten, Abwehrprinzipien, Standardverfahren und -systeme.
Datenschutz: Problemstellung, Grundprinzipien, gesetzliche Bestimmungen.
Informationen zur Klausur
Die Klausurtermine werden vom Hochschulprüfungsausschuss festgelegt.
Die Klausuren für die beiden Module BVS1 / BVS2 finden manchmal zum selben Termin statt.
Wer an beiden Klausuren teilnehmen möchte, schreibt zunächst die eine, gibt sie ab und
schreibt dann die andere. Die Reihenfolge kann man selbst festlegen. Die Bearbeitungsdauer beträgt
jeweils eine Stunde.
Zur Klausur sind beliebige schriftliche Unterlagen und ein einfacher Taschenrechner zugelassen,
aber keine weiteren elektronische Hilfsmittel (Mobiltelefon, Tab, Notebook, ...).
Bei der Stellung der Aufgaben nehme ich an, dass Sie die Foliendrucke, die ich in der
Vorlesung ausgeteilt habe, dabei haben.
Musterlösungen früherer Klausuren gibt es beim
Fachschaftsrat; zudem ist zur Prüfungsvorbereitung sicher eine
Anleitung zur systematischen Lösung von Synchronisationsproblemen interessant.
Weitere Lehrangebote
Zu den Vorlesungen sind Lehrbücher erschienen.
Außerdem gibt es
Prof. Dr. Carsten Vogt, 10.10.2011