• 9/2021: Zugriff auf mehrere 100 PDFs fürs Lernen zur Klausurvorbereitung ! Du möchtest über dein Studium diskutieren, aber möchtest selbst über deine Privatsphäre bestimmen? Hier kannst du dich unter einem Nicknamen anmelden. Mehr als 40.000 Kommilitonen haben mehrere tausend Dokumente erstellt: Zusammenfassungen, Klausurlösungen und mehr in PDF, Word und Powerpoint. "Internet-Plattformen, wie etwa Studienservice.de, eine private Seite von und für Fernstudenten der FernUni Hagen, ersetzen den Smalltalk in der Mensa" Handelsblatt Karriere

Einsendeaufgaben Virtual Maschines

  • Ersteller Thane
  • Erstellt am
bezüglich der Einsendeaufgaben (auch wenn sich das jetzt komisch anhört):
Gibt es eine einfachere Möglichkeit der Uni die Aufgaben zukommen zu lassen, als diese per DIN A 4 Brief zu versenden? Hat jemand mal andere Möglichkeiten ausprobiert?

Anbei noch meine Lösungen zu Aufgabenteil 1.

Aufgabe 1)
a)
ISA steht für „instruction set architecture“ und markiert die Schnittstelle zwischen Hard- und Software und ist in der Abbildung 1.4 des Basistextes durch die Interfaces 7 und 8 dargestellt. ISA ist in zwei Teile untergliedert: der erste Teil ist für die ausführende Software sichtbar (auch „user ISA“ genannt), der Zweite ist lediglich für das Betriebssystem sichtbar und verwaltet die Hardware Ressourcen (auch „system ISA“ genannt). Die verwaltende Software kann ebenfalls auf alle Funktionen der „user ISA“ zugreifen. In der Abbildung 1.4 wird die „user ISA“ durch das Interface 7 dargestellt, wohingegen das Interface 8 aus der „user ISA“ und der „system ISA“ besteht.

Das „application binary interface“ (ABI) stellt ein Programm mit Zugriff auf die Hardware zur Verfügung. Das ABI unterteilt sich wiederum in zwei Teile: Der Erste enthält alle Benutzerbefehle (Systembefehle sind im ABI nicht enthalten) und ist in der Abbildung 1.4 durch das Interface 7 gekennzeichnet. Der zweite Teil beinhaltet den Aufruf von Befehlen am Betriebssystem mit dem „system call interface“ und ist in der Abbildung 1.4 durch das Interface 3 abgebildet.

Das „application programming interface“ (API) liefert eine Schnittstelle, mit der andere Dienste auf das System zugreifen können. APIs sind typischerweise für „high-level languages“ (HLL) angepasst. Software, die über das API auf das System zugreift, kann sehr leicht auf andere Systeme sortiert werden, die die selbe Schnittstelle unterstützen. Das API wird in der Abbildung durch die Schnittstellen 2 und 7 abgebildet.

b)
Eine HLL-VM ist an keine Plattform direkt gebunden ist daher leicht zu portieren. Sie bietet zusätzlich die Funktionalitäten der „high-level language“. HLL-VMs legen im Gegensatz zu Prozess-VMs mehr Wert auf die Reduzierung von Hardware und Betriebssystem spezifischen Funktionen. Die Plattformunabhängigkeit wird dadurch erreicht, dass der Compiler einen universellen Code erstellt, der auf verschiedenen Plattformen ausgeführt werden kann. Dafür wird eine virtuelle Maschine benötigt, die den Code übersetzt und ausführt. Der Aufwand für die Implementierung der VMs auf verschiedenen Hosts ist dabei geringer als die Entwicklung eines Kompilers für jede Plattform und dem anschließenden erneuten Kompilieren der Applikationen nach diese portiert wurden. Beispiele für HLL-VMs sind die „Sun Microsystems Java VM“ und die „Mircosoft common language infrastructure“.

Aufgabe 2)
a)
Das größte Problem, das bei der Übersetzung auftaucht, ist das Code-Discovery Problem, von dem behauptet wird, das es schwierig wenn nicht sogar unmöglich sei. Diese Behauptung basiert auf „statischem predecoding“ und einer „statischen Übersetzung“.

Angenommen eine Reihe von Anweisungen wird übersetzt und ausgeführt. Jeder „Sprung“, der während einer Ausführung zustande kommt wird in einem Register gespeichert.

Wird eine vollständige Emulation eines Programms vor Beginn der Emulation durchgeführt, lässt sich der Inhalt dieses Registers nicht vorhersagen, da dieses erst zu Beginn der Laufzeit gefüllt wird.

Dadurch wird eine „vorhersage“ des nächsten auszuführenden Befehls sehr schwierig und eine vollständige Übersetzung vor der Emulation ist (in den meisten Fällen) nicht möglich.



b)
Ein Emulator der sowohl eine geringe Anlaufzeit, als auch eine hohe Geschwindigkeit während des Dauerbetriebs aufweist, wird nach den Prinzipien der „staged emulation“ umgesetzt.

Sie erlaubt es, das zu emulierende Programm in mehreren Stufen nach und nach zu übersetzen. Der Mechanismus der dahintersteht interpretiert alle Befehle, die zu oft genutzten Programmbereichen des emulierten Systems gehören. Diese Interpretation der Befehle führt zu den angesprochenen Vorteilen bei der Anlaufzeit und der Emulationsgeschwindigkeit beim laufenden Betrieb.

Aufgabe 3)
Der „Decode-and-Dispatch-Interpreter“ besitzt einen einfachen Aufbau, der es dem Anwender erlaubt, einfachen und leicht zu verstehenden Code zu programmieren. Er zeichnet sich außerdem durch einen geringen Speicherbedarf und eine kurze Anlaufzeit aus. Allerdings kann dieser Interpreter auch sehr langsam sein.

Vielen dank für eure Hilfe!
 
Find das Einsenden der Lösungen per Post auch definitiv nicht mehr zeitgemäß. Sowas sollte doch auch zumindest per Mail möglich sein, oder?
 
Danke für deine Lösung.
 

Themen im Forum

Oben