Lecture: Systemnahe Programmierung
Course:
- Responsible: Prof. Dr. Michael Meier, Dr. Matthias Frank
- Dates: Tue. 14:30 to 16:00, weekly, AVZ III / Römerstr. 164 - HS 1
- Course number:
Exercises:
- Responsible: Dr. Matthias Frank, Matthias Wübbeling, Rafael Uetz
- Dates: t.b.a.
- Course number:
Other:
- Term: Bachelor Computer Science
- Requirements:
- Faculty: BA-INF 034/129
- Effort: 2L + 2E / 6CP
Ankündigungen - wichtige Termine
(erledigte Ankündigungen und erledigte Termine siehe ganz unten)
Die Ergebnisse der Nachklausur vom 19.03.2013 wurden am Mo 8.4.2013 in BASIS/POS eingetragen. Die bekannten Graphen mit Statistiken zum Ausfall sind hier zu finden.
Eine Klausureinsicht findet am Freitag 12.04.2013 um 13.30h statt (siehe Mailingliste).
Zulassungsliste für Nachklausur am 19.03.2013 => siehe Mail auf Mailingliste!
Ergebnisse der Modulklausur vom 06.02.2013 (Graphen mit Statistiken, Ergebnisliste nach Matrikelnr.)
Die Klausureinsicht fand am Montag 04.03.2013 statt, die Noten wurden danach in BASIS/POS eingetragen. Evtl. Abweichungen bitte umgehend bei uns melden!
Endgültige Zulassungsliste zur Teilnahme an der Prüfung (Stand Mo 28.01.2013) - bitte die begleitende Mail auf der Mailingliste beachten:
Endgültige Zulassungsliste (28.01.2013)
Vorläufige Liste vom Fr 11.01.2013, 14.45h: Zulassungsliste (Kurzform), Zulassungsliste (detailliert)
Gruppenzuteilung der Sys-Prog Übungen (Stand 16.10.2012, 21.00h) - bitte die begleitende Mail auf der Mailingliste beachten.
Klausurtermine:
- erste Prüfungsmöglichkeit: Mittwoch 6.2.2013, vormittags 10.00h bis 11.30h (Dauer 90 min.), Römerstr. 164 HS 1+2
- Wiederholungsprüfung: Dienstag 19.3.2012, vormittags 10.00h bis 11.30h (Dauer 90 min.), Römerstr. 164 HS 1
- bitte bis spätestens 30.11.2012 über BASIS/POS zur Teilnahme an der Prüfung anmelden
Krankmeldungen für Prüfungstermine werden nur als Original und mit dem Formblatt "Anlage zur Krankmeldung" akzeptiert und sind spätestens drei Tage nach dem Prüfungstermin im Prüfungsbüro Informatik einzureichen. Zusätzlich sind die Organisatoren der Systemnahen Programmierung per E-Mail über die eingereichte Krankmeldung zu informieren.
Programmiersprache C
Im Bereich der systemnahen Programmierung wird als Programmiersprache häufig kein objektorientiertes Java oder C++ verwendet, sondern C. Um die Vorlesung erfolgreich absolvieren zu können, ist die Kenntnis von C sehr wichtig.Im Modul BA-INF 014 "Algorithmisches Denken und imperative Programmierung" (aka ADiP, WS 2011/2012) wurde C als imperative Programmiersprache behandelt.
Davon unabhängig wird es in der zweiten Vorlesungswoche einen sehr kurzen Überblick über die wichtigsten Konzepte von C geben - dies kann aber auf keinen Fall eine praktische (tiefere) Einarbeitung in C ersetzen!
Der Klassiker über die Programmiersprache C ist nach wie vor das Buch von Brian W. Kernighan und Dennis Ritchie: The C Programming Language. Für Teilnehmer/innen mit Vorkenntnissen und Erfahrungen mit Java könnten die folgenden Links hilfreich sein:
- http://www.comp.lancs.ac.uk/~ss/java2c/: Kurze Einführung in C für Java-Programmierer
- http://www.cs.princeton.edu/introcs/faq/c2java.html: Tabellarische Gegenüberstellung von Java und C
Mailingliste
Für die Vorlesung Systemnahe Programmierung wurde eine Mailingliste eingerichtet, über die aktuelle Informationen zur Vorlesung und den Übungen verbreitet werden sollen. Die Anmeldung ist unter dieser Adresse möglich. Es werden nur Anmeldungen von Studenten akzeptiert, die auch für die Übungen angemeldet sind. Die Mails der Mailingliste werden archiviert.
Folien und Präsentationen
Von den Studentenrechnern des Instituts aus sind die Dateien frei zugänglich; Zugriffe von anderen Rechnern erfordern ein Paßwort, welches in den Übungen zur Vorlesung bekannt gegeben wird.
Kapitel | PDF-File |
---|---|
0. Allgemeine Informationen | Folien 1-19 |
C-Crash-Kurs für Java-Programmierer | Folien 1-37 |
1. Netzwerkprogrammierung in C1.1. Motivation | |
1.2.2. Socket-Adressen 1.2.3. Network Byte Order 1.2.4. Kommunikation über Sockets mit UDP 1.2.5. Kommunikation über Sockets mit TCP 1.2.6. Zwischenresümee, Adressübersicht, Hilfsfunktionen | Folien 44-87 |
1.3. I/O-Multiplexing 1.4. Server-Strukturen 1.5. Zusammenfassung | Folien 88-131 |
2. Maschinenprogrammierung in Assembler2.1. Motivation | Folien 1-76 |
2. Ergänzung: Fall-Studien (aktualisierte Version nach der Vorlesung vom 4.12.2012) | (Folien-Update) Link offline, s. Sys-Prog WS13/14 |
2. Ergänzung: Speicherverwaltung | Folien 1-18 |
3. Fortgeschrittene Konzepte der Systemprogrammierung3.1. Processes | Folien 1-46 |
3.2. Threads | Folien 1-40 |
3.2.3. Thread Synchronisation 3.2.3.1. Mutex variables 3.2.3.2. Condition variables 3.2.3.3. Semaphores 3.2.3.4. Barriers 3.2.3.5. Read-write locks 3.2.4. Deadlocks 3.2.5. Important Threading Mechanisms | Folien 41-108 |
3.3. Interprocess Communication IPC | Folien 1-110 |
Übungszettel
Hinweise zum Übungsbetrieb (erscheinen nach Beginn des Vorlesungsbetriebs)
Die PDF-Dateien können mit dem Acrobat Reader angesehen und ausgedruckt werden. Das Programm ist kostenlos erhältlich und ist auf fast allen Rechnern des Instituts installiert.
Erledigte Ankündigungen - erledigte Termine
Die erste Vorlesung fand am Dienstag 09.10.2012 um 14.30 Uhr in Hörsaal 1 im AVZ-III in der Römerstr. 164 statt. Dort werden alle weiteren Informationen zur Organisation von Vorlesung und Übungen gegeben (Hinweise zum Übungsbetrieb).
Der erste Übungszettel erscheint in der Woche vom 09.10.2012 (siehe unten), der eigentliche Übungsbetrieb beginnt dann in der Woche ab Montag 22.10.2012.
Eintragung/Anmeldung zu den Übungen via TVS ist geöffnet (Link hier). Die Registrierung war offen bis Mo 15.10.2012 um 23.59h. Die Gruppenzuordnung sowie die Zugangsdaten zu SVN werden am Dienstag 16.10.2012 per Mail bekannt gegeben. Biite beachtet im weiteren die Hinweise der Mail an die Mailingliste (von 10.10.2012 16:02h).