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

no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.


pruefungen:hauptstudium:ls4:bst-2019-08-19 [19.08.2019 10:07] (aktuell) – angelegt preisi
Zeile 1: Zeile 1:
 +**Prüfer:** Wosch\\
 +**Beisitzer:** Andreas\\
 +**ECTS:** 7,5
  
 +Die Atmosphäre war entspannt und Wosch hat selbst viel erklärt. Skizzieren musste ich nichts.
 +
 +
 +====== Verlauf ======
 +**P: In Stubsmi wurden (im Hinblick auf Adressraumtrennung) als allererstes Systemcalls eingebaut, warum?**\\
 +S: Privilegientrennung -> privilegierte Befehle nur von Kernel ausführbar machen. Z.B. Adressraumwechsel.
 +
 +**P: Ihr habt Syscalls auf zwei Arten implementiert, eine langsame und eine schnelle. Welche waren das?**\\
 +S: Langsam: Interrupts/Traps. Schnell: Spezialbefehle sysenter/sysexit
 +
 +**P: Was war da der Unterschied?**\\
 +S: Spezialbefehle sichern keinen Kontext.
 +
 +**P: Wie können bei Syscalls die Parameter übergeben werdem?**\\
 +S: Über Register, über Stack (Primitivbefehle) und im Befehlstrom kodiert (Komplexbefehl). Betriebsystem entscheidet über Registerreihenfolge
 +
 +**P: Warum werden im Dispatcher (bei Parametern in Registern) alle Register gespeichert, auch wenn sie keine Parameter enthalten?**\\
 +S: Um Kerneldaten nicht in den Userspace zu leaken.
 +
 +**P: Braucht man das auch bei Parameterübergabe aufm Stack? Bzw welche Vorteile gibt es hier? **\\
 +S: (hier hab ich etwas gebraucht bis ich darauf gekommen bin) Speicherzugriff, nurnoch ein Register notwendig für SYSNUM. Man spart Kopiervorgänge, theoretisch beliebig viele Parameter möglich (nicht durch Registeranzahl begrenzt).
 +
 +**P: Warum macht man das eig nicht öfter? Immerhin wollten Betriebsystementwickler ja auch sysenter/sysexit weil es schneller ist?**\\
 +S: Man muss bei komplett privaten Adressräumen den Stack im Kernel mappen -> kostet auch Zeit.
 +
 +**P: Wie sieht so ein Komplexbefehl aus?**\\
 +S: Befehlsatzebene: Opcode + Argumente -> Im Endeffekt wie ein normaler Befehl auch, muss aber von CPU unterstützt werden.
 +
 +**P: Welche Vor-/Nachteile haben den Komplexbefehle bzw. Primitivbefehle?**\\
 +S: Komplexbefehle brauchen keine Register/keinen Stack zur Parameterübergabe.
 +
 +**P: Was ist denn der Unterschied zwischen partiell und vollständig privaten Adressräumen?**\\
 +S: Kernel im Userspace gemappt. Jedoch nur zugreifbar von Kernel (Ring 0). (mehr wollte er hier nicht)
 +
 +**P: Wo stehen diese Unterschiede?**\\
 +S: Im Seitendeskriptor wenn man Paging verwendet.
 +
 +**P: Ok gut, aber braucht man das überhaupt? Also geht das nicht auch ohne dem "privilege"-Eintrag im Seitendeskriptor?**\\
 +S: (wurde hier etwas verwirrt weil er sich selbst auch verwirrt hat, aber im Endeffekt wollte er folgendes:) Ja, ohne kann man nämlich nicht zwischen Kernel- und Userspaceadressbereichen unterscheiden und unsere Privilegientrennung ist nutzlos.
 +
 +**P: Was will man denn tun wenn man Syscalls bekommt die einen Pointer enthalten? Z.B. bei read/write**\\
 +S: Man muss überprüfen, ob der Pointer auf den Userspace zeigt.
 +
 +**P: Warum? Ist das sonst iwie kritisch? Was würde passieren, wenn man das nicht tut?**\\
 +S: Bei read: Man könnte eine Kerneladresse übergeben und hier das System die Pagetables gezielt kaputtschreiben lassen -> Zugriff auf alles.\\ Bei write: Man könnte Daten aus dem Kernel extrahieren.
 +
 +
 +**P: Es gibt auch noch Einadressraumsysteme. Was benötigen die? Wieso geht das mit mpstubs aus BS nicht?**\\
 +S: mpstubs: 32bit-System -> Adressraum ist deutlich zu klein. Man benötigt ein ausreichend großen Adressraum (min. 64bit!), zufällige Verteilung von Speicher.
 +
 +**P: Was bringt das dann?**\\
 +S: Anwendungen finden sich gegenseitig nur sehr unwahrscheinlich. Security by Obscurity. Adressraum durchsuchen dauert zu lange!
 +
 +**P: Braucht man für die Absicherung sonst noch was?**\\
 +S: Hab erstmal was von MMU gesagt, da meinte er aber die braucht man sowieso (man hat ja weniger Speicher als der Adressraum groß ist). Hab dann Capabilities/Befähigungen genannt. Beispiel: Adresse weitergeben.
 +
 +
 +Es wurde teilweise noch etwas mehr gefragt, aber ich kann mich leider nicht mehr daran erinnern. Note war sehr gut.