6 - Virtuelle Maschinen [ID:10980]
50 von 1600 angezeigt

you

you

you

you

you

you

but in sum you can see a few hundred lines

that all want to be connected somehow

how do you connect them?

you can go here now and you can do the circuit in principle in the way we have learned so far

you call the corresponding components create function and pass on all the previously created signal values

have fun

you can do it, you can't do it without errors

you see here alone at the house bridge, that's a size of 50 buses or signals in some form

you have to cable them all correctly, one single cable wrong, of course nothing works

what do we do in the V-Machine project?

we do it there, we really paint it with the G-Scam, I don't know if you know it from the G-DAR suite

that's a circuit plan painting program, so thought to really paint circuit plans

and then we have a little tool that takes this circuit plan and ultimately builds something out of it

a kind of, as you have now learned in principle, that the individual components are instantiated

and when instantiating they get all the parameters passed on to which bus they should be cabled

then we can just paint like this, press the buttons and then we have a C-Page that is half a kilometer long with all the calls in it

how does that look with the system?

the system should be configurable, components and buses are known at the first run, if you want to configure it

and there are extremely many components, you could imagine

in our context you don't necessarily have to assume that a virtual system is exactly one PC

that can also be connected to a network PC, if I want to test a new configuration of my web server

then I just need a server and I need a client and I need a network cable in between

so it's not just one computer that I want to do it afterwards, but several

and then you can imagine, yes, there are also damn many components

so if you really screw every PC together from individual parts, then that's quite a lot of individual parts

and you don't know about compile time

that's the philosophy of QEMU, BOX, whatever they are called, they say if you need two PCs, then start QEMU twice

on the one hand, of course, speaks for itself, if you then do two PCs and each PC has a CPU, then start the simulator twice

then you have two processes and accordingly two virtual CPUs

so you really have a multi-core computer, which is often the question today, you also have the double performance

but one problem with the whole thing is that Linux, Unix of course doesn't know that these simulations belong together

and what can happen here, that one virtual machine runs and the other is scheduled, which is stored on a board, no space left

then of course it can be that you somehow send network packages to the others, but they don't react

if everything is in one process, that can't happen, then half of it is not swapped

we will talk about time later, then that will be a topic

if it's about time, as I've seen, to do it correctly, then it will be with the method that I split it into two processes, nothing

because I have no influence on who does what

but otherwise you're right, in this example, server and client

and on the internet you don't know how long it takes, then you can do that quite well

as you can see, there are many possibilities to connect all the small chip parts to chips

there are many possibilities to bring chips to a board and to build a system from components

but what you take from that, you choose something, there are many possibilities

you've got to know them, but all of them have their pros and cons

the more I compile together, the more chances I have to optimize a compiler

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:31:51 Min

Aufnahmedatum

2015-11-04

Hochgeladen am

2019-05-06 16:29: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