Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » BST 2018-08-21
Inhaltsverzeichnis
BST 2018-08-21
Fach: Betriebssystemtechnik (7.5 ECTS)
Prüfer: wosch
Beisitzer: ? (leider fiel der Name nie)
Prüfung war eher wie eine Mischung aus Vorlesung und Gespräch. Wosch erklärt viel und stellt zwischendurch vereinzelt Fragen. Ich erinnere mich nicht mehr an den ganzen Gesprächsverlauf, aber hab mal das, worauf er letztendlich hinaus wollte in den folgenden Fragen zusammengefasst.
Themen/Fragen
Allgemein wurden schwerpunktmäßig Fragen zu den Themenbereichen Syscalls, Paging und Adressräume gestellt. Die anderen Themen kamen gar nicht oder nur sehr oberflächlich dran.
- int 80, was passiert da? (syscall nummer in eax, parameter auf stack oder in register)
- das ist ja ein Softwareinterrupt. gibt es noch eine andere Möglichkeit? (spezialbefehle wie sysenter/sysexit)
- was ist da anders? (reiner privilegienwechsel, keine kontextsicherung, schneller)
- in den Übungen habt ihr das ja implementiert und auch Zeiten gemessen. Wie war denn da so der Unterschied? (bei qemu war sysenter ca 2.5 x ca schneller)
- wofür braucht man denn so einen syscall überhaupt? (kernel vs user space, user anwendungen möchten privilegierte Operationen ausführen)
- wie wird denn sicher gestellt, dass ein user-programm nicht auf Kernel-Pages zugreift? (hw-Unterstützung durch MMU, die die entsprechenden Bits in den Page-Deskriptoren abfragt, gesetzt durch Betriebssystem)
- Überleitung zu Adressräumen, bin mir nicht mehr sicher wie es dazu kam, aber irgendwann wollte er wissen, was der Unterschied zwischen strikt privaten und partiell privaten Adressräumen ist. Er wollte erklärt haben, was die Vorteile/Nachteile der beiden Modelle sind. Ich habe erklärt, dass man bei partiell privaten Adressräumen den TLB nicht flushen muss, wenn man einen syscall ausführt und dass der Kernel den ganzen Adressraum sehen kann, der User aber nur seinen Teil. Ich habe erklärt, dass die Anwendungen dem Kernel hierbei mehr vertrauen müssen und bin dabei auch auf Meltdown eingegangen; Bei strikt privaten Adressräumen kann bspw. ein fehlgeleiteter Pointer im Kernel nicht so einfach Daten in den Anwendungen zerschiessen.
- Irgendwann wollte er auch wissen, ob ich BS vorher gehört habe (jep), danach fragte er wie dnen so das Verhältnis der einzelnen Komponenten in Linux sind; wichtig war hierbei die Aussage dass 3/4 davon Treiber sind. Er wollte dann hören, dass diese quasi eher von Amateuren geschrieben werden und daher eher unvertrauensvolle SW sind. Ich denke er wollte darauf hinaus, dass das ein Problem Monolithischer Betriebssysteme ist (vs. Microkernel, Macrokernel) und es war auch gut zu erwähnen, dass das eher ein Problem in partiell privaten Adressräumen als in strikt privaten ist.
- In dem Zusammenhang wollte er auch wissen, was denn Linux bzw Windows für eine Architektur haben
- Am Schluss kam eine Transferfrage, deren genauen Inhalt ich leider vergessen habe; Grob wollte er erklärt haben, warum bei strikt privaten Adressräumen ein gescheitertes Kernelmodul nicht so viel schaden anrichten kann wie bei partiell privaten Adressräumen.
Fazit
Ich bin mit der Note sehr zufrieden. Athmosphäre war angenehm, ich hab mich aber zunächst etwas durch meinen geringen Redeanteil irritieren lassen. Es wird einem nicht negativ angerechnet, auch wenn man nicht gleich versteht, worauf Wosch eigentlich hinauswill. Einfach die Ruhe behalten. Ich habe zur Vorbereitung alle Folien zweimal durchgelesen. Als besonders wichtig schätze ich folgende Themen ein: - Syscalls (int 80 vs sysenter/sysexit, Komplex vs Primitivbefehl), - Paging & Segmentation, - Shared Libraries - Interprozesskommunikation (synchron vs asynchron, cow, cor)