Betriebssysteme und verteilte Systeme

Prof. Dr. Matthias Böhmer, Prof. Dr. Lutz Köhler

Kreditpunkte
5
Studiensemester
4
Sprache
deutsch
Kürzel
BS1
Voraussetzungen nach Prüfungsordnung
keine

Empfohlene Voraussetzungen

Einführung in die Medieninformatik, Algorithmen und Programmierung

Kurzbeschreibung

Systemprogrammierung am Beispiel von UNIX.

Lehrform/SWS

4 SWS: Vorlesung 2 SWS; Praktikum 2 SWS

Arbeitsaufwand

Gesamtaufwand 150h, davon

  • 36h Vorlesung
  • 36h Praktikum
  • 78h Selbststudium

Angestrebte Lernergebnisse

Die Studierenden können den Aufbau von Betriebssystemen am Beispiel UNIX erläutern, indem sie - die Ziele der Entwicklung von UNIX nennen und beschreiben, - die Hauptaufgaben von Betriebssystemen nennen und beschreiben, - den Aufbau von Betriebssystemen darstellen und erklären,

um die verschiedenen Bestandteile und Konzepte von Betriebssystemen nutzen zu können.

Die Studierenden können eigene C-Programme für verteilte Systeme erstellen, indem sie - einen Computer über die Shell bedienen und dort eigene Programme ausführbar machen, - Daten mittels Systemschnittstellen in Dateien speichern, daraus lesen und diese verwalten, - Sockets für Client- und Serverprogramme nutzen und Daten darüber senden und empfangen, - Prozesse für nebenläufige Programmabläufe erzeugen, - Kommunikation zwischen Prozessen mit Shared Memory, Pipes und Message Queues realisieren, - Race Conditions erkennen, kritische Abschnitte festlegen und Prozesse synchronisieren, - die Lösungen klassischer Synchronisationsprobleme kennen und nutzen,

um später hardware- oder systemnahe Software für verteilte Systeme zu entwickeln oder zu bewerten, bspw. im Bereich »Internet of Things«

Die Studierenden können theoretische Grundlagen von Betriebssystemen erörtern, indem sie - Programme und Prozesse unterscheiden und letztere mit ihren Zuständen modellieren, - verschiedene Strategien für das Scheduling von Prozessen anwenden und bewerten, - die Organisation des Speichers auf einem Datenträger erklären und darstellen, - die Abbildung von Prozessen im Arbeitsspeicher erklären und verschiedene Ansätze zur Verwaltung erläutern,

um später Auswirkungen von Betriebssystemvorgängen auf eigene Programme zu erkennen und darauf zu reagieren.

Inhalt

Systemprogrammierung am Beispiel von UNIX: - Shell-Programmierung - Prozess-Modelle - Prozess-Erzeugung und Synchronisation - UNIX-Prozesse und elementare Synchronisation - Pipes - Shared Memory - Synchronisationsprimitive für den wechselseitigen Ausschluss - Semaphoren - Nachrichtenwarteschlangen - Dateisysteme - TCP/IP - Sockets - Remote Procedure Call - Strategien zum Scheduling und zur Speicherverwaltung - Klassische Synchronisationsprobleme

Studien-/Prüfungsleistungen

Schriftliche Prüfung, sowie erfolgreiche Teilnahme am Praktikum als Prüfungsvorleistung.

Medienformen

Foliensammlung, ausformuliertes Skript, Beispiellösungen

Literatur

  • Tanenbaum, A. S.: „Moderne Betriebssysteme“
  • Brown, C.: „Programmieren verteilter UNIX-Anwendungen“
  • Kernighan, B. W., Pike, R.: „Der UNIX-Werkzeugkasten“
  • Ehses, E., Köhler, L., Stenzel, H., Victor, F. „Betriebssysteme: Ein Lehrbuch mit Übungen zur Systemprogrammierung in UNIX/Linux“