Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » BST 7.5 ECTS Prüfung 10.8.2022

BST 7.5 ECTS Prüfung 10.8.2022

Allgemein

  • Fach: BST 7.5 ECTS SS22
  • Datum: 10.8.2022
  • Typ: muendlich
  • Pruefer: wosch
  • Beisitzer: Bernhard
  • Vorbereitung
    • Unter dem Semester war man ganz gut mit BST beschaeftigt, dafuer war die Pruefungsvorbereitung relativ entspannt. Hab mir die relevanten Foliensaetze nochmal angeschaut und mit Hilfe der aelteren Pruefungsprotokolle gelernt. Wir haben meist zu zweit gelernt und ueber den Stoff diskutiert, was empfehlenswert ist, da es mehr um Verstaendnis als um Auswendiglernen geht.
  • Evaluation:
    • Sehr faire Pruefung
    • Sehr entspannte Atmosphaere

Pruefung

* Syscalls warum?

Privilegientrennung

* Was ist der Unterschied zum normalen Prozeduraufruf?

evtl. Adressraumwechsel; umstaendlichere Parameteruebergabe, da diese auf Kernelstack oder in Register muessen

* Wie?

Softwareinterrupt oder Spezialbefehle (sysenter) + Unterschied

* Warum brauch ich dafuer dann Spezialbefehle, kommen Syscalls so oft?

Windows wollte das wegen illegal Opcodes

* Wie kann man das machen?

ueber Register oder direkt von Userstack auf Kernelstack + Erklaerung bin auch auf den Aufwand durch die Kopieroperationen eingegangen. (Primitiv- bzw. Komplexbefehl)

* Dazu kamen dann noch ein paar Fragen an die ich mich nicht mehr genau erinnern kann, so in die Richtung:

 * "das hoert sich aber kompliziert an warum macht man es dann so? (auf Primitivbefehl mit Register bezogen)" -> generischer Ansatz 
 * "die Anwendung schreibt dann die Prameter auf den Kernelstack?" -> nein, Kernel holt sie vom Userstack

* Der Prozesskontext wo liegt der und warum? Dann kam vor meiner Antwort noch eine philosophische Betrachtung des Prozesskontextes, was man als Prozesskontext begreifen kann und abhaengig von der Sicht (Anwendung bzw. Kernel).

war von der Frage etwas verwirrt und hab versucht die Sicherung im Stub zu erklaeren, allerdings wollte er nicht darauf hinaus, auf erneute Nachfrage bin ich dann auch draufgekommen, im Prinzip wollte er nur hoeren, dass der Kontext auf den Kernelstack nochmal gesichert wird. Warum, ist ja eigentlich nicht noetig, dass dort ein Prozesskontext liegt? → Ja wird trotzdem gemacht

* Welche Adressraummodelle gibt es?

total privat, partiell privat, Einadressraummodell

* Was habt ihr implementiert?

partiell privat

* Und warum macht ihr das, ist euch Sicherheit nicht so wichtig? Naja gut ihr koennt ja nichts dazu, das war die Vorgabe.

Syscalls funktionieren ohne Adressraumwechsel

* Was ist das Problem?

Kernel sieht zu viel und kann ggf. Userspeicher kaputt machen.

* Anekdote das keiner total privates Adressraummodell verwendet, wie kommt der Kernel da an Anwendungsspeicher?

Fenster ueber Extrasegment und Spezialbefehle erklaert

* Welche HW-Einheit wird geschont beim partiell privaten im Vergleich zum total privaten?

TLB, da weniger Adressraumwechsel

* Was muss dann da gemacht werden?

TLB flushen

* Geht das auch anders, ohne jedes mal zu flushen?

gibt TLBs mit Tags, dann werden nur diese Eintrage invalidiert

* Einadressraummodell, wie funktioniert das?

Trennung von Adressierung und Schutz, Schutz durch grossen Adressraum & Randomisierung, man kann die Adressen nicht erraten. (wosch merkt noch an das es durchaus Techniken gibt um den Suchraum ein wenig einzuschraenken, sodass es zumindest keine 500 Jahre mehr dauert)

* Warum macht man jetzt das, wozu ist das gut?

IPC zwischen Prozessen, Zugriff auf horizontaler Ebene ohne Adressraumwechsel

* Braucht man dann ueberhaupt noch die MMU?

Ja, es gibt ja mehr virtuelle als physikalische Adressen: wird noch fuer mapping gebraucht.

* Die Verwaltungsdatenstrukturen von Paging brauchen unter Umstaenden ja selbst sehr viel Speicher, was kann man dagegen tun.

mehrstufiges Paging, invertiertes Paging

* Gut es gibt leider keine HW die invertiertes Paging unterstuezt, wie viele Stufen macht man beim mehrstufigen so in der Praxis?

4-5 Stufen

* Was habt ihr in der Uebung gemacht?

4 Stufen

* Und hat es Spass gemacht?

… naja debugging war schon sehr aufwaendig …

* Ja ist komplex, was koennte man noch machen um Speicher einzusparen?

zusaetzlich Segmentierung verwenden in Kombination mit Paging. Seitentabellen als Segmente sind nur so gross wie noetig und brauchen dadurch weniger Speicherplatz, allerdings gibt es wieder mal keine HW-Unterstuetzung.

Als Antworten sind meist nur Stichpunkte gegeben, wobei die Beantwortung durchaus ausfuehrlicher war. Generell erzaehlt wosch auch immer wieder Anekdoten (die manchmal auch etwas abschweifen). Pruefungsatmosphaere ist sehr angenehm.