"Betriebssysteme und nebenläufige Programmierung" (Vorlesung + Übung) Sommer 2024
- 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
- Link zu Informationen in unisono (Termine etc.): Vorlesung, Übung
- Link zum Moodle-Kurs (u.a. Vorlesungs-Aufzeichnungen und Abgabe der Lösungen für die Studienleistung)
Ankündigungen
05.11.2024 | Die nächste Klausur findet voraussichtlich am Do., 13.03.2025, 12:00 Uhr (s.t.) im Raum H-C 3303 statt. |
26.04.2024 | NEU: Ab sofort gibt es eine Web-Applikation, mit der Sie sich einen individuellen Studienverlaufsplan (für Bachlor / Master Informatik) erstellen können. Die Applikation prüft dabei den Verlaufsplan, ob alle Vorgaben der Prüfungsordnung eingehalten werden, gibt Hinweise über inhaltliche oder formale Abhängigkeiten, Empfehlungen zur Wahl von Modulen aus anderen Vertiefungskatalogen, und vieles mehr. Der Studienverlaufsplan wird auf unserem Server gespeichert, kann aber auch als PDF heruntergeladen werden. Wenn Sie uns bei der Weiterentwicklung der Applikation unterstützen wollen, nehmen Sie bitte auch an der Umfrage teil! |
13.02.2024 | Die Vorlesung ist dreistündig. Sie findet Donnerstags jede Woche und Freitags zweiwöchentlich statt. |
14.02.2024 | Alle Studierenden, die nach einer FPO 2019 oder neuer studieren, benötigen eine Studienleistung, um das Modul "Betriebssysteme I" bzw. "Betriebssysteme und nebenläufige Programmierung" erfolgreich abzuschließen. Das betrifft u.a. folgende Studiengänge:
Bitte vergessen Sie nicht, sich bis spätestens 15. Mai (harte Frist!) zur Studienleistung "4INFBA011-S - Studienleistung Betriebssysteme und nebenläufige Programmierung" in unisono anzumelden! Ohne diese Anmeldung können Sie keine Lösungen in Moodle hochladen! |
27.03.2023 | Vorlesungsbeginn: Do., 11.04.2024, Übungsbeginn: Mo., 15.04.2024 |
Vorlesungsunterlagen
- Vollständiger Foliensatz (Stand:18.07.24
): Originalgröße,
2 auf 1
- Foliensätze (werden im Verlauf der Vorlesung aktualisiert):
0. Organisation 11.04.24
Originalgröße 2 auf 1 1. Einführung 28.06.24
Originalgröße 2 auf 1 2. Prozesse und Threads 12.07.24
Originalgröße 2 auf 1 3. Synchronisation 28.06.24
Originalgröße 2 auf 1 4. Kommunikation 28.06.24
Originalgröße 2 auf 1 5. Verklemmungen (Deadlocks) 28.06.24
Originalgröße 2 auf 1 6. Koroutinen und asynchrone Programmierung 14.06.24
Originalgröße 2 auf 1 7. Scheduling 28.06.24
Originalgröße 2 auf 1 8. Speicherverwaltung 12.07.24
Originalgröße 2 auf 1 9. Ein-/Ausgabe und Dateisysteme 12.07.24
Originalgröße 2 auf 1 10. Schutz 11.04.24
Originalgröße 2 auf 1 11. Virtualisierung 12.07.24
Originalgröße 2 auf 1 12. Zusammenfassung, wichtige Themen 12.07.24
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 | 11.04. | keine | Mo., 15.04.24 und Fr., 19.04.24 | Übungsblatt |
Lösung |
|
2 | 18.04. | keine | Mo., 22.04.24 und Fr., 26.04.24 | Übungsblatt |
Lösung |
|
3 | 25.04. | bis Fr. 03.05., 12:00 Uhr | Mo., 29.04.24 und Fr., 03.05.24 | Übungsblatt |
Lösung |
|
4 | 02.05. | keine | Mo., 06.05.24 und Fr., 10.05.24 | Übungsblatt, Code |
Lösung |
|
5 | 09.05. | bis Fr. 17.05., 12:00 Uhr | Mo., 13.05.24 und Fr., 17.05.24 | Übungsblatt, Code |
Lösung |
|
6 | 16.05. | keine | Mo., 27.05.24 und Fr., 24.05.24 | Übungsblatt |
Lösung |
|
7 | 23.05. | bis Fr. 07.06., 12:00 Uhr | Mo., 03.06.24 und Fr., 07.06.24 | Übungsblatt |
Lösung |
|
8 | 06.06. | bis Fr. 14.06., 12:00 Uhr | Mo., 10.06.24 und Fr., 14.06.24 | Übungsblatt, Code |
Lösung |
|
9 | 13.06. | bis Fr. 21.06., 12:00 Uhr | Mo., 17.06.24 und Fr., 21.06.24 | Übungsblatt, Code |
Lösung |
|
10 | 20.06. | bis Fr. 28.06., 12:00 Uhr | Mo., 24.06.24 und Fr., 28.06.24 | Übungsblatt, Code |
Lösung |
|
11 | 27.06. | bis Fr. 05.07., 12:00 Uhr | Mo., 01.07.24 und Fr., 05.07.24 | Übungsblatt, Code |
Lösung |
|
12 | 04.07. | keine | Mo., 08.07.24 und Fr., 12.07.24 | Übungsblatt |
Lösung |
|
13 | 11.07. | keine | Mo., 15.07.24 und Fr., 19.07.24 | Übungsblatt |
Lösung |
|
14 | 18.07. | keine | Do. 18.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)