Systemsoftware und systemnahe Programmierung
PANDA
Die Veranstaltung wird über diesen PANDA-Kurs abgewickelt. Siehe dort für aktuelle Infos, Unterlagen, etc.!
Veranstaltungsbeschreibung
Auf einem typischen Rechner wird meist nicht nur ein einzelnes Programm ausgeführt. Vielmehr laufen meist mehrere Programme scheinbar gleichzeitig, beispielsweise Browser, Video-Player, und Textverarbeitung. Diese Programme sind oft unabhängig von einander (Browser und Textverarbeitung), können aber auch zusammenarbeiten (etwa Browser und Videoplayer). Sie stehen also einerseits in Konkurrenz zueinander um die Ressourcen des Rechners (Speicher, CPU, ...), anderseits kooperieren sie miteinander.
Die Koordination einer solchen, scheinbar gleichzeitigen Ausführung mehrerer Programme, die Organisation des Wettbewerbs um Ressourcen ist die Aufgabe von Systemsoftware; ein typisches Betriebssystems wie Linux oder Windows ist ein Beispiel für Systemsoftware. Die Veranstaltung wird einerseits die wesentlichen Konzepte, Prinzipien und Mechanismen von Systemsoftware besprechen. Sie wird zusätzlich die Programmierschnittstelle von Betriebssystemen diskutieren, die die Erstellung von systemnaher Software erlaubt - also Software, die mit den Betriebssystem eng zusammenarbeitet.
Die Veranstaltung wird durch Übungen begleitet. Zusätzlich gibt es ein separates Praktikum, das je nach Studiengang Teil des Moduls ist oder nicht.
Lernziele
Die Studierenden sollen am Ende der Veranstaltung
- Verständnis allgemeiner Prinzipien, Konzepte, Methoden und Techniken der Informatik, insbesondere im Bereich systemnaher Software, erlangt haben,
- in Entwurfssituationen in der Lage sein, die vorgestellten Methoden sinnvoll einzusetzen, und
- allgemeine Konzepte auf explizite Situationen anwenden können.
Themen
Die Veranstaltung wird voraussichtlich folgende Themen behandeln (Details können sich noch ändern):
- Technische Grundlagen, Systemmodell
- Gemeinsame Nutzung von Ressourcen
- Prozessverwaltung, Threads
- Scheduling
- Synchronisations- und Kooperationskonzepte
- Betriebsmittelverwaltung, Verklemmungen
- Speicherverwaltung
- Verteilung und Vernetzung
- Grundideen verteilter Systeme
- Grundlagen Internet
- Warteschlangen zur Dimensionierung verteilter Systeme
- Virtualisierung