Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » Betriebssysteme » Betriebssystem (Übersicht)
Inhaltsverzeichnis
Betriebssystem
Prüfer: Daniel Lohmann
Beisitzer: Daniel Danner
Themengebiete: Betriebssysteme (MPStubs + Übung, 7.5 ECTS)
Datum: 17. Februar 2014
Note: sehr gut
Obwohl meine Prüfung im Wesentlichen wie die vom 8. April 2013 verlief, wollte ich das hier einfach mal gesagt haben, damit auch die Bescheid wissen, die nach mir geprüft werden .
Allgemeines zum Ablauf
Die Atmosphäre war sehr angenehm und nach ein bisschen einleitendem Small-Talk ging es auch direkt mit der klassischen Frage los, was denn ein Betriebssystem ist. Hier macht es meiner Meinung nach schon sehr viel Sinn, bereits im Voraus ziemlich genau zu wissen, was man da sagen will. Neben der Tatsache, dass man damit durchaus zu einem gewissen Grad die Richtung des Gesprächs lenken kann, hilft es einem selbst auch ins Gespräch reinzukommen und Sicherheit zu gewinnen.
Alles folgende (printf()
, getch()
, Interruptbehandlung, etc. pp.) hat Lohmann auf sein A3 Blatt geschrieben/gemalt, das am Schluss auch ziemlich voll war. Dabei diktiert man ihm dann mehr oder weniger wie das (in meinem Fall) zu „programmieren“ ist.
Eins noch: Lasst euch von dem eventuell skeptischen Blick von Daniel Lohmann nicht irritieren - ich glaube das ist in den meisten Fällen eher ein „ich denke gerade intensiv nach“-Blick und kein „was redest du für einen Unsinn“-Blick .
Fragen
Wie bereits erwähnt, verlief meine Prüfung weitgehend wie die vom 8. April 2013. Bei mir wurde allerdings gar nichts zur Thread-Umschaltung/zum Scheduler gefragt. Ich möchte aber davor warnen, die Vorbereitung allein mit den Prüfungsprotokollen zu beschreiten. Es kamen zwischen drinnen immer wieder vertiefende Verständnisfragen und Eventualitäten, die es zu bewerten galt.
Zum Schluss wurde mir noch eine Frage gestellt, bei der ich mir nicht sicher bin, ob bzw. wie weit sie Teil der Prüfung war:
P: Du hast ja gesagt, dass das Anschalten der Interrupts und das Schlafenlegen atomar passieren muss (also CPU::idle()
bzw. sti;hlt;
), um ein Lost-Wakeup-Problem zu vermeiden. Hast du eine Idee, was man auf einer Architektur macht, die nicht garantiert, dass das atomar erfolgt?
S: (Wusste ich erst mal nicht und hab allgemein beschrieben, was beim Interrupt passiert) Wenn ein Interrupt nach dem sti
und vor dem hlt
kommt, wird der PC, der auf die nächste Anweisung also hlt
zeigt, und das SR auf den Stack gepusht und die Interrupt-Service-Routine aufgerufen. Am Ende wird dieser Zustand mit einem 'iret' wiederhergestellt.
P: Ja, richtig – und kann man das irgendwie ausnutzen?
S: (mit Hilfe) Man überprüft im Interrupt-Handler, ob die Anweisung, auf die der PC zeigt, ein hlt
ist und patcht ihn so, dass er auf die nächste Anweisung nach dem hlt
zeigt.