TU Wien:Systemprogrammierung VL (Puschner)

Aus VoWi
Wechseln zu: Navigation, Suche

Im Rahmen der Studienplanänderung 2011 der Technischen Universität Wien wurde "Systemprogrammierung VL" in "Betriebssysteme UE" umbenannt. Die beiden LVAs sind daher äquivalent.

  • Studierende der TU, die im WS11 oder später mit ihrem Studium begonnen haben, können nur die LVA mit neuem Titel, sofern sie noch nach dem "Studienplan" ein Pflicht-/Wahlfach ist, für ihren Abschluss verwenden.
  • Studierende der TU, die bereits vor dem WS11 inskribiert waren, müssen genau eine dieser beiden LVAs absolvieren.

Für Details siehe auch FAQ Studienplan 2011.



Daten[Bearbeiten]

Ein gleichzeitiges Absolvieren mit Betriebssysteme VO (Puschner) ist sinnvoll, da sich die Theorie (Semaphoren, ...) teilweise überschneidet.

Inhalt[Bearbeiten]

Systemnahe Programmierung auf *NIX Systemen mit C.

Ziel ist das Verstehen von und Arbeiten mit Commandline Parametern, named/unnamed Pipes, Message Queues, Shared Memory, Sequencern und Semaphoren.

Benötigte Vorkenntnisse[Bearbeiten]

Es sind keine Vorkenntnisse für die LVA angegeben. Dennoch ist die Kenntnis zumindest einer imperativen Programmiersprache wie z.B. Java sehr stark empfohlen. (z.B. aus Einführung in das Programmieren).

Hilfreiche Vorkenntnisse[Bearbeiten]

C-Kenntnisse sind am LVA-Beginn zwar nicht notwendig, aber hilfreich (Flags setzen, dynamischen Speicher allokieren, Pointers, usw.).

Es ist weiters von Vorteil, schon einmal auf einem *NIX System (Linux, (Free|Net|Open)BSD, ... ) gearbeitet zu haben. Das gilt vor allem für Erfahrung mit der Kommandozeile.

Vortrag[Bearbeiten]

Der Vorlesungsteil wird von verschiedenen Vortragenden abgehalten. Von interessanten und hilfreichen Vorträgen bis hin zum reinen Vorlesen der Folien ist alles dabei. Grundsätzlich ist es aber mit Buch und Folien kein Problem die LVA ohne Vorlesungsbesuch zu absolvieren.

Ablauf[Bearbeiten]

Die LVA besteht aus 3 Übungsbeispielen (zu je 20 Punkten) und 2 Übungstests (60 + 80 Punkte). Seit dem SS2010 werden die Übungstests am Computer gemacht. Der erste Test besteht aus dem Stoff des ersten Übungsbeispiels. Aus den 3 gestellten Beispielen waren 2 zu implementieren (makefile oder Fehlersuche in einem vorgegebenen Programmcode und ein einfacher Client). Beim zweiten Übungstest wird zunächst ein Theorie-MC-Test ebenfalls am Computer gemacht. Die Fragen dieses Tests werden aus einem Pool per Zufall ausgewählt und können einfache und schwere Fragen enthalten. Alles in allem ist der Theorieteil aber recht leicht.

Gute Vorbereitung (dabei helfen gelöste Programmierbeispiele), Beherrschen der man-Pages und Ruhe sind wichtig bei der Absolvierung der Tests. Die vorgegebene Zeit kann bei den kleinsten Problemen schon sehr knapp werden. Da die Bewertung vom Computer vorgenommen wird, können kleinste Fehler gravierend ins Gewicht fallen (z.B. Programm compiliert mit Warnings). Bei den Tests dürfen keine Unterlagen verwendet werden. Davon ausgenommen sind jedoch die man-Pages, die am Testrechner vorhanden sind.

Für Leute, die zu Hause keinen Zugriff auf ein *NIX-System haben, werden Computer im SysProg-Labor zur Verfügung gestellt. Es besteht auch die Möglichkeit, sich direkt auf dem Server per SSH einzuloggen.

Es ist dringend zu empfehlen, alle Abgaben auf einem der Übungsrechner zu testen oder zu machen (egal ob lokal oder per SSH). Nichts ist ärgerlicher als Punkte zu verlieren, weil die etwas andere gcc-Version dort eine Warnung ausspuckt, die lokal nicht kommt. Worst Case wäre, dass das Programm dort gar nicht kompiliert. In diesem Fall würde dein Programm abgelehnt (in einer Woche nochmal versuchen mit verminderter max. Punkteanzahl) oder Du bekommst 0 Punkte (falls dies bei einem Rejecttermin passiert)!

