Kapitel 1

Werbung
1 Introduction to Virtual Machines
Werden Abstraktionsniveau in gut definierte Schnittstellen organisiert.
Levels teilen die Softwares von der Maschine (Plattform).
‐ VM’s sind durch JAVA‐VM und MultiCore‐Proc bekannt geworden.
‐ Systemarchitektur: voneinander abhängige Hardware & Softwarekomponenten haben
„wohldefinierte Schnittstellen“ (z.B. ISA), die erst ein Zusammenspiel ermöglichen.
‐ Abstrahiert von Basisimplementation  hohe Flexibilität
‐ VM  Hardware: kompatible Schnittstellen.
- Hardware VM: flexibel, abstrakt.
‐ Abstraktion ermöglicht Spezialisierung der VMs.
- Große Vielfalt an VMs!
Vom Skript:
Abstraktionslevel / ‐stufen, hierarchisch:
‐ Auf Maschinenebene viel Hardwaredetails (HD: CHS):
1. Alle Komponenten sind physische Ressourcen
2. Reale Eigenschaften
3. Interface definiert, um Ressourcen anzusprechen
‐ Auf Betriebsebene kaum Hardwaredetails (HD: Files):
1. Die Komponenten sind logische Verweise
2. Weniger Restriktionen durch Hardware!
Wohldefinierte Schnittstellen:
‐ Ermöglicht unabhängiges Arbeiten an Hardware bzw. Software
1. Beispiel: Instruction Set wird von Intel und AMD in deren CPU umgesetzt. Werden die
Spezifikationen/Schnittstellen eingehalten, funktioniert das Windows Binary bei Beiden.
‐ Beim Betriebssystem für Applikationen.
‐ [Applikationen für Benutzerkommunikation]
‐ Problem: unterschiedliche Instruction Set (IA32 – IBM PowerPC) und unterschiedliche OS
(Linux – Windows)
Die Hardware Ressourcen werden von EINEM Betriebssystem verwaltet (set von function call):
‐ Eingeschränkte Flexibilität
‐ Sicherheits‐ und Fehlereingrenzung im multi‐user Betrieb.
 Virtualisierung löst diese Probleme! Entspannt die Grenzen.
