Inhaltsverzeichnis

Betriebssysteme 7.5 ECTS Prüfung 16.03.2023

Allgemein:

Stimmung war sehr entstpannt. Er hat aber für meinen Geschmack zu lange auf Antworten zu sehr spezifischen Sachen gewartet, anstatt irgendwann zu sagen, dass man zum nächsten Thema wechselt. Ich habe bei manchen Fragen auch nicht direkt gewusst, auf was er hinaus wollte und weitere Hilfe gebraucht. Deswegen auch „nur“ eine 2,0.

Prüfung:

Was ist der Unterschied zwischen Mutex und Semaphore?

Und was ist der Unterschied zu Ticketlock und Spinlock?

Schreib mal den Pseudocode für eine Semaphore auf.

Wie könnte man das mit passivem Warten implementieren?

Das würde aber zu Wettlaufsituationen führen, wie löst man das Problem?

Wie ist denn das Scheduler::block implementiert?

Wenn enter aufgerufen wird und man dann in die Warteschlange schlafen gelegt wird, wie kommt man dann aus der Epilogebene wieder raus?

Erklär mir doch mal, wie das mit dem context_switch funktioniert.

Mit dem Scheduler::block haben wir ein kooperatives scheduling. Wie funktioniert dann das präemptive scheduling?

Wie oft sollte denn dieser Timer-Interrupt kommen, also wie oft sollte gescheduled werden?

Warum sollte bei einem Rechenzentrum nur sehr selten gescheduled werden?

Wie hoch ist denn der overhead beim schedulen?

Wir waren schon bei dem Thema Semaphoren, die kann man auch dazu nutzen eine Mailbox umzusetzen, wie funktioniert das?

Die Implementierung kann man im Endeffekt auch als synchronisierten bounded buffer verwenden. Bei der Tastatur-Behandlung könnte man das doch als send im Epilog und receive in der Anwendung verwenden, oder?

Das Betriebssystem bietet den Geräte-Treibern zum Beispiel die angesprochenen P und V Operationen mit Semaphoren an. Was werden noch für Funktionen angeboten?