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

Ich kann mich nicht mehr an alle Fragen erinnern. Insgesamt hat er mich immer recht viel reden lassen, aber auch öfters kleiner zusätzliche Fragen gestellt. Ich habe zu den meisten Sachen noch etwas mehr gesagt als hier steht. Atmosphäre war sehr entspannt. Ergebnis war eine 1.0 und er war sehr zufrieden obwohl ich bei manchen Punkten nicht genau die Antwort wusste und manchmal auch ein paar Kleinigkeiten falsch gesagt hatte.

Betriebsystemdebugging

Wie kann man denn so ein Betriebssystem debuggen?

* Habe da einiges zu printf, gdb stub, emulator, virtuelle maschine und hardware debugger gesagt. Damit war er dann auch zufrieden.

Ihr hattet als Vorlage startup Assembler code gegeben. Was hat der so gemacht?

* Features der CPU aktiviert und Geräte initialisiert. Habe hier dann einiges gelabert und er wollte irgendetwas anderes hören.

Was haben alle Geräte gemeinsam?

* Hier bin ich mir nicht sicher was er meinte, aber habe was von Interrupts registrieren gesagt und dann sind wir weiter.

Interruptbehandlung

Wie läuft ein Interrupt ab?

Was macht der Interrupthandler sonst so?

* Holt Zustand vom z.B. Tastaturcontroller ab und sorgt damit dafür, dass kein Interrupt mehr angefordert wird. Danach wird evtl. ein Epilog angefordert.

Wie ist Prolog/Epilog implementiert?

* Habe da die Funktionialität von enter, leave und relay grob erklärt.

Da gibt es jetzt aber einige Synchronisationsprobleme oder?

* Habe das dann auch wieder recht grob erklärt.

Schreibe mal relay Funktion auf.

* Habe hier die exakte Implementierung wie wir sie hatte hingeschrieben.

Das relay muss aber doch wieder Interrupts deaktivieren oder?

* Nein, das macht leave. (Damit war er glaube ich nicht ganz zufrieden.

Epilog macht das ganze jetzt langsamer. Warum macht man es dann?

* Es gehen keine Interrupts verloren. Und wenn dem Atomreaktor warm wird kann schneller darauf reagiert werden.

Die Netzwerkkarte schickt jetzt viele Interrupts was macht man dagegen?

* Habe den Begriff interrupt storm erwähnt und einige Gegenmaßnahmen aufgezählt.

Welche Interruptart gibt es noch, die man gar nicht haben will?

* Spurious interrupts

Was macht man dagegen?

* Defensiv programmieren.

Was sind shared Interrupts?

* Das wusste ich nicht, aber er hat mir dann gleich gesagt, dass manchmal mehrere Interrupts die gleiche Leitung bekommen.

Wie unterscheidet man dann welches Gerät den Interrupt geschickt hat?

* Irgendwas mit Statuswort

IPC

Wir haben da einmal shared memory und message passing kennen gelernt. Was ist besser?

* Beide gleich mächtig, weil das eine jeweils das andere emulieren kann. Habe da noch ein paar Vor und Nachteile aufgezählt.

Wie mache ich message passing, wenn ich shared memory habe?

* Queue mit messages mit Semaphore synchronisieren.

Wie mache ich shared memory wenn ich message passing habe?

* MMU und Pagefaults.

Wie schnell ist das jetzt?

* Eher langsam.

Treibermodell

Was ind die Vorteile von einem einheitlichem Treibermodell?

* Besser zu programmieren.

Was sonst?

* Bin ich nicht drauf gekommen. Er wollte Stapelbarkeit hören.

Wann stapelt man Treiber?

* RAID

Sonst noch was wo das in Linux gemacht wird?

* USB

Manche Treiber bieten auch mmap an. Was könnte das sein?

* Man will z.B. Grafikkarte direkt im Speicher ansprechen.

Architektur

Was fällt dir zu Betriebssytemmonolithen ein?

* Allgemeines Gelaber zu Architektur. Bibliothekssystem, Monolith, Microkern.

Was muss man machen um aus dem Linux kernel einen Mikrokernel zu machen?

Wie schaut die kommunikation aus? Ich will z.B. einen Film lesen und schreiben

Irgendwann kam noch diese Frage:

Was braucht man für passives Warten?

* Man braucht Shared memory + Interrupts. Stichwort IPI