Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » MPStuBS   (Übersicht)

MPStuBS

IPC

Was kannst Du mir denn zu IPC via Nachrichten vs IPC via geteiltem Speicher erzählen?

Habe sowohl Vor- als auch Nachteile von beidem aufgezählt.

Wie funktioniert das Abbilden von Message IPCs auf IPCs mit shared Memory?

Habe eine Mailbox class fast wie in den VL Folien hingeschrieben. Besonderheit: die Bufferqueue sollte eine maximale Zeichenlänge haben → ein 3. Semaphore löst das Problem.

Wie funktioniert das Abbilden von shared memory IPCs auf IPCs mit Messages?

Habe das Schaubild von virtual shared memory aus der VL aufgeschrieben und erklärt.

Synchronisation

Was gibt es denn noch um in einem BS zu synchronisieren, außer Semaphoren?

Habe Monitore und aktive Objekte erwähnt

Wie funktioniert Synchronisation mit aktiven Objekten?

Habe erklärt wie das Warten mit dem senden und Empfangen von Nachrichten gelöst wurde und dass man sich das wie eine client/server Architektur vorstellen kann.

Wie funktioniert Synchronisation mit Monitoren?

Habe erklärt, dass Monitore implizit synchronisierte Funktionen anbieten und dass an Bedingungsvariablen gewartet wird.

Wie könnte man Semaphore mit Nachrichten implementieren?

Hier wollte er irgendwie darauf hinaus, dass man eine p-Operation dem Empfangen und eine v-Operation dem Senden einer Nachricht gleich kommt. Ich habe hier viel zu kompliziert gedacht und habe einige Hinweise gebraucht bis ich verstanden habe, was er gemeint hat. Das war an sich kein Stoff der VL, aber er meinte ich habe bis dahin zu viel gewusst und erklärt und er müsse daher schwierigere Fragen stellen. Hat sich aber scheinbar nicht negativ auf die Note ausgewirkt.

Interrupts

Wie läuft denn ein Interrupt ab?

Habe den Ablauf eines Interrupts aus den VL Folien erklärt.

Wie sieht so eine Unterbrechungsbehandlung aus?

Habe erklärt, dass sich hier das Prolog/Epilog-Modell anbietet und erklärt wie sich das aus dem allgemeinen Prinzip des Prioritätsebenenmodell ableiten lässt, welche Eigenschaften wir uns zu nutze machen und wie auf Ebene 1 bzw. 1/2 die Unterbrechungssicherheit nach unten gewährleistet wird.

Was ist der Unterschied zwischen edge und level triggered?

Bei Level steht ein Interrupt so lange an, bis sein Ende gemeldet wird, bei Edge wird der Interrupt nur flankengesteuert ausgelöst.

Welche Funktionen bringt denn das Epilog-Prolog-Modell typischerweise mit?

Habe hier Enter, Leave und Relay erwähnt und grob erklärt wofür sie da sind.

Welche Funktion ist denn Deiner Meinung nach die schwierigste?

Ich habe mich hier für Leave entschieden und das mit der Abarbeitung der liegen gebliebenen Epiloge begründet.

Schreib dann doch bitte mal ein Leave auf

Habe ich aufgeschrieben, erklärt wann und warum man wie an welcher Stelle Interrupts sperren muss.

Was würde denn passieren, wenn wir die Interrupts frei geben, bevor wir das Ende der Epilogbehandlung dieser CPU melden?

Habe Lost Wake-Up erklärt und warum und wo genau es hier dazu kommen kann.

Und was würde passieren, wenn wir die Interrupts frei geben, bevor wir das big kernel lock frei gegeben haben?

Habe erklärt, dass sich wir hier in ein dead lock laufen können und warum.

Treiber

Was sind denn gestapelte Treiber?

Habe hier erklärt, dass mehrere Treiber auf ihren jeweils einheitlichen Schnittstellen aufbauen können und man damit in einem Treiber dann Funktionalitäten ausnutzen kann, die andere Treiber schon bereit stellen.

Kannst Du mir ein Beispiel dafür nennen?

Habe hier Linux-USB Treiber genannt. Während die unteren Schichten beispielsweise standard r/w Operationen anbieten, kann eine höhere Treiberschicht das entsprechende USB-Protokoll realisieren und die oberste Schicht dann dem Nutzer gereätespezifische Zugriffsfunktionen anbieten.

Was sind denn bei Linux die typischen einheitlichen Schnittstellen?

Habe hier open/read/write genannt, erklärt dass read/write auch nicht blockierend laufen können und erwähnt, dass es außerdem asynchrone r/w Operationen gibt.

Und für alle anderen Operationen?

Hier habe ich jetzt noch was zu ioctl erkärt und als Beispiel das Arbeiten auf einer Graphikkarte genannt, dann war die Zeit um.

Vorbereitung

Die Übungen sind definitiv Grundlage für die Klausur (siehe zum Beispiel das Epilog/Prolog-Modell). Man sollte verstehen, was da passiert und warum. Ansonsten habe ich die Vorlesungsfolien angeschaut und versucht zu allem gut was erzählen zu können. Hier hilft es auch sehr, wenn man nicht alleine lernt.

Klausur

Die Stimmung in der Klausur war sehr gut. Volkmar ist ein freundlicher Prüfer, der auch damit umgehen kann, wenn man am Anfang sehr aufgeregt ist. Ich bin dadurch nach ein paar Minuten gut in die Klausur rein gekommen. Ansonsten lässt er viel frei erzählen, stellt aber dafür dann auch mal Fragen abseits des behandelten Stoffes. Kann man die nicht sofort beantworten, wird sich Zeit gelassen, bis man die Frage beantworten kann.