"Betriebssysteme I / Betriebssysteme und nebenläufige Programmierung" (Vorlesung + Übung) Sommer 2023
- Einführung in die Grundkonzepte moderner Betriebssysteme für Arbeitsplatzrechner und Server
- Schwerpunkte: Synchronisation, Nebenläufigkeit und Speicherverwaltung
- Voraussetzungen: Grundkenntnisse der Informatik (Algorithmen und Datenstrukturen, Objektorientierte und funktionale Programmierung)
- Details:
siehe Modulbeschreibung in unisono (Reiter 'Inhalte')
- Link zu Informationen in unisono (Termine etc.): Vorlesung, Übung
Ankündigungen
21.08.2023 | Die Klausur findet am Do. 24.08.2023 um 12:00 Uhr im Raum H-C 3305 statt. Klausurdauer: 60 Min., ohne Hilfsmittel. |
27.03.2023 | Alle Studierenden der folgenden Studiengänge benötigen eine Studienleistung, um das Modul "Betriebssysteme I" bzw. "Betriebssysteme und nebenläufige Programmierung" erfolgreich abzuschließen:
Bitte vergessen Sie nicht, sich zur Studienleistung "4INFBA011-S - Studienleistung Betriebssysteme und nebenläufige Programmierung" in unisono anzumelden! |
27.03.2023 | Im Moodle-Kurs finden Sie noch Screencasts der Vorlesung und Aufzeichnungen der Übungen aus dem WiSe 19/20. |
27.03.2023 | Vorlesungsbeginn: Do., 06.04.2023, Übungsbeginn: Fr., 14.04.2022 |
Vorlesungsunterlagen
- Vollständiger Foliensatz (2 SWS / 5 LP Version, Stand:13.07.23 ): Originalgröße, 2 auf 1
- Vollständiger Satz der Ergänzungsfolien (für 3 SWS / 6 LP, Stand:14.07.23
): Originalgröße,
2 auf 1
- Foliensätze (werden im Verlauf der Vorlesung aktualisiert):
0. Organisation 06.04.23
Originalgröße 2 auf 1 1. Einführung 27.04.23
Originalgröße 2 auf 1 2. Prozesse und Threads 06.07.23
Originalgröße 2 auf 1 3. Prozeßinteraktion 06.07.23
Originalgröße 2 auf 1 4. Verklemmungen 06.07.23
Originalgröße 2 auf 1 5. Scheduling 06.07.23
Originalgröße 2 auf 1 6. Speicherverwaltung 06.07.23
Originalgröße 2 auf 1 7. Ein-/Ausgabe und Dateisysteme 06.07.23
Originalgröße 2 auf 1 8. Schutz 06.07.23
Originalgröße 2 auf 1 9. Zusammenfassung wichtiger Themen 04.05.23
Originalgröße 2 auf 1 - Ergänzende Foliensätze für 3 SWS / 6 LP (werden im Verlauf der Vorlesung aktualisiert):
A. Nebenläufige Programmierung: Grundlagen 04.04.23
Originalgröße 2 auf 1 B. Threads 02.06.23
Originalgröße 2 auf 1 C. Synchronisation über gemeinsame Variable 02.06.23
Originalgröße 2 auf 1 D. Threadschnittstellen: Synchronisation 02.06.23
Originalgröße 2 auf 1 E. Koroutinen und asynchrone Programmierung 06.07.23
Originalgröße 2 auf 1 F. Modellierung nebenläufiger Auläufe 02.06.23
Originalgröße 2 auf 1 G. Ergänzungen zu Scheduling 04.04.23
Originalgröße 2 auf 1 H. Ergänzungen zu Dateisysteme 04.04.23
Originalgröße 2 auf 1 I. Virtualisierung 06.07.23
Originalgröße 2 auf 1 - Die Foliensätze in Originalgröße enthalten auch alle Animationen, die 2-auf-1 Versionen ggf. weitere Anmerkungen.
Übungen / Musterlösungen
Übung | Ausgabe | Abgabe (nur 6 LP) | Besprechung | Aufgabenblatt | Musterlösung | |
1 | 06.04. | --- | 14.04. | Übungsblatt |
Lösung |
|
2 | 13.04. | --- | 21.04. | Übungsblatt |
Lösung |
|
3 | 20.04. | --- | 28.04. | Übungsblatt |
Lösung |
|
4 | 27.04. | --- | 05.05. | Übungsblatt, Code |
Lösung |
|
5 | 04.05. | 12.05., 12:00 | 12.05. | Übungsblatt |
Lösung |
|
6 | 11.05. | --- | 19.05. | Übungsblatt |
Lösung |
|
7 | 25.05. | 02.06., 12:00 | 02.06. | Übungsblatt |
Lösung |
|
8 | 01.06. | 09.06., 12:00 | 09.06. | Übungsblatt, Code |
Lösung |
|
9 | 15.06. | 23.06., 12:00 | 23.06. | Übungsblatt, Code |
Lösung |
|
10 | 22.06. | 30.06., 12:00 | 30.06. | Übungsblatt, Code |
Lösung |
|
11 | 29.06. | 07.07., 12:00 | 07.07. | Übungsblatt, Code |
Lösung |
|
12 | 06.07. | 14.07. | Übungsblatt |
Lösung |
Materialien
- Java Synchronisations-Paket für die Übungen Beispielcodes
- Erzeuger/Verbraucher-Problem
in Java
Drei Implementierungen: reines Java; mit Semaphoren; mit Mutex und Bedingungsvariablen. Incl. JAR-Archiv des Synchronisationspakets BSsync.
Simulation verschiedener Synchronisationsprobleme aus der Vorlesung
- Sie können sich hier ein Java-Programm herunterladen, mit dem Sie verschiedende Synchronisationsprobleme aus der Vorlesung simuliert ausführen können.
- Starten Sie das Programm mit dem Kommando java -cp Demo.jar Demo.
- Sie erhalten dann eine kurze Hilfestellung, wie Sie die verschiedenen Synchronisationsprobleme ausführen können.
Z.B. können Sie mit java -cp Demo.jar Demo LeserSchreiber leser=3 schreiber=3
das Leser-Schreiber-Problem mit 3 Lesern und 3 Schreibern ausführen. - Wenn Sie ein Synchronisationsproblem ausführen, druckt das Programm auch eine kurze Erläuterung dazu.
Musterklausur
- Musterklausur (alte Klausur aus dem WS 04/05)
- Test zur Selbstkontrolle, Lösung dazu (bitte erst nach der Bearbeitung des Tests ansehen!)
Literatur
- Andrew S. Tanenbaum, Herbert Bos: Moderne Betriebssysteme, 4. Auflage, Pearson Studium, 2016.
- William Stallings: Betriebssysteme, 4. Auflage, Pearson Studium, 2003.
- William Stallings: Operating
Systems -- Internals and Design Principles, 8. Auflage, Pearson
Education, 2015.
- Johann C. Strelen: Betriebssysteme
und parallele Programme (kostenloser Download)