6 - Virtuelle Maschinen [ID:10955]
50 von 783 angezeigt

Wir versuchen gerade die alte Zuge von der Sammlung wieder zum Laufen zu kriegen.

Das ist Technik.

Schon interessant, wie Techniker da dran gehen.

Der ist jetzt 75.

Er hat angefangen als Techniker bei Zuge.

Irgendwann hat ihm das so gut gefallen, dass er sich selber eine Zuge gekauft und in den Keller gestellt und sein eigenes Rechenzentrum aufgemacht.

Und weiß noch jedes Kabel, wo es anfängt, wo es aufhört.

Wenn ich die Taste drücke, dann muss da das und das Signal sein.

Und da, ne, falsches Signal, Karte rausgerupft, Neues reingesteckt im laufenden Betrieb.

Wer weiß das alles noch in- und auswendig.

Wer hat das dann möglich in den Wohnungsverlauf aufgemacht, kann nicht mehr anders als...

So, also jetzt aber.

Genau, das war so die letzte Folie.

Gestern, ihr habt noch so die Erinnerung, also ganz kurz noch zurück.

Oder gehen wir noch eine Folie weiter zurück.

Also wir holen und wenn die CPU auf den Speicher zugreifen soll, dann fragt sie über den Bus nach,

wer ist dann für diese eine Speicherseite zuständig, holt sich letztendlich einen Pointer auf,

diese eine Page, trägt sich den ein.

Ich hole mir aus dem Bus die Info, wer fühlt sich denn für diese Adresse verantwortlich,

legt das dann ein in diese, ja da oben in diesen Cache, guckt da nochmal nach, ob in dem Cache jetzt was eingetragen ist.

Und wenn ja, nein, dann machen wir ganz normal den alten Klapparatismus.

Wir fragen den ersten Bus, der erste fragt seine angehängten Geräte, die angehängten Geräte,

Britsche, Leitenseventel, weiter und so weiter.

Aber wenn jetzt was eingetragen ist und das sollte ab dann der Dauerzustand sein, eigentlich mache ich dann nur,

ich hole mir diesen einen Pointer und schreibe über diesen einen Pointer, was sind die Pages,

da muss ich auf den Pointer noch den Offset oben drauf addieren und dann war es das.

Ja, haben wir auch gesehen, ein paar Kleinigkeiten muss man auch dazu basteln,

beispielsweise, dass ein Speicher, wenn er später umgemappt wird, dass er dann auch der CPU wieder sagen kann,

schmeiß mal das, was du da oben gemerkt hast, weg, geht im Prinzip aber alles.

Das ist dann auch performance-mäßig nicht mehr kritisch.

Also diese Funktion hier, die sollte eigentlich, ja wie oft wird sie aufgehoben?

Und eventuell danach nochmal, wenn ein Speicher irgendwie umgemappt wurde,

was aber eigentlich nach Ablauf des BIOS gar nicht mehr passiert, also wenn das Betriebssystem erläuft,

dann sind eigentlich alle Grafikkarte und das ganze Zeug richtig eingeblendet an ihren entsprechenden Stellen

und danach einmal diese Info holen und ab dann ist es eigentlich nur noch Pointer holen,

gucken, ob er Null ist und wenn nicht, dahinschreiben oder von da lesen.

Also performance-mäßig geht das relativ flott.

Was wir jetzt natürlich haben, wir haben natürlich auch noch unsere MMU.

Da haben wir gesehen, wir müssen ja erstmal die virtuelle Adresse mit unserer MMU,

das haben wir uns vor zwei Wochen mal so mal hingeguckt, in eine physikalische Adresse umrechnen.

Und wenn wir die physikalische Adresse wissen, dann machen wir diesen Klapparatismus

und machen daraus eine Host-Adresse, was jetzt wiederum eine Virtua-Adresse vom Host ist

und darauf letztendlich machen wir dann den Zugriff.

Das soll heißen, wir machen mindestens ein Lookup in unserem MMU TLB,

kriegen da die physikalische Adresse raus und machen dann noch so ein Lookup in diesem Page Cache

und dann müssen wir die eigentliche Adresse und schreiben dahin oder lesen von da.

Soll heißen, jeder Speicherzugriff sind drei Speicherzugriffe, mindestens.

Plus natürlich die ganzen Befehle, um das auszuführen.

Soll heißen, die Maschine ist schon mal ein Faktor 3 langsamer.

Punkt. Ändert nichts, mindestens.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:25:26 Min

Aufnahmedatum

2012-11-09

Hochgeladen am

2019-05-05 01:49:03

Sprache

de-DE

Vorgestellt werden verschiedene Virtualisierungs-Ansätze:

  • Emulation

  • Just-In-Time-Compiler

  • Para-Virtualisierung

  • Bibliotheks-basierte Virtualisierung

  • OS-Virtualisierung

Lernziele und Kompetenzen:

Studierende, die das Modul erfolgreich abgeschlossen haben:

  • erläutern verschiedene Motivationen für den Einsatz von VMs

  • unterscheiden verschiedene VMs

  • klassifizieren verschiedene Ziele unterschiedlicher VMs (z.B. Performance, Konfigurierbarkeit, Genauigkeit, ...)

  • hinterfragen verschiedene Simulationansätze für MMUs

  • erstellen virtuelle Komponenten und Busse

  • strukturieren Callbacks und entsprechendes Forwarding und Caching

  • unterscheiden zwischen Architektur, Chip und Komponente

  • klassifizieren unterschiedliche Just-In-Time-Compiler-Ansätze

  • erzeugen JIT Code aus vorgefertigten Code-Teilen

  • bewerten unterschiedliche JIT-Code-Optimierungen

  • erläutern Probleme bei der JIT-Code-Invalidierung

  • nennen JIT Probleme mit Exceptions/Interrupts sowie berechnete Sprüngen und Return-Instruktionen

  • unterscheiden verschiedene JIT Cache-Verwaltungen

  • beschreiben Möglichkeiten der Fehlerinjektion durch VMs

  • entwickeln ein an JIT angepasstes virtuelles "Hardware"-Design

  • erläutern die Java-VM Instruktionssatz-Architektur

  • nutzen Hardware-basierte Virtualisierung

  • entwickeln Verfahren zum Ausfiltern bestimmter Befehle

  • erläutern Probleme der Speicherverwaltung bei HW-basierter Virtualisierung

  • nutzen User-Mode-Emulation zur Paravirtualisierung

  • diskutieren Möglichkeiten von Debuggern für die Umleitung von System-Calls und die Ausfilterung von Befehlen

  • nutzen einen Hypervisor zur Paravirtualisierung

  • unterscheiden verschiedene Ansätze zur Geräteverwaltung in paravirtualisierten Systemen

  • erläutern Betriebssystem-basierte Virtualisierung

  • entwickeln unterschiedliche Bibliotheks-basierte Virtualisierungen

  • erläutern Probleme beim Speicher-Layout bei Bibliotheks-basierte Virtualisierung

  • konzipieren Personalities für Bibliotheks-basierte Virtualisierungen

  • beurteilen Probleme bei der korrekten Zeit-Simulation

  • nennen Ideen für die dynamische Anpassung der Zeit-Simulation

  • klassifizieren bekannte VMs (z.B. VICE, FAUmachine, QEMU, Bochs, JVM, KVM, User-Mode-Linux, Xen, VServer, Wine)

  • diskutieren in der Gruppe Vor- und Nachteile von bestimmten VM-Ansätzen

  • untersuchen CPU-Emulationen

  • untersuchen Geräte-Emulationen

Einbetten
Wordpress FAU Plugin
iFrame
Teilen