Prof. Dr.-Ing. Hans-Georg Eßer
Systemprogrammierung, Betriebssystem-Entwicklung
Studiengang Informatik, TH Nürnberg

ohm.hgesser.de


Navigation
Startseite
Impressum
Vorlesungsarchiv
BS-Entwicklung
mit Literate
Programming
WS 2015/16
Übersicht
Folien / Videos
Evaluation
Systempro-
grammierung
Linux/Unix
SS 2015
Übersicht
Folien / Audio
Evaluation
BS-Entwicklung
mit Literate
Programming
WS 2014/15
Übersicht
Folien / Videos
Evaluation
Systempro-
grammierung
Linux/Unix
SS 2014
Übersicht
Folien / Videos
Evaluation
BS-Entwicklung
mit Literate
Programming
WS 2013/14
Übersicht
Folien / Videos
Evaluation
Systempro-
grammierung
Linux/Unix
SS 2013
Übersicht
Folien / Videos
Evaluation
Systempro-
grammierung
Linux/Unix
SS 2012
Übersicht
Folien / Videos
Evaluation
Über den Dozenten
Homepage [extern]
Veröffentlichungen
Didaktik-Fortbildungen
Vorlesungen an der ...
  - FH Südwestfalen
  - Hochschule München
  - FOM Hochschule
  - Hochschule
    Albstadt-Sigmaringen
TH Nürnberg
Homepage
 

Systemprogrammierung (SS 2013)

Hier finden Sie Informationen und Material zu meiner Vorlesung "Systemprogrammierung Unix/Linux" an der TH Nürnberg.

Systemprogrammierung Unix/Linux (SS 2013)

Im Sommersemester 2013 habe ich Vorlesungen im Fach Systemprogrammierung Unix/Linux gehalten.

Vorlesungsstart war am 19. März um 15:45 Uhr.

Unterlagen benötigen Sie zunächst keine; ich stelle im Laufe des Semesters die verwendeten Vorlesungsfolien im PDF-Format zum Download zur Verfügung. Übungsblätter bringe ich als Ausdrucke mit. Wenn Sie im Praktikum ein eigenes Notebook verwenden möchten, ist das möglich. Darauf sollten dann Linux und die Entwicklungsumgebung (C-Compiler & Co.) installiert sein. Sie können aber auch die Linux-PCs im Praktikumsraum nutzen.

Als Prüfungsform finden Sie im Vorlesungsverzeichnis den Eintrag "Studienarbeit (semesterbegleitende Entwicklung eines Programms mit abschließendem Kurzvortrag)". Sie werden im Rahmen des Praktikums eine kleine systemnahe Anwendung unter Linux entwickeln und zum Semesterende kurz (nach inhaltlicher Absprache) über einen Aspekt Ihrer Lösung vortragen und Fragen dazu beantworten.

Inhalte

Die folgende Themenplanung ist provisorisch; die exakten Themen (die nicht genau deckungsgleich mit denen vom letzten Sommersemester sein werden) hängen von den Projektaufgaben ab. (Es wird neue Projektaufgaben geben, nicht die alten vom SS 2012.)

  1. Einleitung
  2. Einführung in C und die Linux-Shell Bash
  3. Software und Betriebssystem; System Calls
  4. Prozesse: fork, exec, wait
  5. Dateien: open, read, write, close
  1. Fortgeschrittene I/O (dup, pipe, mmap)
  2. Speicherverwaltung: malloc, free
  3. Nebenläufigkeit mit POSIX-Threads
  4. Projekt: Implementierung einer Thread-Bibliothek

Aktuelles

[2013/07/04] Die Ergebnisse der Abschlussevaluation sind online.
[2013/07/02] Bitte bewerten Sie meinen Kurs (sinnvollerweise nach Erhalt der Note) auch bei meinprof.de. Direkter Link zur Kursseite
[2013/06/28] Der Ersatztermin für den 09.07. steht jetzt fest: Donnerstag, 04. Juli, 15:45-19:00 Uhr in Raum 305
[2013/06/25] Deadline verlängert: Der Abgabetermin ist jetzt Sonntag, 30. Juli um 10 Uhr morgens!
[2013/06/25] Bitte nehmen Sie an der Doodle-Umfrage teil -- wir suchen einen Ersatztermin für den 09.07.
[2013/05/28] Ich habe die Aufgaben aus Übung 9 auf 64-Bit-Linux portiert und als separates Archiv nochmal auf diese Seite gestellt (siehe unten, fett gedruckt). Damit sollten sich die Stack-Aufgaben auch auf den Rechnern im Rechnerpool nachvollziehen lassen. Beim Kompilieren dann die Option -m32 nicht verwenden (aber beim Thread-Programm an -lpthread denken).
[2013/04/30] Wir setzen heute in der Übung die Bearbeitung der Aufgaben von letzter Woche fort; gleichzeitig gibt es auch ein neues Übungsblatt.
[2013/04/30] Die Musterlösungen zu den Übungen 2-4 sind jetzt online (Code-Archive und zu Übung 3 auch eine PDF-Datei).
[2013/04/23] Die Ergebnisse der Evaluation sind online -- danke fürs Mitmachen!
[2013/02/06] Die Termine für das kommende Semester stehen fest.

