Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » Allgemein   (Übersicht)

Allgemein

Sehr angenehmes Klima, faire Benotung. Es geht nicht darum die Folien auswendig zu können, sondern um Verständnis. Obwohl ich ein paar kleine Hänger hatte am Ende Note 1.0

Scheduling und Synchronisation

Was ist denn Scheduling?

Benötigt für Pseudoparallelität. Erklärt vom Timer Interrupt über APIC Interruptbehandlung, Prolog, Epilog, Scheduler, Dispatcher. Unterscdhied präemtives und kooperatives Scheduling.

Wie funktioniert denn so ein Kontextwechsel?

Erklärt wie Register gesichert werden, (Caller-Save, Callee-Save), wenn noch nicht eingelagert gewesen 'prepare_context'.

Was macht das 'prepare_context'?

Stackinitialiesierung erklärt.

Wie ist das, will man eher viele oder wenige Timer Interrupts?

Kommt auf den Anwendungsfall an, bei interaktiven Prozessen eher Mehr, bei Langen Berechnungen eher weniger.

Wie kann ich dafür sorgen dass trotz Rechenintensiver Prozesse das System interaktiv bleibt?

Prioritäten bei Linux (und nicen) erklärt. Boost bei Windows erklärt.

Semaphoren, Implementierung gefragt

Äquivalent zu mpstubs hingeschrieben, gesagt dass Synchronisierung durch den Guard passiert. Waitingroom erklärt.

Was macht der Guard?

Ebene 1/2 Modell erklärt (run-to-completion Semantik), enter, leave.

Was macht denn dann das leave, wenn der Semaphor den Thread schlafenlegt?

Hier hatte ich einen kleinen Hänger, Antwort war im Endeffekt, dass das resume des neuen Threads die ebene wieder verlässt.

Weiter zu IPC

Wenn ich einen Semaphor hab, wie kann ich mir dann so eine Mailbox bauen?

Erklärt dass eine Mailbox „Nachrichten auf gemeinsamem Speicher ist“, Implementierung „gesagt“.

Wie kann ich verhindern, dass unendlich viel in die Queue gepackt wird?

Bounded Buffer, und zweiten Semaphor der runterzählt solange noch Platz ist.

Wie muss ich einen Semaphor ändern, damit ich z.B. p(5) machen kann?

If-condition im p() ändern, (muss mindestens 5 sein), ansonsten schlafen legen. Beim v() einfach normal aufwecken, wenn nicht genug da ist wieder schlafen legen.

Microkernel

Was ist ein Microkernel?

Mit Monolith verglichen, gesagt dass eben nicht alles im Kern läuft, sondern nur das wichtigste (Interruptbehandlung, Scheduler, etc.) aber z.B. kein Netzwerkstack mit TCP/IP. Vorteil der Stabilität wenn was kaputt geht.

Was passiert wenn einen Datei von Anwendungsfaden gelesen werden soll?

Anwendung kommuniziert mit Dateisystemserver (nicht im Kern, wie z.B. fuse), der kommuniziert mit Plattentreiberserver im Kern (z.B. via Mailboxes).

Warum teurer als bei Monolith?

Mehr Kommunikationsschritte, Kontextwechsel, Caches werden überschrieben.