Title: IN0009_GBS / GBS: Kapitel 4: Modellierung
On every note of this deck, unless a note says otherwise:
Logo: tum_logo.png

Front: Welche anforderungen gibt es an VMs?
Back: - Equivalenz: BS und andere anwendungen funktionieren ohne Änderungen
- Resource Control: Hypervisor in kontrolle über ressourcen
- Isolation: VMs voneinander isoliert
- Effizienz: Möglichst niedriger overhead
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist ein VMM / Hypervisor
Back: - Virtual Machine Monitor
- Überwacht VM(s)
- Hat kontrolle über die Ressourcen der VMs
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Q: Bei [...] VMs implementiert der Hypervisor eine virtuelle [...]
A: System; ISA
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Q: Die VM ist für das Gast BS [...]. Aus der sicht des Gast BS hat es [...] über die Hardware
A: transparent; vollständige Kontrolle
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Welche Gründe gibt es für System VMs?
Back: - Emulation
- Isolation
- Sicherheit (Der hypervisor braucht keine hohen Priviliegien)
- flexiblere Ressourcennutzung
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist Binary translation?
Back: - Hypervisor interpretiert/emuliert Binärcode der Gast VM
- Sehr komplex, overhead durch software
- Gast BS kann unmodifiziert ausgeführt werden
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist Hardware unterstützte Virtualisierung?
Back: - Virtualization extensions: Intel VT-x, AMD-v, ARM
- Sehr effizientes implementieren von VMs
- Nicht auf allen Geräten unterstützt
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist der Unterschied zwischen den System/Kernel mode und user mode der CPU?
Back: - Im user mode sind einige Instruktionen nicht erlaubt (insb. IO)
- Der Kernel mode sollte möglichst nur vom BS Kernel ausgeführt werden
- Typ 1 Hypervisors werden oft im Kernel mode ausgeführt
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Welche drei Instruktionsklassen gibt es?
Back: - Privileged Instructions (cpu System mode)
- Sensitive Instructions (Modifizieren Systemkonfiguration oder verhalten sich in user mode/system mode unterschiedlich)
- Innocuous Instructions (Nicht privilegiert)
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was versteht man unter "Trap-and-emulate"?
Back: - Hypervisor definiert bitmap an zugelassenen Instruktionen
- Ausführung von nicht zugelassener Instruktion führt zu Trap
- Hypervisor kann nach Trap die Instruktion emulieren
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was sind VTs in CPUs und was gab es vor deren Einführung?
Back: - Virtualisierungsechnologien -> CPU erweiterungen
- Vorher: Dynamischen Umschreiben von Instruktionen
- Binary Translation, Trap and emulate
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Q: Hypervisor teilt den [...] zwischen VMs auf,
da sonst mehrere BS um diesen [...]
A: physischen Speicher; konkurrieren
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist der Unterschied zwischen Typ 1 und Typ 2 Hypervisors?
Back: - Typ 1: Wird direkt auf Hardware ausgeführt
- Typ 2: Wird auf host BS ausgeführt (z.b. KVM, Virtualbox)
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was versteht man unter einer "Shadow Page Table"?
Back: Shadow page tables werden verwendet, um GPA (Guest Physical Address) in HPA (Host Physical Address) zu übersetzen. Dem Gast wird vorgetäuscht, dass er direkten Zugriff auf die Hardware hat.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Wie kann die Übersetzung von GPA (Guest Physical Address) in HPA (Host Physical Address) beschleunigt werden?
Back: Hardwareunterstützung (z.B. Intel EPT, AMD RVI) kann durch nested page tables die Übersetzung beschleunigen. Dabei wird zunächst von der MMU die GVA (Guest Virtual Address) zu GPA und dann GPA zu HPA übersetzt.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was sind Linux Namespaces?
Back: Linux Namespaces sind eine Technologie, um Systemresourcen zu isolieren. Es gibt verschiedene Namespaces für verschiedene Ressourcen, z.B. PID, Network, Mount, IPC, UTS, User.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist der Unterschied zwischen Namespaces und Cgroups?
Back: Namespaces isolieren Ressourcen, Cgroups kontrollieren Ressourcen.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist ein Mount Namespace?
Back: Mount namespaces isolieren eine Menge von Mountpoints für eine Gruppe von Prozessen. Dadurch können verschiedene Sichten auf die Verzeichnisstruktur erzeugt werden.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist ein PID Namespace?
Back: PID Namespaces isolieren die Prozess-ID-Sichtbarkeit. Prozesse in verschiedenen Namespaces können die gleiche PID haben.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist ein Network Namespace?
Back: Network Namespaces isolieren das Netzwerkstack. Jeder Namespace hat seine eigene Netzwerkschnittstelle, IP-Adressen, Routing-Tabellen, etc.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was ist ein IPC Namespace?
Back: IPC Namespaces isolieren Interprozesskommunikationsmechanismen, z.B. Shared Memory, Semaphores, Message Queues.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Wofür können cgroups verwendet werden?
Back: Cgroups können verwendet werden, um Ressourcen wie CPU, Memory, I/O, etc. zu kontrollieren und zu limitieren.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Was macht der Befehl unshare?
Back: Der Befehl unshare erstellt einen neuen Namespace und führt das Programm (im Argument), oder "${SHELL}" aus.
Switches wie --pid, --mount, --net, etc. können verwendet werden, um den Typ des Namespaces zu bestimmen.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Wo ist das cgroup Pseudo-Dateisystem gemountet?
Back: Das cgroup Pseudo-Dateisystem ist standardmäßig unter /sys/fs/cgroup gemountet.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Wie können cgroups konfiguriert werden?
Back: Für jede cgroup gibt es ein Verzeichnis unterhalb des cgroup Pseudo-Dateisystems (/sys/fs/cgroup/{GROUP}). Dort gibt es verschiedene Dateien, die die Ressourcensteuerung konfigurieren.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Wie kann eine cgroup erstellt werden?
Back: Anlegen eines Verzeichnisses unterhalb des cgroup Pseudo-Dateisystems (z.B. /sys/fs/cgroup/foo).
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Wie kann ein Prozess in eine cgroup verschoben werden?
Back: Ein Prozess kann in eine cgroup verschoben werden, indem die PID in /sys/fs/cgroup/{GROUP}/cgroup.procs geschrieben wird.
Title: IN0009_GBS::GBS: Kapitel 9: Virtualisierung

