ITEO - Virtualisierung
ITEO - Virtualisierung
ITEO - Virtualisierung
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
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 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
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 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.
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.
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)
- 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.