ITEO - Virtualisierung

ITEO - Virtualisierung

ITEO - Virtualisierung

Cyrille Ulmi

Cyrille Ulmi

Set of flashcards Details

Flashcards 94
Students 51
Language Deutsch
Category Computer Science
Level University
Created / Updated 06.06.2017 / 23.11.2023
Weblink
https://card2brain.ch/box/20170606_iteo_virtualisierung
Embed
<iframe src="https://card2brain.ch/box/20170606_iteo_virtualisierung/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

(3) Standard File Descriptors

Jeder Prozess hat seine eigene File Deskriptoren Tabelle. welch Pointer enthält zu allen I/O Streams

#0 stdin (Keyboard -> Program)
#1 stdout (Program -> Display)
#2 stderr (Program -> Display -- WENN ERROR)

Wieviele Threads pro Prozess sind typisch für ältere Systeme & Embedded Systems

Ein Thread pro Prozess

Welche 4 Hauptbausteine hat ein Prozess Model?

Wo unterscheiden sich das Single-Threaded Process Model und das Multithreaded Process Model?

  • zusätzlich Thread Control Block
  • UserStack & KernelStack existieren in jedem Thread

In welchen Teilen des Thread Models geschehen typischerweise Berechtigungskonflikte wie Deadlocks?

Deadlocks existieren nicht auf den Threads. Nur "höhere" Datenmodelle wie Datenbanken können zu Deadlocks führen, Caches selbst haben nie Deadlocks

Zählen Sie einige Vorteile von Threads auf

  • Weniger Zeit für Erzeugung benötigt (verglichen mit Prozesserzeugung)
  • Weniger Zeit für Beenden
  • Switch zwischen Threads benötigt weniger Zeit
  • Kommunikation zwischen den einzelnen Threads ist auf Grund des gemeinsamen Process Contexts (gleicher Address Space) auf natürliche Weise gegeben

Was ist ein User level Thread (ULT)

  • Thread Mangement wird in der Applikation gemacht
  •  Der Kern hat keine Kentnis von der Existenz eines Threads.
  • Frühere Version der JVM funktionierten auf diese Weise (eigene Implementation des Schedulings)
  • Neigen mehr zu kooperativem als zu preemptivem Scheduling

Was ist ein Kernel level thread? (KLT)

  • Thread Management wird vom kernel gesteuert (z.B. Windows kernel besitzt ein Interface, welches vom Entwickler explizit angesprochen werden kann)
  • Der Kern kann mehrere Threads vom gleichen Prozess auf mehrere Prozessoren verteilen (Scheduling)
  • Wenn ein Thread blockiert ist kann der Kern einen anderen Thread vom gleichen Prozess berücksichtigen
  • Kern Prozeduren können multithreaded ausgeführt werden

Beschreiben Sie den kombinierten Ansatz von User Level Threads (ULT) & Kernel Level Threads(KLT)

Für multithreaded execution verwendet das OS ausschliesslich Kernel Threads. Dazu formieren User-Threads zusammen mit LWPs (light weight process) Kern Objekte. Das erlaubt dem User-Thread ausgeführt zu werden, unabhängig von anderen Threads im gleichen Prozess.

Zwei Level Thread Modell
§ Obwohl Threads schnell verlegt werden, sind erzeugen/löschen teure Operationen und jeder Thread braucht einen Stack.
§ Daher wurde weitere Schicht Thread Management eingeführt
§ User Threads werden den LWPs (Light Weight Processes - just for Threads) zugeführt.
§ Nur die Threads auf LWPs sind aktiv

Kernel Threads
§ Fundamentale Einheit die zum Prozessor verlegt wird.
§ Switching Kernel Threads geht sehr schnell.
§ Werden für Kernel Tasks verwendet (process execution, interrupt handling)

Können User level Threads Multithreaded ausgeführt werden?

Nein, nur Kernel level Threads

Was sind System Calls?

benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen, wie etwa das Lesen einer Datei. Dabei wird die Kontrolle vom Programm an den Kernel übergeben

Welche Windows Thread Staten existieren?

Zugriff auf Resourcen durch Access token gewährleistet (Unix - Accesstoken)

Definieren Sie virtualisierung

Als Virtualisierung bezeichnet man die Erstellung einer virtuellen Version von einer physischen. Das können Betriebssysteme, Server, Storage oder auch Netzwerk-Ressourcen sein.

--> Virtualisierung ist so vielschichtig, dass es keine allgemein gültige, prägnante Definition gibt. Kern der Virtualisierung ist die Abstraktion von der darunterliegenden Gerätschaft.

--> Dem OS wird vorgegaukelt, es habe die gesamte HW unter Kontrolle

Zählen Sie einige Virtualisierungsbereiche auf 

  • Server
  • Speicher
  • Applikationen
  • Desktops
  • Netzwerke (LAN, SAN)

Welche Arten von Server Virtualisierungen existieren?

  • HW Partitionierung
  • HW Virtualisierung (Hypervisor)
  • OS Virtualisierung