‐ Alle Ressourcen werden gemappt. Microsoft hat Kompilierungen Entwickelt, die Mappen eine HLL
zum gleichen Instruktion Set.
‐ Es gibt das virtuelle Gastsystem, das auf das realem Hostsystem gemappt wird  Isomorphismus
Virtualisierung ist keine Abstraktion, da keine Details versteckt werden, sondern zu dem System
darunter (Host) gleich sind! Bring mehr Flexibilität.
Beispiel, HD: Virtuelle Disk ist wie ein großer File, selbe Operationen, etc.
Virtualisierung ist ein Isomorphismus!
Diversität = + Innovation, - Interoperabilität
Weiterer Vorteil: Höhere Softwareportablität und reduzierte Flexibilität. Emulation erlaubt crossplattform Kompatibilität und Dynamic, on the fly, optimization
Anders: Hochsprache (VM ohne reale Maschine):
‐ Java erstellt das Konstrukt
‐ Java‐VM führt (platformunabhängig!) das Konstrukt aus
1.1. Computer Architecture
ISA – Instruction Set Architecture (Computer Architektur: Architektur ist definiert durch Interfaces
und hat eine Implementierung):
‐ Befehlssatzarchitektur, die im Prozessor oder eben in einer Virtuellen Maschine implementiert ist.
1
‐ Wenn ein Programmierer in einer ISA schreibt, dann lässt sich der Code auf jedem Prozessor,
der diese ISA zur Verfügung stellt, ausführen  Kompatibilität / (Reproduzierbarkeit)
‐ Es gibt zwei Modi: die user ISA (unkritische Ressourcen) und system ISA (kritische
Ressourcen; supervisor) – Seite 7.
ABI – Application Binary Interface:
‐ Schnittstelle zw. Programm und Shared HD Ressourcen
‐ Enthält nur user ISA! ABI lauft nur auf dem gleiche ISA und OS
‐ Hardware Ressourcen über OS system call interface
API – Application Programming Interface:
‐ Definiert die Programmanbindung auf Quelltextebene (HHL).
- durch den typischen standard library
- Applikationen die man zu API schreibt, können schnell kompiliert und portiert werden.
- manche API routine sind wrappers: Kode der übersetzt API zu binary, der von OS erwartet ist
1.2. Virtual Machine Basics
Eine Maschine aus Sicht eines Prozess der ein Programm ausführt ist: Eine Kombination aus
Betriebssystem und der darunterliegenden user‐level Hardware (ABI stellt Interface zwischen
Prozess und Maschine).
Eine Maschine aus Sicht eines OS ist: Eine Implementierung der unterliegenden Hardware (ISA stellt
Interface zwischen System und Maschine).
Eine virtuelle Maschine ist eine Kombination aus realer Leistung (Host) und virtualisierende Software.
Dabei können die Ressourcen differieren.
Virtualisierungsprozess:
1. Mapping der virtuellen Ressourcen und Zustände (registers, memory, files  zu reale Ressource)
2. Aufruf der benötigten Maschinen Instruktion und/oder System calls
Prozess‐VMs, ABI, emuliert Benutzeranweisungen und Systemaufrufe, runtime
System‐VMs, ISA, emuliert die Hardware (ISA), VMM genannt, versorgt ein komplettes System.
Guest sieht eine andere ISA als diese, die von HD unterstutzt ist.
Real Maschine = Native Maschine (Guest der emuliert wird)
Emulation, Repliziert, Komponiert
1.3. Process Virtual Machines
Virtual ABI: replizierung, emulierung, optimisierung
1.3.1. Multiprogramming
Jeder Prozess bekommt eine vollständige Maschine simuliert.
1.3.2. Emulation and Dynamic Binary Translation
Ein ISA muss emuliert werden, auf dem HD der für einen anderen programmiert ist. (ein Binary hat
eine andere ISA, als die Ziel‐ISA). Methoden:
‐ Interpretation: ein Interpreter führt das Binary in der Ziel‐ISA (fetches, decodes) aus (niedriger
startup overhead, langsam, 10 Target für eine Ziel Instruktion).
‐ Binary translation: ein Translator übersetzt das Programm in die Zielarchitektur vor der Ausführung
(wenn gecached, hoher startup overhead, schneller).
 Staged emulation combined with profiling (interpretier und zusätzliche Optimierung an
übersetzten Code)
Digital FX!32 hat Alpha HD: Translation passiert inkrementell während das Runtime
1.3.3. Same‐ISA Binary Optimizers
Same ISA dynamic binary optimization  collect Profile und nutze es um das Code zu optimieren
z.B. Dynamo System, von HP
1.3.4. High-Level Language Virtual Machines: Platform Independence
FX!32 zu Alpha: portabilität mit case-by-case basis
Problem: Ausführen eines Quell‐binary in einer abweichenden Zielarchitektur erfordert eine VM, die
die Zielarchitektur unterstützt.
Lösung: Software Framework – high Level language (= Process-level VM)! Plattform unabhängig! Bsp.
Pascal.
2
Alt: Software wird als Source geschrieben, kompiliert (lexical, syntactical und semantic) zu
intermediate Code und Objekt Code (in beliebigen ISA/OS neucompiliert) ‐> erst dann ausgeliefert.
Neu: Source, portabler code, Auslieferung an VM, VM Memory Image loader, Host Instruktion.
Beispiel: .NET & Java, bei Sofistizierte HLL: Kompilierung im Host Maschine Code, auf dem Host
ausgeführt.
CLI (Common Linguage Infrastrukture) fundierte .NET  ISA ist in bytecodes
1.4 System Virtual Machines
Legacy  Server  Heute: Sicherheit danke Isolation, +OS gleichzeitig unterstutzt
Die VMs sind voneinander isoliert. Bei Fehler im Gastsystem bleibt das Hostsystem unverletzt.
Multiple OS  VMM  Single Hardware
1.4.1 Implementation of System Virtual Machines
Implementationen:
1. Direkt nach der Hardware; Problem: Erst VMM, dann alle OSs / I‐O‐Treiber müssen vorhanden
sein! Scratching and Installing on top
2. Erst Hostsystem, dann VMM: result hosted VM; Problem: Leistungsverlust (mehrere Layers)
Problem: ISA ist unterschiedlich, z.B. OS X und Windows.
1.4.2 Whole System VMs: Emulation (Performance ist zweite prio)
Lösung: whole‐system VM: Applikation und OS müssen emuliert werden. Dazu Windows: software
VM und OS X  Hardware (oder andersrum). Erscheint als eine komplexe Applikation!
Hardware wird ebenfalls vollständig emuliert (VM Managment and Trap Handling)
Problem: Wenn die Hardwareeigenschaft in den OS grundunterschiedlich sind!
1.4.3 Codesigned Virtual Machines: Hardware Optimization
Codesigned VM für Hardware‐Optimierung: Benutzen innovative ISA (keine nativ ISA) entweder auf
Host oder Gast. VM SW ist Teil der HW Implementierung
Das Gastsystem nutzt niemals direkt die Hardware (spec ISA  native ISA); Transmeta Crusoe
IBM AS/400 hat viele codesigned Technikums.
1.5 Taxonomy, Klassifizierung:
1. Prozess‐VM (ABI + System calls):
a. Gleiche ISA: Multiprogramm‐System; Dynamic Binary Optimizer
b. Unterschiedliche ISA: Dynamic Translater; HLL VMs
2. System‐VM (unterstutzt vollständige ISA):
a. Guest-Host Gleiche ISA: Classic‐VMs; Hosted VMs
b. Unterschiedliche ISA: Whole‐System‐VMs; Codesigned‐VMs
1.6 The Versatility of Virtual Machines
Java, Linux on Windows
1.7 The Rest of Book System and Process VMs.
Case Study: Shade simulation  nutzt mehrere emulationen (one by one simple fashion, binary
translation)
Same ISA: dynamic binary optimization HP Dynamo
Pascal-P codes
HHL – High performance IBM Jikes
Codesigned VMs: Transmeta Crusoe, IBM AS/400
3
Herunterladen