Andere Meinung: Ich würde das nicht so streng sehen. Ich hab alle Aufgaben auf meinem Ubuntu 9.10 geschrieben und niemals im Lab ausprobiert. Bei der Abgabe hat es auch im Lab wunderbar funktioniert.

Positiv abgeschlossen ist die LVA dann, wenn mindestens 100 von 200 Punkte erreicht wurden und die Tests insgesamt positiv sind (70 von 140 Punkte).

Im Diskussionsbereich finden sich weitere Kommentare zu den Tests, und bei den Materialien finden sich Ausarbeitungen zu den Tests im Informatik-Forum.

Tipps[Bearbeiten]

  • Im Buch steht fast alles in Musterbeispielen drinnen (es kann viel Code 1:1 aus dem Buch abgeschrieben werden) -> Buch lesen und verstehen, es ist einfach geschrieben.
  • Den ersten Übungstest nicht unterschätzen, der zweite wird schwerer.
  • Sobald man einmal den ersten Übungstest geschafft hat, ist der restliche Zeitaufwand zu vernachlässigen (je nach Beispiel) (pro Bsp 1-2 Tag(e), 2 Test Bsps ein bischen anschauen).
  • Es wird großer Wert auf "defensive Programmierung" (Überprüfung aller Rückgabewerte usw.) gelegt.
  • Tutoren können bei Problemen kompetent Rat geben.
  • Die Programmierrichtlinien beachten!

Literatur[Bearbeiten]

  • Seit dem WS 2010 (vll auch schon länger) wird das Buch "C Programming Language (Second Edition)" von Brian W. Kernigham and Dennis M. Richie verwendet.
  • Früher gab es am Institut ein selbst verfasstes Buch um € 13,00, das den gesamten Stoff der VL abdeckt.
  • Darüber hinaus werden im Laufe des Semesters auf der Homepage der LVA die Folien zu den Vorträgen zum Download bereitgestellt.

Zeitaufwand[Bearbeiten]

Für alle, die schon C-Erfahrung mitbringen, wird sich der Zeitaufwand in Grenzen halten. Ich war leider C-Neuling, und da hab ich dann schon mal für ein Beispiel 3-5 Tage investieren müssen.

Zusätzliche Meinung: Ich konnte schon C programmieren und fand 2 der 3 Beispiele trotzdem ziemlich aufwändig (3-5 Tage). Ein Beispiel konnte man fast 1:1 aus dem angebotenen Tutorial kopieren.

Guter Tipp ist, wenn man mit der Angabe nicht zurecht kommt, einfach mal vom Tutor erklären lassen, so erspart man sich viel "coden ins leere" - und dann vor der Abgabe nochmal abnehmen lassen, dann ist ein hoher Punktezahl garantiert.

Was auch seltsam ist: der Aufwand der unterschiedlichen Angaben variiert sehr deutlich. Und soweit eruiert, gibt es auch keine constraints für Angaben (dh. wenn man bei Bsp1 Angabe A hat heißt das nicht, dass man bei Bsp2 auch Angabe A bekommt - den so könnte der Aufwand wenigsten halbwegs fair verteilt werden). Das heißt es ist abgesehen von den C-Skills dem Zufall überlassen wie hoch der Aufwand werden kann.

Dauer der Zeugnisausstellung[Bearbeiten]

Erfahrungen (nach dem letztem Test; Dauer: Anzahl der Erfahrungen):

  • 1,25 Monate: 1
  • 3 Monate: 1
  • 3,25 Monate: 1 (SS09: 26.06 - 23.09)

Nach Umstellung auf Computertests und Computerbewertung sind die Ergebnisse im SS2010 sehr rasch in myTI zur Verfügung gestanden (ca. 1 Woche nach dem Test). Zeugnis kam ca. 3 Wochen nach dem zweiten Test.

  • Im WS 2010 und auch SS 2011 wurden die Ergebnisse des 2. Tests noch am selben Tag im myTI eingetragen! Rekord :D

Links[Bearbeiten]

Verbesserungsvorschläge / Kritik[Bearbeiten]

noch offen