Material

Termine:

  • Dienstags, 15:45-17:15: Vorlesung
  • Dienstags, 17:30-19:00: Übung

Die Folien können Sie in zwei Varianten herunterladen: 1-up (eine Folie pro A4-Seite) und 4-up (vier Folien pro A4-Seite).

#Tag ThemaFolien (pdf), Übungen, LösungenVideo (mov)
119.03.2013 Einführung, Organisatorisches,
Crashkurs C / Bash
(1.1-1.21, 2.1-2.16)
Foliensatz 1: 1-up, 4-up
Foliensatz 2: 1-up, 4-up
Übung 1: ue01.pdf, Code: ue01.tgz
#1 (97 MB), #2 (19 MB)
226.03.2013 Crashkurs Bash (2.17-2.49) Übung 2: ue02.pdf
Lösung: ue02-loesung.tgz
#1 (87 MB), #2 (17 MB)
309.04.2013 Crashkurs Bash (Rest),
System Calls
(2.50-2.66, 3.1-3.17)
Foliensatz 3: 1-up, 4-up; Übung 3:
ue03.pdf, Code: ue03.tgz; Lösung:
ue03-loesung.tgz
#1 (97 MB), #2 (17 MB)
416.04.2013 System Calls (Rest), Prozesse
(3.18-3.36, 4.1-4.20)
Lösung Ü3
Foliensatz 4: 1-up, 4-up
Übung 4: ue04.pdf, Code: myps.c
Lösung: myps1.c, myps2.c
#1 (97 MB), #2 (28 MB)
523.04.2013 Prozesse (Rest), Dateien,
Evaluation (4.21-4.26, 5.1-5.28)
Lösung Ü4
Foliensatz 5: 1-up, 4-up
Übung 5: ue05.pdf, Code: ue05.tgz,
Lösung: ue05-loesung.tgz
#1 (78 MB), #2 (23 MB)
630.04.2013 Fortgeschrittene I/O,
Besprechung Eval. (6.1-6.22)
Foliensatz 6: 1-up, 4-up
Übung 6: ue06.pdf, Code: ue06.tgz,
Lösung: ue06-loesung.tgz
#1 (97 MB)
707.05.2013 Mehr zu C (2a.1-2a.9),
Speicherverwaltung (7.1-7.21)
Lösung Ü5
Foliensatz 2a: 1-up, 4-up
Foliensatz 7: 1-up, 4-up; Übung 7:
ue07.pdf, Lösung: spsh-ramdisk.c
#1 (90 MB), #2 (23 MB)
814.05.2013 Speicher (Rest; 7.22-7.28);
Threads (8.1-8.24); Lösung Ü6
Foliensatz 8: 1-up, 4-up; Übung 8:
ue08.pdf; Link zu Thread/Fork-Artikel
Lösung: ue08-loesung.tgz
#1 (83 MB), #2 (24 MB)
928.05.2013 Einführung Projekt;
Lösung Ü7 und Ü8
Foliensatz 9: 1-up, 4-up;
Übung 9: ue09.pdf, Code: ue09.tgz,
ue09-64bit.tgz (64-Bit-Version)
#1 (100 MB)
1004.06.2013 Besprechung von Übung 9; Projekt Übung 10: ue10.pdf, Code: ue10.tgz #1 (62 MB)
1111.06.2013 Projekt (ohmthread_create,
ohmthread_exit)
Übung 11: ue11.pdf, Code: ue11.tgz --
1218.06.2013 Projekt
(ohmthread_join, Bibliothek)
Übung 12: ue12.pdf, Code: ue12.tgz --
1325.06.2013 Projekt Übung 13: ue13.pdf, Code: ue13.tgz --
1402.07.2013 Projekt-Vorträge (1) -- --
1504.07.2013 Projekt-Vorträge (2), Raum 305 -- --

Literatur

  • Helmut Herold: Linux/Unix Systemprogrammierung, 2004, ISBN: 3827321603
  • Richard Stevens und Stephen A. Rago: Advanced Programming in the Unix Environment, ISBN: 0321525949 (2005), 0321637739 (neue Auflage, erscheint 05/2013)
  • Elias Fischer: Das C-Tutorial
  • Ted Jensen: A Tutorial on Pointers and Arrays in C, 2003

Evaluation, MeinProf...

Ich evaluiere alle Veranstaltungen. Zu den verschiedenen Vorlesungen finden Sie die Auswertungen der Evaluationen auf einer separaten Seite.

Unabhängig von den regelmäßigen Evaluierungen würde ich mich freuen, wenn Sie meine Veranstaltung auch auf MeinProf.de bewerten; mein Profil finden Sie hier.

Hier ist der direkte Link zur Kursseite bei meinprof.de.


Copyright © 2012-2017 Hans-Georg Eßer. Letzte Änderung: Monday, 02-Jan-2023 15:31:50 CET
Anschrift: Technische Hochschule Nürnberg, Fakultät Informatik, Hohfederstr. 40, 90489 Nürnberg