Zählen Sie Gründe auf, weshalb Virtualisierung Sinnvoll ist

  • Ressourcenoptimierung
  • Konsolidierung
  • Maximierung der Uptime
  • Schutz der Applikation von Serverausfällen
  • Einfache Migration wenn Anforderungen wechseln
  • Schutz der Investitionen in existierende "legacy Systems"

Beschreiben Sie Emulation

  • Ein Computersystem, das ein anderes nachahmt.
  • Nachgebildetes System kann mit gleichen Daten vergleichbare Programme ausführen und möglichst die gleichen Resultate erzielen.
  • Sehr rechenintensiv und somit eher weniger brauchbar.

Beschreiben Sie Simulation

  • imitiert die Operationen eines real-world Prozesses oder Systems über die Zeit
  • verlangt als erstes die Entwicklung eines Modells
  • Modell repräsentiert das System selber während die Simulation die Operationen über die Zeit repräsentieren
  • Datenblatt --> mit Daten kann man ein Modell entwickeln

Beschreiben Sie Computer Simulation

  • Simulationsprogramm das auf einem einzelnen Computer oder einem Netzwerk von Computern läuft
  • Ziel: Verhalten eines Systems reproduzieren
  • Verwendet ein abstraktes Computer- oder Rechenmodell um das System zu simulieren

Beschreiben Sie Virtualisation

  • Erstellung einer virtuellen (so in der Realität nicht existierenden) Version von etwas.

Nach Folien:

Virtualität ist die Eigenschaft einer Sache, nicht in der Form zu existieren, in der sie zu existieren scheint, aber in ihrem Wesen oder ihrer Wirkung einer in dieser Form existierenden Sache zu gleichen.

Virtualisierung in Computing, bezieht sich auf den Vorgang der Erstellung einer virtuellen (und nicht tatsächlichen) Version von etwas wie zB. virtuelle Computer-Hardware-Plattform, Betriebssystem (OS), Speichergerät oder Computer-Netzwerk-Ressourcen. Der Begriff "Virtualisierung“ hat ihre Wurzeln bei den Mainframes der 1960er Jahre, in denen die logische Unterteilung der Mainframes Ressourcen für unterschiedliche Anwendungen angewendet wurde. Seitdem hat sich die Bedeutung des Begriffs weiter entwickelt

Was sind die Herausforderungen einer VMM

VMM - Virtual Machine Monitor

- Betriebssystem und Applikationen wissen nicht, dass eine VMM existiert oder dass sie Ressourcen mit anderen VMs teilen.

- VMM sollte den SW Stack von Gästen gegenüber anderen VMM Gästen isolieren.

- VMM sollte vor allen anderen Gast-SW geschützt laufen.

- VMM sollte ein “virtuelle Plattform Interface” zu den Gast-SW präsentieren.

Wie werden Hypervisor auch genannt?

VMM - Virtual Machine Monitor

Was sind die drei Anforderungen von Popek und Goldberg an ein physisches und virtuelles System? Wann ist ein System Virtualisierbar?

§ Gleichheit
- Jedes Programm ausgeführt in einer virtuellen Maschine verhält sich genau so wie auf der original Maschine direkt ausgeführt.

§ Effektivität
- Wann immer möglich sollten die Instruktionen nicht auf dem virtuellen Prozessor sondern direkt auf dem physischen Prozessor ausgeführt werden (ohne Intervention von der VMM).
- harmlose* Instruktionen werden von der Hardware direkt ausgeführt.

§ Ressourcenkontrolle
- VMM hat die komplette Kontrolle über Ressourcen wie Memory, I/O der Peripheriegeräte, aber nicht unbedingt über Prozessoraktivität.
- Es muss für jedes Programm unmöglich sein die System Ressourcen zu beeinflussen (z.B. verfügbares Memory). Der Verteiler (Allocator) des Kontroll-Programmes muss bei jedem dieser Versuche aufgerufen werden.

Nach Popek und Goldberg ist eine CPU (ISA) virtualisierbar, wenn alle privilegierten Instruktionen eine Exception erzeugen, wenn sie in einem unprivilegierten Prozessormodus ausgeführt werden. Alle sensiblen Instruktionen sind privilegiert .

Nach Theorem 1
§ Für beliebige Prozessorarchitekturen der dritten Generation kann eine effektive VMM aufgebaut werden, wenn der Satz der kontrollkritischen Instruktionen für eine Prozessorarchitektur eine Untermenge des Satzes der privilegierten Instruktionen darstellt.
§ Im Prinzip besagt das Theorem, dass es, um einen VMM zu bauen genügt, wenn alle Instruktionen, die das korrekte funktionieren der VMM beeinflussen können (kontrollkritische Instruktionen) immer (ge)trapped werden und zur Kontrolle an die VMM weitergegeben und verarbeitet (emuliert) werden. 

Was ist ein Virtual Machine Monitor (Hypervisor)? Aus welchen drei Hauptteilen besteht dieser?

