Inhaltsverzeichnis

MPStuBS

Prüfer: Volkmar Sieh, Beisitzer: Bernhard Heinloth

Allgemein

Sehr entspannt. Bernhard hat keine Fragen gestellt. Er hat aber manchmal Volkmar gestikuliert, wenn eine Frage etwas seltsam war, z.B. nicht ganz korrekt formuliert war. Einmal hat Volkmar dann auch gesagt, dass die Frage nicht so sinnvoll war, und hat die nächste Frage gestellt.

Als Vorbereitung bin ich die Vorlesungsfolien durchgegangen und habe mir ein paar alte Prüfungsprotokolle angeschaut. Die Aufgaben habe ich alleine und sehr gründlich bearbeitet, d.h. ich war dadurch relativ gut vorbereitet, und habe dann gar nicht mal so viel Zeit mit Vorlesungsfolien/Prüfungsprotokollen verbracht. Note: 1,0.

Manche Fragen weiß ich nicht mehr genau, d.h. es ist vermutlich etwas unvollständig. Es ging aber gefühlt sehr lange um Interrupts.

Fragen

Betriebssystementwicklung

Habe praktisch den ersten Foliensatz erzählt. Bei der Linkerkonfiguration wollte er wissen, was da besonders ist, was ich nicht wusste. Er wollte darauf hinaus, dass standardmäßig virtuelle Adressen verwendet werden.

Habe den Rest des ersten Foliensatzes erzählt. Hier hab ich praktisch alles aufgezählt, weswegen er dann auch gesagt hat „Reicht schon“.

Interrupts/Synchronisation

Habe die verschiedenen Sachen erklärt. Für den Mutex habe ich in etwa das hingeschrieben:

bool locked = false;

lock() { while (!builtin_test_and_set(locked, false, true)); } Es war Pseudocode gefordert, also hat das so gepasst.

unlock() { locked = false; }

In lock ein scheduler.block in der while-Schleife, und im unlock ein scheduler.wakeup.

Habe die Synchronisation mit dem Scheduler erzählt, d.h. auch ein bisschen die Strukturen dort. Bis hier habe ich oft die Epilog-Ebene erwähnt, deswegen ging es jetzt darum.

Habe zuerst allgemein das Ebenenmodell kurz beschrieben und dann die Aufteilung Prolog/Epilog.

Dass es so kurz wie möglich dauert. Bei der Tastatur holt man sich im Prolog nur das Zeichen aus dem Tastaturpuffer.

Hier war ich etwas verwirrt; er hat gesagt „Du wusstest ja bisher alles, jetzt muss ich mal etwas schwierigere Fragen stellen“. :D

Er wollte auf etwas sehr detailliertes hinaus: die beiden verschiedenen Trigger-Modes Edge und Level (im IO-APIC). Er hat dann behauptet, dass wenn man ein Zeichen nicht abholt, das System nichts mehr tut. Damit meinte er, dass die Behandlung von Tastaturinterrupts den Trigger-Mode Level verwendet, und das BS deswegen die ganze Zeit wieder in den Interrupthandler springen würde, weil die Interruptleitung erst auf 0 gesetzt wird, wenn das Zeichen abgeholt wurde. Hierauf bin ich nur so halb gekommen.

Hier hab ich ziemlich lange überlegt, bin dann aber darauf gekommen. Es war Edge, weil es ja keine Daten abzuholen gibt, sondern es nur um die Signalisierung bzgl. der abgelaufenen Zeit geht.

IPC

Habe kurz allgemein was zu IPC gesagt, und dann eben, dass Virtual Shared Memory die Nachstellung von Shared Memory über Nachrichten ist. Da hab ich ein bisschen erklärt wie das abläuft, mit dem Versenden von Seiten usw.

Wei die Variablen vermutlich in der gleichen Seite liegen.

Jeder PC hat eine Kopie von der Szene, weil sie sich nicht verändert. Dann berechnet jeder PC einen Teil der Szene, und am Ende schreiben alle ihr Ergebnis synchronisiert auf Platte.