Front: Wie werden Stellen in einem Petri-Netz repräsentiert?
Back: S ist die endliche Menge von Stellen. Sie werden graphisch als Kreise repräsentiert.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wie werden Transitionen in einem Petri-Netz repräsentiert?
Back: T ist die endliche Menge von Transitionen. Sie werden Graphisch als Rechtecke repräsentiert.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Aus welcher Menge wird die Flussrelation eines Petri-Netzes konstruiert?
Back: (S x T) union (T x S)
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Welche Kapazität hat eine Stelle die nicht explizit markiert wurde?
Back: Unendlich.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wann kann eine Transition schalten?
Back: Im folgenden ist M(s) die Belegung an der Stelle s, w(s, t) das Kantengewicht, und c(s) die maximal Belegung der Stelle s.
t ist eine Transition in T.
1. Für alle s in .t (Eingehende Stellen) gilt: M(s) >= w(s, t)
2. Für alle s' in t. (Ausgehende Stellen) gilt: M(s') <= c(s') - w(t, s')
Generell kann eine Transition also nur schalten, wenn alle Belegungseinschränkungen vor und nach der Transition nicht verletzt werden.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Kann sich die Anzahl von Tokens im Laufe der Ausführung ändern?
Back: Ja, z.B kann eine Transition Token duplizieren. Dies geschieht, wenn eine Transition mehrere Ausgangskanten hat, die zur selben Stelle oder zu verschiedenen Stellen führen, wodurch die Anzahl der Token als Ergebnis des Auslösens der Transition effektiv erhöht wird.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Beschreibe wie die Nebenläufigkeit in einem Petri-Netz modelliert werden kann.
Back: Zwei Transitionen t0 und t1 sind nebenläufig, wenn sie unabhängig von einander schalten können, ohne sich gegenseitig zu beeinflussen.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wie kann einen nichtdeterministische Auswahl modelliert werden?
Back: Zwei Transitionen t0 und t1 stehen im Konflikt, wenn sie gemeinsame Eingangs- oder Ausgangsstellen besitzen, und die Anzahl und Verteilung der Marken nur ausreicht, um eine der beiden Transitionen zu aktivieren.
Es entsteht eine Konkurrenzsituation oder ein Konflikt. In diesem Fall kann entweder t0 oder t1 schalten, aber nicht beide gleichzeitig.
In einem solchen Szenario muss eine Entscheidung getroffen werden, welche Transition zuerst schaltet, wir gehen von einem nichtdeterminismus aus.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wann ist die Belegung M' von M in einem Petri-Netz erreichbar?
Back: Wenn es eine endliche Sequenz an Transitionen (bzw. Schaltfolgen) gibt, die M in den Endzustand M' überführt.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wie kann ein Deadlock mithilfe des Erreichbarkeitsgraphen erkannt werden?
Back: Ein Deadlock kann im Erreichbarkeitsgraphen identifiziert werden, indem man nach Knoten sucht, von denen aus keine ausgehenden Kanten (Transitionen) vorhanden sind.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wann ist ein Petri-Netz lebendig?
Back: Ein Petri-Netz gilt als lebendig, wenn es aus jedem erreichbaren Zustand möglich ist, jede Transition des Netzes irgendwann in der Zukunft zu schalten. Lebendigkeit ist also eine Sicherstellung, dass keine Transition für immer blockiert oder deaktiviert wird.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Beschreibe was eine vollständige Verklemmung ist.
Back: Eine vollständige Verklemmung in einem Petri-Netz, auch als Deadlock bezeichnet, tritt auf, wenn das Netzwerk einen Zustand erreicht, in dem keine Transitionen mehr schalten können.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wenn ein Petri-Netz lebendig ist, ist es dann auch verklemmungsfrei?
Back: Ja.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wenn ein Petri-Netz verklemmungsfrei ist, ist es dann auch lebendig?
Back: Nein.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Wann verhungert eine Transition?
Back: Eine Transition t in T verhungert, wenn es eine unendliche Sequenz gibt, in der t trotz Transitionsbereitschaft endlich oft auftritt.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Definiere Fairness als Eigenschaft von Petri-Netzen.
Back: Das Netz ist fair wenn für alle Transitionen t ∈ T gilt:
Es gibt keine unendliche Sequenz (t0 → t4 → t1 → ...) in der t nur endlich oft auftritt, obwohl t unendlich oft transitionsbereit ist.
Es gibt also keine Transition, die verhungern kann.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Nenne zwei Wege Semaphoren in Petri-Netzen zu modellieren.
Back: 1. Kapazitätseinschränkung
2. Initialbelegung der Stelle (Semaphore)
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Ist das zu einem Erreichbarkeitsgraphen zugehörige Petrinetz eindeutig?
Back: - Nein, es können Transitionen hinzugefügt werden, die niemals schaltbereit sind und folglich nicht im Erreichbarkeitsgraphen auftauchen.
- Kapazitäten sind nicht eindeutig.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Beschreiben Sie, wie man in Petri-Netzen (i) lokale und (ii) vollständige Verklemmungen feststellen kann.
Back: Modellierung eines Erreichbarkeitsgraphen. transitionsbereit ist.
- Lokale Verklemmung: Es gibt eine Transition t, so dass ausgehend von einer erreichbaren Markierung M keine Folgemarkierung M' erreichbar ist, in der t
- Vollständige Verklemmung: Es existiert keine Transition t, die unter der erreichbaren Markierung M schalten kann.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung

Front: Was ist der Unterschied einer lokalen und einer globalen Verklemmung?
Back: Bei einer vollständigen Verklemmung kann keine Transition schalten, bei einer lokalen Verklemmung gibt es noch Transitionen die schalten können. Nur eine (oder mehrere) Transitionen können nicht schalten.
Title: IN0009_GBS::GBS: Kapitel 4: Modellierung