Inhalt
Inhalt |
In einem kleinen Softwareprojekt soll die Programmierung von Systemprogrammen unter Linux erlernt werden. Die in der Vorlesung Betriebssysteme vorgestellten Konzepte von Multitasking und Interprozesskommunikation werden an einem praktischen Beispiel erprobt und vertieft. Realisiert wird der Server zu einem Client-Server-System auf Linux unter Verwendung von Multi-Threading und IPC-Techniken wie Nachrichtenaustausch über Sockets, Message Queues und Synchronisation über Mutual Exclusion und Semaphore. Der Client mit grafischer GUI wird zu Verfügung gestellt. Der Server wird in einem Team von 2 Studenten in mehreren Stufen entworfen und implementiert: - Realisierung einer einfachen Client-Server Anwendung unter Verwendung von Linux-Sockets - Festlegung eines Kommunikations-Protokolls zwischen Client und Server - Realisierung der Client-Server Anwendung unter Einhaltung des Netzwerkprotokolls - Test und Endabnahme des Servers mit einem gegebenen Test-Client |
Literatur |
H. Herold: Linux - Unix Systemprogrammierung, Addison Wesley ISBN 3-8273-1512-3
W. Richard Stevens: Programmierung in der Unix Umgebung, Addison Wesley, ISBN 3-89319-814-8
Michael Kerrisk: The Linux Programming Interface: A Linux and UNIX System Programming Handbook1. Oktober 2010
Jürgen Wolf: Linux-UNIX-Programmierung, Rheinwerk openbook
Markus Zahn: Unix-Netzwerkprogrammierung mit Threads, Sockets und SSL (X.systems.press), Springer Verlag, 2006
Lernplattform Moodle der Hochschule Ravensburg-Weingarten: Kurs Systemprogrammierung |
Lernziele |
- Planen, Entwerfen und Realisieren komplexer Softwaresysteme in einem Projektteam
- Programmierung nebenläufiger Prozesse und Threads unter Linux
- Anwendung von Systemfunktionen unter Linux zur Interprozesskommunikation und Synchronistaion von Threads und Prozessen
- Verwaltung von Softwaremodulen mit einer Versionsverwaltungs-Software (Git) |
Voraussetzungen |
Programmieren in C, Betriebssysteme |
Leistungsnachweis |
AI lt. aktueller SPO: PF oder K90 Prüfungsleistung: Portfolio lt. aktueller Festlegung der Prüfungsleistungen
IP lt. aktueller SPO: Portfolio
Die Portfolioprüfung besteht aus: einer Projektabnahme (50%, inklusive Code-Review, Funktionstest und mündlicher Befragung) sowie einem 90-minütigen, praktischen Abschlusstest an den Laborrechnern (50%).
|