01728 - virtuelle Maschinen

Kursbeschreibung

Auf der Kurseite der Fernuni steht in der Kursbeschreibung

Die Studierenden lernen die grundlegenden Techniken zur Realisierung virtueller Maschinen kennen. Sie sind in der Lage, selbst virtuelle Maschinen zu konfigurieren und für innovative Anwendungen wie z.B. Cloud Computing einzusetzen.

Und ich kann sagen: das ist die größte Untertreibung schlechthin. Wer denkt es bekommt hier ein bisschen VMware-Basics eingetrichtert, der irrt. Gewaltig. Im Endeffekt geht es um das Verstehen des (großartigen) Buches von James Edward Smith und Ravi Nair: "Virtual Machines. Versatile platform for systems and processes". Wow, was für ein Hammer. Dass das Buch auf Englisch ist, vereinfacht das Verständnis nicht gerade. Sind wir alle dieser Sprache zwar genügend mächtig, aber da es durchaus auf so einige Feinheiten ankommt, muss man doch ganz genau lesen und häufiger den Online-Translator bemühen.

Der Kurs ist von den Gebühren deswegen so günstig, da man sich das Buch von Smith und Nair (siehe Buchbox rechts) kaufen muss. Auch ist es ohne Kaufzwang eine Bereicherung für jedes IT-Bücherregal.

Prüfung

Hr. Dr. Hönig prüft diesen Kurs nun nicht mehr. Er hat einen Ruf an die EUFH erhalten und ist diesem gefolgt. Prof. Schiffmann übernimmt nun diese Aufgabe und testet die Prüflinge auf Herz und Nieren. Er ist äußerst fair, erläutert viel von sich aus und möchte sehen, dass Ihr das "Große und Ganze" verstanden habt. Bei Kleinigkeiten kann er auch schon einmal nachbohren. Obwohl Cloud-Computing im Kurs nicht behandelt wird, schadet es nicht sich ein bisschen Wissen diezbezüglich anzulesen. Die Protokolle findet Ihr in der Fachschaft (leider sind noch keine von Prof. Schiffmann drin) und bei Rainer Gerhards, der 2 Stück hochgeladen hat.

Für die Redundanz habe ich alle 3 auch mal hierhin gepackt, da die Fachschaft manchmal doch recht lahm ist:

 

Kursinhalt

Als Kursinhalt kann man eigentlich das komplette Inhalsverzeichnis des Buches abschreiben. Einen Blick erhascht Ihr anhand von Google Books oder in der Buchvorschau bei Amazon. Für die Vollständigkeit, dennoch eine kleine Zusammenfassung anhand des Begleittextes. Lasst euch aber nicht täuschen, diese Dinge sind im Buch bis auf das letzte Byte beschrieben und man muss es komplett und gewissenhaft durcharbeiten. Alles in Allem einer der anstrengendsten und spannendsten Kurse, die ich bis jetzt bearbeitet habe.

Grundlagen zur Virtualisierung und Emulation

Hier geht es los mit der grundlegenden Architektur von Computersystemen (Layer und Schnittstellen) und wo die Virtualisierung ansetzt (ISA/ABI/API). Anschließend gibt es eine Taxonomie von VMs (Same- und Different-ISA, System- und Prozess-VMs) und die Grundtypen der Virtualisierungs- und Emulationsverfahren: Interpretation und Binary Translation inkl. Vor- und Nachteile, sowie Verbesserungen und Optimierungen.

Prozess-Virtualisierung

Prinzipien und Aufbau von Prozess-VMs, Anforderungen an Kompatibilität (extrinsisch und intrinsisch), wie man Speicherhierarchien virtualisiert (Contextblöcke und Shadow Register), Virtualisierung von Zustandscodes. Emulationstechniken zur Implementierung von Prozess-VMs.

Dynamische Optimierung

Laufzeitverhalten, Erzeugung von Knoten- und Kantenprofilen durch Probes, Nutzung dieser für Hot Blocks und Superblocks. Optimierung der erzeugten Programmblöcke und des Programmcodes (Optimierung innerhalb und außerhalb der Blockgrenzen), Compensation Code und Sprungvorhersage.

Virtuelle Maschinen für Hochsprachen

Anforderungen an VMs für Hochsprachen, Aspekte der Java VM (Heap, Garbage Collectoren Mark and Sweep/Generational, Interpretation, JIT+, RMI, Threads, Serialisierung), Nachladen von Teilen des Programms auf Bedarf, Optimierung der Emulation. CLI, Pascal-P sind auch dabei. Alles auf Basis von V-ISA.

Virtuelle Prozessoren und Systeme

Bedeutung Befehlssatzarchitektur und Zusammenhang mit der Mikroarchitektur, CISC- nach RISC-Konversion, Konzepte der Codesigned VMs wie AS400 und Transmeta, Motivation für System-VMs, Realisierung dieser, Virtualisierung der System-Komponenten, Grundlagen VMware und Intel VT-X (Vanderpool).

Multiprozessor-Systeme

Architektur von SMP-Systemen, logische (PMBR, PMLR) und physikalische Partitionierung, Partitionierungstechniken, dynamische Partitionierung, Virtualisierung verschiedener ISA. Cellular Disco spielt auch eine Rolle.

Neue Anwendungen

Neue Anwendungen auf Basis von SVMs. Konzepte der Sicherheit. Migrationslösungen wie z.B. ISR (Internet Suspend and Resume), Ballooning beim Stanford-Projekt, Vorgehen bei VMotion. Dazu noch ReVirt, Livewire und Konzepte von Grids, Clustern.

Buchempfehlung

1 Kommentar zu “01728 - virtuelle Maschinen”

  1. peripherstudent
    November 17th, 2017 11:39
    1

    Die Kommentarfunktion geht ja nun endlich :-). Hast du noch interessantes Material in deinen persönlichen Memoiren, welche du mit mir teilen magst. Der Kurs ist echt interessant, allerdings aufgrund der hohen Informationsdichte (und dann auch noch in Englisch) ist der Kurs echt eine schwere Kost. Du kannst mir ja mal eine Mail schreiben. Vielen Dank

Beitrag kommentieren