16 - Virtuelle Maschinen [ID:10965]
50 von 699 angezeigt

Dann begrüße ich euch, virtuelle Maschinen, ein paar Hinweise zur Übung.

Ich weiß gar nicht, hat jemand schon angefangen mit der nächsten Übungsaufgabe?

Mal drauf geguckt. Ja, okay. Also auch da gilt natürlich, wie bei der anderen auch,

im Prinzip, wirst du dann ja fertig sein, nur ihr braucht es, um letztendlich die endgültige

Aufgabe fertig zu kriegen und je weiter ihr die Zwischenteile nach hinten schiebt,

desto schwieriger wird es am Ende. Ja, machen wir noch die Hinweise zu Ende dazu.

Ja, gestern haben wir ein Teil besprochen, so ein bisschen mit Interrupts, also dass

überhaupt Interrupts kommen sollen und weil Interrupts kommen sollen, muss es so ein

Pick geben. Das ist in der Intel-IBM-PC-Welt so. Jo, wie läuft das ab? Also, wir wollen

in der seriellen Schnittstelle jetzt auch Eingaben machen. Gut, jetzt wollen wir jetzt nicht

den ganzen GUI außen rum schreiben, das ist dann ein bisschen aufwendig, sondern letztendlich

habt ihr sozusagen einen PC, der eben nur eine serielle Schnittstelle hat und als seriellen

Schnittstellenersatz oder als Terminalersatz nehmen wir einfach ein Xterm oder ein Konsoleding

und wenn ihr von der Konsole euren Simulator startet, dann ist alles, was auf das Konsole

getippt wird, ist sozusagen das, was über die virtuelle serielle Schnittstelle an den

Simulator gehen soll. Jo, also ihr müsstet praktisch immer wieder von Standard-In lesen

und wenn ein Zeichen eingegeben worden ist, dann soll die CPU über den Pick ein Interrupt

kriegen. Jo, gut, und solange die CPU Zeichen nicht abholt, das ist in echt auch so, wenn

man danach noch weiter tippt, dann gehen die weiteren Zeichen halt verloren. Der Controller

von diesem kleinen seriellen Ding soll so gemacht sein, dass wenn man von Adresse 0 liest, das

Zeichen abholt und wenn diese Eingabe profilär ist, dass dann auch die serielle Schnittstelle

den Interrupt zurücknimmt. Jo, und wenn dann der Serielle profilär ist, ok, dann kann

man halt wieder nächstes Zeichen eingeben. Die echten seriellen haben häufig noch irgendwelche

kleinen Puffer, also der ursprüngliche IBM PC hatte keinen Puffer, auch von einer echten

Tastatur nicht und der war natürlich noch ein bisschen langsamer und irgendwie Leute,

die gut tippen konnten, die hatten Probleme, dass zum Teil Zeichenverlusten gegangen sind.

Bis sie dann den Keyboard-Controller ein bisschen aufgebohrt haben, hat er dann im Moment glaube

ich einen 16-byte Puffer, also 16 mal kann man tippen und dann muss er es abgeholt haben.

Wenn man das bis dahin nicht abgeholt hat, dann piepst er auch, wenn man dann die 17.

Taste drückt und in der Zwischenzeit keiner abgeholt hat. Jo, jetzt noch ein bisschen

was zum Pick. Das Ding ist mindestens so graus wie die CPU, um nicht zu sagen vielleicht noch

eine Etage grauser. Ihr könnt euch Doku holen, das gibt es hier bei Dickchip, gibt es Doku

dafür und wenn es die da mal nicht mehr gibt, dann könnt ihr sie auch bei mir holen, wenn

ihr wollt. Also ich habe die Doku mal runtergeladen. Wir haben uns gestern mal kurz angeguckt,

das grobe äußere Schaltbild, 8 Interabteingänge. Ich habe auch gesagt, kann kaskadiert werden,

allerdings in unserem Fall brauchen wir das nicht, wir haben halt nur eine Interabtquelle,

dann brauchen wir eigentlich nicht mehr als 8 Interabteingänge. In echt kann man den

verwenden, also man kann sozusagen einen sogenannten Master haben und man kann vor

den Master, der ja 8 Eingänge hat, kann man 8 Slaves hängen, dann kann man ein System

aufbauen rein theoretisch mit 64 Interabtquellen. Ist aber meines Wissens nie gemacht worden,

aber der IBM PC, der hatte 8 Interabtquellen und beim AT hat es nicht mehr gereicht, dann

hat man einen da vorgesetzt. Deshalb sind die Interabs ein bisschen komisch durchnummeriert.

Aber den Interab 2 in dem Sinne, den gibt es nämlich nicht, weil das ist jetzt der Eingang,

der jetzt belegt wird durch den Kaskadierten. Jo, Priorisierungsvarianten gibt es. Einer

habe ich euch gestern schon mal groß grob angedeutet, so nach dem Motto, der 0. Eingang

hat Priorität gegenüber dem 1., der 1. über den 2., 2., 3. usw. Kann man alles umbevormieren.

Man kann auch sagen, so rauend droppen, wenn letztes Mal der 0. der wichtigste war und der

kam in der Zwischenzeit mal, dann ist ab jetzt der wieder Nummer 1, der mit der höchsten

Priorität und der 0. ist der letzte. Die Idee war wohl, dass man so eine Art faire

rauend droppen machen kann, dass jeder mal drankommt, jeder einmal und erst muss dann

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:15:18 Min

Aufnahmedatum

2012-12-14

Hochgeladen am

2019-05-05 00:59: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