Jo, dann jetzt grüße ich alle recht herzlich, Wirtelle Maschinen.
Jo, zunächst zur Einleitung.
Wie ihr seht, es wird alles dokumentiert, also alles was ich heute erzähle könnt ihr
irgendwie euch angucken im Netz.
Dass die Vorlesung stattfindet am Freitag zwischen 10 und 12, das habt ihr kapiert,
sonst werdet ihr nicht da.
Die Übung ist offiziell am Donnerstag, 14 bis 16 Uhr.
Allerdings sage ich gleich dazu, es gibt in dem Sinne keine Vorlesungen bei mir und keine
Übungen, sondern das ist alles bunt gemischt.
Also wenn dann irgendwie ich was erzählt habe, dann kommt auch zwei Minuten später eine passende
Frage dazu, also sozusagen Übung und Vorlesung eng verzahnt.
Jo, Folien, alles was ihr hier seht gibt es im Netz, die Übungsblätter gibt es logischerweise
im Netz, ihr wisst wo ihr suchen müsst, bei uns auf dem Server halt.
Falls Fragen gibt, wir sind eine nicht so große Runde, also wer Fragen hat, einfach dazwischen
Fragen, kein Problem, könnt auch vorbeikommen, wie ihr wollt.
Jo, das wichtigste für euch wahrscheinlich, wo kriegt ihr einen Schein her oder wo kriegt
ihr die Prüfung her, das ist das Entscheidende am Schluss.
Das weiß ich nicht, was seid ihr alles?
Informatiker, Bachelor, Master, Master, Master, Bachelor, aber alles Informatik, Bachelor
beziehungsweise Master, okay dann ist das, da brauche ich noch den unteren Punkt zu erzählen.
Also ihr müsst am Ende logischerweise die Prüfung machen, Termin könnt ihr euch weitestgehend
frei aussuchen, irgendwann im Zeitraum von Ende Februar bis Mitte April, das war es.
Allerdings kann ich nur sagen, wer die Prüfung macht, dem sei ans Herz gelegt, doch die Programmieraufgaben
zu machen.
Wer die, jetzt weiß ich nicht, wer möchte die 5 ECTS Version und wer möchte die 7.5
ECTS Version?
7.5, 7.5, 7.5, 7.5, 7.5, 7.5 heißt ihr müsst die Programmieraufgaben machen.
Also wer 7.5 will, da ist nicht empfohlen, da müsst ihr machen.
Das erscheint auch die nächsten Tage noch im Univis genauer, bisher musste man das nicht
eintragen, jetzt müssen wir es auch eintragen, das heißt da steht genauer drin, ihr müsst
die Übungsaufgaben lösen, also eigentlich steht drin Übungsaufgaben, es ist aber im
Prinzip nur eine, ihr sollt schlicht eine virtuelle Maschine basteln.
Da gibt es so Teilaufgaben, erstmal bastelt man so eine kleine CPU, die so ein klein bisschen
was kann mit einem kleinen I.O.
Gerät, dass man schon mal sieht, dass die CPU was tut und was ausgeben kann und im Laufe
der Wochen wird die CPU dann ein bisschen größer und das I.O.
Gerät wird ein bisschen ausgebaut und dann kommt noch ein ROM Baustein und so kommt es
sukzessive, das dazu, was man braucht für eine richtige virtuelle Maschine.
Jo, worum soll es gehen?
Also an sich macht man es ja so, man hat irgendwie, naja typischerweise irgendwie einen PC vor
der Nase, startet darauf seine Software und kriegt irgendwelche Ergebnisse.
Jetzt sagen wir, naja den PC haben wir vielleicht nicht, oder nicht den PC, sondern vielleicht
einen anderen oder wir haben, naja, werden wir uns gleich noch angucken, wir haben irgendeinen
Grund, dass wir sagen, ne, wir nehmen nicht das echte System, sondern wir abstrahieren
irgendwas, machen uns eine Kopie davon und das Ding lassen wir dann laufen, dann kriegen
wir natürlich auch Ergebnisse, so jedenfalls die Hoffnung, die kriegen wir jetzt allerdings
nicht durch einen echten Ablauf in dem Sinne, sondern durch Simulation oder, wie man nennt
das denn auch, Immunation, da kommen wir noch drauf.
Jo, und dann kriegen wir irgendwelche virtuellen Ergebnisse und hoffen natürlich, dass das
irgendwie übereinstimmt, ne.
Presenters
Zugänglich über
Offener Zugang
Dauer
01:42:06 Min
Aufnahmedatum
2012-10-19
Hochgeladen am
2019-05-05 20:19: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