VMM ist eine Schicht von System Software und ermöglicht VMs sich eine Hardware Plattform zu teilen. Er besteht aus einem Control Program mit 3 Teilen:

  • Dispatcher --> dessen Initial Instruction am Speicherplatz liegt wohin die HW trapped
  • Allocator --> der entscheidet wer welche Systemressourcen bekommt. Er hat 1 oder n Member (VM)
  • Interpreter --> für alle Instruktionen die trappen, eine Interpreter Routine pro privilegierte Instruktion

Welche zwei Instruktionsklassifikationen gibt es?

Existenz mindestens von 2 Betriebsmodi
- Uneingeschränkter (Supervisor) Modus
- Eingeschränkter (User) Modus

§ Privilegierte Instruktionen
Trap wenn Prozessor im User Modus, kein Trap falls im System Modus (Supervisor Modus).
- Kontrollkritische Instruktionen (control sensitive)* Jene die versuchen die Konfigurationen von Systemressourcen zu verändern.
- Verhaltenskritische Instruktionen (instruction sensitive)* Jene Instruktionen welches Verhalten oder Resultat abhängig ist von der Konfiguration der Ressourcen (Inhalt der Relocation Register oder Prozessor Modus).

§ Harmlose Instruktionen sind alle nicht sensitiven Instruktionen.

Was ist eine Trap?

Was sind Vorteile der Hypervisor Virtualisierung?

Was ist der Zusammenhang zwischen "Traps", "IBM Mainframes" und "x86 CPUs"?

Jeder Befehl ist grundsätzlich trapbar bei IBM Mainframes

In x86 Prozessoren sind nicht alle privilegierten Instruktionen trapbar. Die x86 CPU ignoriert die nicht trapbaren.

Was sind die Sicherheitsringe? Beschreiben Sie die 4 Ringe, welche die Privilegien eines Systems festlegen.

CPUs hat die Möglichkeit sicherzustellen, dass die Instruktion auch das entsprechende Privileg hat.

CPL (current privilege level)
2bit = 4 Privilegien = 4 Sicherheitsringe

Beschreiben Sie Full Virtualization mit Binary Translation

Binary Translation: Emulation of one instruction set by another through translation of binary code. Sequences of instructions are translated from the source to the target instruction set.

  • Schafft es, das Gast OS auf Ring 1 anzusiedeln und den VMM auf Ring 0.
  • Nicht ausführbarer kontrollkritischer Code wird übersetzt und das Resultat gecached, damit nur einmal die viel langsamere Übersetzung durchgeführt werden muss.
  • Übersetzt "kritischen" in "harmlosen" Code.

Binary Translation Overhead:
• Ein „native System Call“ braucht 242 Prozessor Zyklen
• Ein Binary Translated System Call eines 32 bit Gast OS im Ring 1 braucht 2308 Zyklen. 

Beschreiben Sie OS Unterstützte (Para) Virtualisierung

  • Gast OS liegt auf Ring 0. Zwischen Gast OS und Hardware liegt ein Virtualization Layer.
  • Über das Virtualization Layer ersetzt der Hypervisor nicht virtualisierbare Instruktionen mit Hypercalls, um mit der Hardware kommunizieren zu können.
  • Die Übersetzung von "kritischen" in "harmlosen" Code erfolgt bei der Paravirtualisierung im Source Code.

Wo agieren Hypervisors heutzutage (welchem Ring)?

root mode (privilegiertes Level)

--> Alle Befehle werden getrappt

Privilegierte und sensitive Calls trappen automatisch zum Hypervisor ohne binary translation

Kontextwechsel wird durch Virtual Memory Control Structure verfolgt.

Beschreiben Sie den Unterschied zwischen VMs mit und ohne Hypervisor

Welche technologien gibt es für die Memory Rückewinnung im Virtualisierungsbereich?

* Page Sharing - Pages teilen - homogene Gast Systeme haben viele identische Pages
* Page Patching - Pages "erweitern" - teilen von fast gleiche Pages - auch viel vorhanden
* Page Compress - Pages die in naher Zukunft nicht verwendet werden komprimieren
* Ballooning - Wenn das Memory vom GastOS knapp wird - künstlich aufblasen

Wie werden Zonen (Solaris) auch genannt?

Container (Linux)

Wie ist eine Hypervisor Virtualisierung aufgebaut?

Wie sind Container/Zonen aufgebaut

Was ist der Hauptunterschied zwischen Hypervisor und Container?

Welche ASDF ist unten korrekt aufgeführt?

Was kann eine OS Virtualisierung NICHT?

  • Keine „fremden“ OS möglich. Nur gleiche OS können virtualisiert werden. Beispiel: kein Windows Programme möglich auf Linux Kern.
  • Zonen müssen auf dem selben Patch Level laufen wie OS/Kern.
  • Anforderungen an SysAdmin steigen (bei Hypervisor auch)
  • Ressource Management muss eingeschaltet werden.