Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » BST / KSS   (Übersicht)

BST / KSS

Prüfer

Wolfgang Schröder-Preikschat
Daniel Lohmann

Prüfungsinhalt

Anfangs übernahm wosch die Prüfung (teilweise mit Anmerkungen Daniels zu den Fragen). Für den KSS-Teil hat dann Daniel die Fragen gestellt.

Bin mir überall nicht mehr ganz so sicher…

BST

Frage: Seitenbasierter Adressraum? Was benötigt man an Datenstrukturen?
Antwort: Erklärung einstufiger Seitentabllen (Seitennummer, Versatz, MMU) mit Zeichnung

Frage: Wie groß wird denn so eine Tabelle?
Antwort: Abhängig von Seitengröße und Wortbreite, auf x86 sind es 4MB

Frage: Das ist recht groß. Was kann man da machen?
Antwort: Mehrstufiges Paging (Erklärung von Page Directory, Adressumsetzung) mit Zeichnung

Frage: Wird das nicht langsamer?
Antwort: Ja, aber es gibt ja TLB (auch bei einstufigen Paging!)

Frage: Gibt es noch weitere Möglichkeiten, das Problem mit der Größe zu umgehen?
Antwort: Invertiertes Paging (Nachschlag in Seitentabelle → Index ist Seitenkachelnummer) mit Zeichnung

Frage: Wie sähe es aus, wenn man nur eine Seitentabelle hätte, aber ein Register, das deren Größe beschränkt?
Antwort: Es kann nur noch in eine Richtung gewachsen werden → Problematisch bei dynamisch wachsendem Heap und Stack; (ein wenig Hilfe von wosch) Bei statischer Stackgröße kein Problem → nur noch Heap wächst und das Register wird angepasst.

Frage: Kann der Stack im logischen Adressraum unzusammenhängend sein?
Antwort: (Hatte erst die Frage nicht verstanden, kam dann aber darauf) Ja, es muss nur ein Trap ausgelöst werden, wenn man über die momentane Seite hinauskommt, sodass der Stackpointer angepasst werden kann. Anmerkung von wosch: Problematisch, wenn daneben andere Datensegmente des Prozesses liegen, Compiler kann aber helfen.

Frage: Gibt es eine Möglichkeit den Stack beliebig wachsen zu lassen?
Antwort: Einfach Prozess trappen lassen, wenn über die letzte Stackseite hinaus zugegriffen wird.

Frage: laut wosch „Transferfrage“ Gibt es andere Möglichkeiten? Anmerkung von Daniel: Wie macht es Java?
Antwort: Stack im Heap allokieren → Ist sowieso nötig, wenn mehrere Fäden im gleichen Adressraum laufen sollen

Frage (zum Abschluss): Aussehen der Seitentabellen, wenn ein Prozessadressraum aus einer Stackseite, zwei Datenseiten und einer Textseite besteht?
Antwort: Zeichnung der mehrstufigen Seitentabellen mit Verzeigerung

KSS

Frage: Warum will man Konfigurierbarkeit?
Antwort: Ein-/Ausschalten benötigter/unbenötigter Features; z.B. Architekturen/Treiber/Scheduler bei Linux

Frage: Wie ist die Konfigurierbarkeit entstanden?
Antwort: Bei Linux wurde erst nachdem Code geschrieben wurde darüber nachgedacht.

Frage: Wie hat man das in KSS gelernt?
Antwort: Analyse und Aufbau eines Domänenmodells

Frage: Diagramm aus der Vorlesung?
Antwort: Zeichnung mit Erklärung (Problemraum, Lösungsraum, … und was das jeweils „real“ ist)

Frage: Modellierung von „klein“ (im Sinne von kleiner Software) im Feature-Diagramm? (Es wurde eines hingezeichnet)
Antwort: Da stand ich doch auf dem Schlauch und habe mehrere Tricks versucht (Mehrfachnennung von Features, Komplementangabe von Features), welche aber alle falsch waren; Daniel brachte mich aber noch auf die richtige Lösung: Annotationen an „klein“, um Constraints einzuhalten (Annotationen sind das Allheilmittel, wenn das Featurediagramm nicht ausreicht ;))

Frage: Wie implementiert man so etwas?
Antwort: Kompositionell, dekompositionell oder generativ (mit Beispielen)

Frage: Dekompositionelle Implementierung eines Features?
Antwort: Präprozessor: Anfassen von anderem Code, der erst einmal nichts mit dem Feature zu tun hat. Beispiel genannt.

Frage: Kompositionelle Implementierung des Features?
Antwort: Aspekt auf den Code weben → Fasst den „alten“ Code nicht an. Beispiel dafür angepasst.

Vorbereitung/Fazit

Habe alle Folien zusammengefasst und (ganz wichtig!) versucht zu verstehen. Das war für diese Prüfung speziell fast zu viel.

wosch und Daniel helfen gerne weiter, wenn man mal Probleme hat, und solange man am Ende auf das richtige Ergebnis kommt, ist auch der anfangs falsche Ansatz kein Problem. Die Prüfungsfragen scheinen sich beide auch eher spontan einfallen zu lassen :)