11 - Virtuelle Maschinen [ID:10985]
50 von 742 angezeigt

Ichlection von Korrektur von Thanksgknown

Es geht jetzt� Moin Moin! SYL HTHHHH

Was machen wir heute für heute?

Jetzt, Moin Moin!ielen! Reinspaziert!

W championship

Gibt's Fragen? Zu letzter Woche von letzter Woche12 zu den Aufgaben zu

Wünsche, Anregungen. Alle fleißig am basteln. Alle haben sich vorgenommen fleißig zu basteln.

Okay. Jo, dann soll es heute weitergehen mit Just-in-Time-Compiler-Geschichten. Einfach

mal ein bisschen sich zu überlegen, wie schaut das in der Praxis wirklich aus. Jo, also Fragen

habe da anscheinend nicht. Okay, dann frage ich was. Können wir mal brainstorming machen.

Diese eine Instruktion soll ausgeführt werden. Was muss dann jetzt der Reihe nachgemacht werden?

Jetzt mal erste Frage unabhängig, das ist ein Time Compiler oder nicht? Ich habe irgendeinen

Simulator, wie auch man da das macht. Was muss der alles tun?

Was muss er davor noch tun?

Ja, also Instruction point erholen, gucken ob der in Ordnung ist. Was muss er davor noch

tun?

Erster Punkt. Ja, mal gucken ob überhaupt Strom da ist, weil wenn kein Strom da ist,

dann macht er gar nichts. Okay, also wir haben Strom, was machen wir jetzt?

Instruction pointer, nein wir machen vorher noch was anderes.

Ja, bevor wir gucken ob Interrupts da sind, machen wir noch was anderes.

Ja, jetzt war mein Finger da hinten irgendwo, ich bin immer noch da. War alles richtig,

nur die Reihenfolge stimmt noch nicht.

Ja, also so muss ich jetzt zeigen, eins dazwischen fehlt noch. Also du warst ja dicht dran mit

dem was du gesagt hast.

Exception wäre das erste, also wenn wir dann, ne Entschuldigung, vor Exception haben wir

noch was anderes, ich habe mal was vergessen. Also jetzt Strom, Exception, Interrupt, dazwischen

haben wir noch eins.

Also deine Ahnung hat wie man das Ding ausmacht, ich hätte nichts dagegen. Also Haltzustand,

genau. Also erstmal gucken ob Strom da ist, wenn ja, gucken ob ich nicht vorher eine Haltinstruktion

ausgerufen habe, weil dann mache ich gar nichts, außer dass ich warte auf Interrupts.

Dann kommen die Exceptions. Ja, ich muss gucken ob ich im Haltzustand und kein Interrupt da

ist, dann breche ich ab. Wenn im Haltzustand aber Interrupt da ist, dann mache ich weiter.

Jo, Exceptions müssen vor den Interrupts abgearbeitet werden. Warum? Standardmäßig

schreibt die CPU den falschen Zustand in irgendeiner Form, also bei der Exception irgendwo hin,

also bei der Division durch Null muss sie den Instruction Pointer sichern oder bei Page

Fault muss sie sich vielleicht die Adresse merken wo sie dann falsch hingelangt hat.

Und damit der Exception Händler die Info auch wirklich kriegt, muss der sofort aufgerufen

werden, weil der Interrupt Händler natürlich eventuell den Instruction Pointer schon wieder

verändert. Strom, Halt oder nicht, mit Interrupt oder nicht, Exceptions, dann kommen die Interrupts,

wobei man die im Intel Fall noch unterteilen kann in Non-Maskable, Maskable, System Management

Interrupt und normaler Interrupt. Ok, das hängt jetzt von der CPU stark ab. Die meisten

CPUs kennen Interrupts und damit ist die Sache gegessen und die kann man ein- und ausschalten

wenn man will. Intel hat das noch aus vergangenen Jahren übernommen, dass es verschiedene Typen

gibt, die alle und wenn keiner anliegt oder es liegt ein Interrupt an, aber die Interrupts

sind Disabled, dann fällt der Punkt für den Tag. Ja und dann kommst du, jetzt holen wir

mal die Instruktion, die eigentliche. Da hattest du schon richtig gesagt, naja, so einfach

ist das auch nicht. Was heißt jetzt Code holen? Code holen heißt, wenn wir das mal genau

aufdröseln. Ja, jetzt bist du auch schon wieder dahinten in der Liste und ich bin auch ganz

woanders. Das erste Beid haben wir noch lange nicht. Ja, na gut, wie berechnet man die Adresse?

Das kommt jetzt müssen auch die CPU drauf an. Also was ich habe ist der Instruction

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:26:56 Min

Aufnahmedatum

2015-11-20

Hochgeladen am

2019-05-06 15:39: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

  • entwickeln selbst CPU-Emulationen

  • entwickeln selbst Geräte-Emulationen

  • verteilen Implementierungsaufgaben in ihrer Gruppe

Einbetten
Wordpress FAU Plugin
iFrame
Teilen