Betriebssysteme und Systemprogrammierung
Aktuelles
Start der Vorlesung, am Mittwoch, den 11.10.2023
Ab WS 23/24 muss eine Klausurzulassung erworben werden! Dies erfolgt durch eine erfolgreiche Teilnahme an der praktischen Probeklausur.
Alle Materialien (inkl. Links zu den Videos) finden Sie >>> hier <<<
1. Klausur: 7.2.2024, 2. Klausur: 26.3.2024
Dozent
Prof. Dr. Michael Schöttner
Studiengang
Bachelor-Studiengang Informatik
Materialien
Finden Sie hier.
Leistungspunkte
10 LP (Arbeitsaufwand 300 Stunden; Kontaktzeit 90 Stunden; Selbststudium 210 Stunden)
Lehrveranstaltungen
- Vorlesung „Betriebssysteme und Systemprogrammierung“, 4 SWS, Mi. 10:30 - 12 Uhr, HS 5M + Do. 10:30 - 12 Uhr, HS 5G
- Übungen, Fr. 08:30 - 10 Uhr, HS 5M
Inhalte
- C Programmierung
- Bibliotheken, Binder und Lader
- Prozesse und Threads
- Scheduling: verschiedene Verfahren (Multilevel, Feedback, Echtzeit), Fallstudien: Linux, Windows, ...
- Synchronisierung: Mutex, Semaphore, Verklemmungen, sperrfreie Synchronisierung
- Hauptspeicher: Heap, Stack, Speicherverwaltung, Garbage Collection
- Virtueller Speicher: ein und mehrstufig, invertierte Seitentabellen, Auslagerungsstrategien, Speicherverwaltung in Linux
- Sekundärspeicher: Aufbau einer Festplatte/SSD, Partitionen, Speicherverwaltung
- Dateisysteme: FAT, UNIX, ext4, NTFS (mit Journaling)
- Interprozesskommunikation: Signale, Message Queue, Pipes, Shared-Memory, Sockets
- Ein- und Ausgabe: Interrupts, E-/A-Software, Linux Kernel Module und Gerätetreiber
- Sicherheit: Zugriffskontrolle, HW-Schutz, Angriff durch Pufferüberlauf, Meltdown, Address Space Layout Randomization, Kernel Page Table Isolation
- Architekturen: Monolithen, Mikrokerne, virtuelle Maschinen, Client/Server
Lernergebnisse/Kompetenzen
Nach erfolgreicher Teilnahme an den Veranstaltungen dieses Moduls können die Studierenden:
- das Zusammenspiel von Betriebssystem-Kern, Treiber und Hardware in eigenen Worten beschreiben
- Betriebssystemkonzepte in eigenen Worten erklären und miteinander vergleichen
- Systemprogramme in der Sprache C auf Basis der Systemaufrufschnittstelle UNIX entwickeln
- einfache parallele Programme mit mehreren Threads und geeigneten Synchronisierungslösungen konzipieren und programmieren
- Sicherheitsprobleme und Gegenmaßnahmen durch das Betriebssystem und den Hardwareschutz (am Beispiel der x86 Architektur) erklären
Literatur
- Andrew S. Tanenbaum: „Modern Operating Systems”, 4. Auflage, Prentice Hall, 2014.
- W. Stallings, "Operating Systems: Internals and Design Principles", Prentice Hall, 2017.
Verwendtbarkeit des Moduls
- Wahlbereich Bachelor-Studiengang PO 2021
- Wahlpflicht- und Schwerpunktbereich Bachelor-Studiengang PO 2013 und PO 2016
- Individuelle Ergänzung im Master-Studiengang Informatik
- Anwendungsfach im Bachelor-Studiengang Mathematik und Anwendungsgebiete
- Nebenfach im Bachelor-Studiengang Physik
- Nebenfach im Bachelor-Studiengang Medizinische Physik
Teilnahmevoraussetzungen
- Inhalte der Programmierung und Rechnerarchitektur
Voraussetzungen für die Vergabe von Leistungspunkten
- Erfolgreiche Teilnahme an der Prüfung am Ende der Veranstaltung.
- Die Klausur besteht aus zwei Teilen. 50% praktische Programmieraufgaben am PC und 50% Aufgaben auf Papier
Häufigkeit des Angebots, modulare Schiene
Jedes Wintersemester
Modulbeauftragte und hauptamtliche Lehrende
Prof. Dr. Michael Schöttner