====== VM-Prüfung 21.03.18 ====== ===== Fragen ===== Die Fragen skizzieren nur den Ablauf und sind nicht vollständig. Anfangsfragen: * Was für Virtualisierungsstechnicken haben wir in der Vorlesung besprochen? * Wenn ich eine SPARC CPU-Simulieren möchte, kann ich da neben Emulation noch andere Virtualisierungstechniken verwenden? Emulation & Jit: * Emulation was muss ich da alles machen um Instruktionen auszuführen? * Wie kann ich da optimieren? * Was ist die Grundidee eines Jits? * Was wird da optimierbar? * Blöcke: Wie lang/kurz sollten sie sein? Wie finde ich sie? * Könnte ich den Instruktion Pointer auch ganz weglassen? * Self modifying code: Was bedeutet das fuer meine Emulation? (--> Checks in der MMU) * Self-modifying code: wer verwendet sowas ueberhaupt moch? * Jit freundliche HW: wie sieht das bei der JVM aus? * Sichere Pointer: Wie bekomme ich die? Und wie wird der Code effizient geprüft? Bibliotheksbasierte - Virtualisierung * Was ist die Grundidee? * Was muss fuer die Ausfuerung eines Programmes alles gegeben sein? * Welche Libs tausche ich aus? * Kann ich das einfach immer machen? * Wie verhält sich die Performance? * Was kann ich machen wenn das Programm das ich virtualisieren möchte statisch gebunden ist? Paravirtualisierung: * Wie koennte ich auf Basis eines Betriebssystem virtualisieren? * Was hier die Grundidee? * Welche Dinge bilde ich hier worauf ab? * CLI/STI kommen im Kern sehr haeufig vor, sigprocmask zu verwenden ist nicht sehr performant. Wie kann man das verbessern? * Welche Race-Condidtions tretten beim setzen des enabled flags dann auf? ===== Vorbereitung & Ergebnis ===== Ich habe die Folien mit Hilfe der Videos durchgeabreitet und halt die Protokolle angesehen. Ergebnis: sehr gut