6Der Prozessor muss deshalb so genau beschrieben werden, weil sich die Befehle der einzelnen Prozessoren in der Regel voneinander unterscheiden. Der Befehlssatz des Z80 oder 8080 ist somit nicht ganz genau gleich wie derjenige des proprietären Game Boy Prozessors.
7ASSEMBLER wird benutzt, um sehr schnelle aber einfache Programme zu schreiben. ASSEMBLER ist schwierig zu benutzen, weil keine einfachen Entwicklungsumgebungen eingesetzt werden können.
8Befehlsphase, instruction fetch.
9Befehlsausführungsphase, instruction execution
10Z.B. das Berechnen von Werten aus Messresultaten, Schreiben eines Textes und Darstellen in einem bestimmten Format, Zeichnen einer Linie und Ausgeben auf einem Drucker.
11Hier ist mit Editor ein Texteditor gemeint, der es erlaubt, einen einfachen, unformatierten Text abzuspeichern.
12Die Rolle des Betriebssystems als Zwischenglied zwischen den Anwenderprogrammen und der Hardware wird an dieser Stelle aus Gründen der Anschaulichkeit weggelassen und erst weiter hinten erklärt.
13Eingabewerte können Tastatureingaben, Werte aus Tabellen oder Mausklicks sein.
14Eine genauere Betrachtung einer weiteren Variante, den Interpretern, folgt weiter hinten.
15Es ist nicht möglich, dass ein Compiler für den Motorola Prozessor im Macintosh Rechner einen Code erzeugt, der auch auf Intel basierten Rechnern lauffähig ist.
16z.B. Textprogramme auf PCs, Wachmaschinen-Ablaufprogramme, Handy-Benutzerfunktionen
17Beispielsweise die oben dargestellte PC Platine in Bild 4.
18Kleine Programme, die es dem Betriebssystem oder der Applikation ermöglichen die Funktionen der Hardware anzusprechen.
19Zur Klärung der Begriffe wird wird hier die Harddisk mit den dazugehörenden Treibern verwendet.
20Die sogenannten magnetischen Domänen.
21IDE: Integrated Device Electronics Bus, ein PC- (und Workstation-) Interface, für den Anschluss von Harddisks.
SCSI: Small Computer Systems Interface, eine PC und Workstation-Schnittstelle zum Anschluss von Harddisks aber auch Scannern und anderen Peripheriegeräten.
22Dies wären z.B. die IDE oder SCSI-Treiber.
23Logische Unterteilung der Platten. Den logischen Partitionen werden die Laufwerksbuchstaben C:, D:, ... (DOS, Windows) oder hda1, sda1, ... in Unix zugeordnet. Für praxisorientierte Angaben soll der geneigte Leser im Internet oder der einschlägigen Fachliteratur nachschauen.
24Schreibbar machen der Partitionen. Es wird dabei das Dateisystem erstellt (z.B. FAT32, NTFS bei Windows oder ext2, Reiser, Journaling FS unter Linux)
25Diese Betriebssystemkomponenten liegen als Software vor. Man nennt diese Software auch Kernel. Ein Kernel besteht aus einigen oder allen der hier genannten Grund-Komponenten. Die verschiedenen Ausprägungen der Kernel in den verschiedenen Betriebssystemen werden weiter hinten genauer beschrieben.
26Dies fehlte bei der von Neumann Maschine und stellt einen grosen Nachteil dieser Maschine dar. Nur das OS/2 von IBM nutzt noch den Ring 2 für hardwarenahe Geräte wie z.B. Grafikkarten, respektive deren Treiber – alle anderen Betriebssysteme nutzen nur die Ringe 0 und 3.
2. Virtualisierungsmodelle und Technologien
In diesem zweiten Kapitel befassen wir uns mit den Virtualisierungsmodellen und deren Technologien. Die Studierenden werden in die Lage versetzt, die unterschiedlichen Modelle zur Virtualisierung zu erklären sowie Vor- und Nachteile für eine zu wählende Lösung im Unternehmen zu bestimmen und die verschiedenen Arten, auf welche die einzelnen Elemente virtualisiert werden können zu erläutern.
Die Auswirkungen der verschiedenen Virtualisierungsansätze auf die betrieblichen Prozesse zu benennen und die betrieblichen Anforderungen an eine neue Umgebung und bestehende Vorgaben zusammen zu stellen und wissen, wie daraus ein Kriterienkatalog zu erarbeiten ist, ergänzen die Ausführungen in diesem Kapitel.
Die in Frage kommenden Virtualisierungsansätze mit dem Geschäftsumfeld, den bestehenden Rahmenbedingungen und den betrieblichen Vorgaben sind in Zusammenhang zu bringen und die Konsequenzen zu bewerten.
2.1 Was ist Virtualisierung?
Wie wir im letzten Kapitel gesehen haben ist die Virtualisierung von Hardware nichts neues. Jedes moderne Betriebssystem greift auf virtualisierte Geräte zurück. Es wird daher definiert:
„Virtualisierung bezeichnet in der Informatik die Nachbildung eines Hard- oder Software-‘Objekts‘ durch ein ähnliches Objekt vom selben Typ mit Hilfe einer Software-Schicht. Dadurch lassen sich virtuelle (d. h. nicht-physische) Dinge wie emulierte Hardware, Betriebssysteme, Datenspeicher oder Netzwerkressourcen erzeugen. Dies erlaubt es etwa, Computer-Ressourcen (insbesondere im Server-Bereich) transparent zusammenzufassen oder aufzuteilen, oder ein Betriebssystem innerhalb eines anderen auszuführen.“ [https://de.wikipedia.org/wiki/Virtualisierung_(Informatik)]
Die Idee der Virtualisierung ist schon über 50 Jahre alt. Bereits 1959 veröffentlichte Christopher Strachey „Time Sharing in Large Fast Computers“. In den 50-iger Jahren befasste man sich am Massachusetts Institute of Technology (MIT), Boston, mit dem Konzept zur gleichzeitigen Bedienung von Rechnern, welches ohne Leistungseinbussen funktionieren soll. Dies wurde „Time Stealing“ genannt. Damit waren die ersten Konzepte zur CPU-Virtualisierung geboren.
Vor über 30 Jahren haben Gerald J. Popek und Robert P. Goldberg die Anforderungen an die Rechnerarchitekturen festgelegt, damit diese überhaupt virtualisierbar sind 1.
Die beiden Forscher definierten die drei folgenden Charakteristiken für die Virtualisierbarkeit (siehe dazu auch [5]):
Äquivalenz:Läuft ein Programm in einer virtuellen Maschine, so soll diese ein essentiell identisches („essentially identical“) Verhalten aufweisen, wie wenn das Programm direkt auf der physischen Maschine laufen würde. Es werden aber mögliche Ausnahmen erlaubt: Differenzen welche durch die Verfügbarkeit der System Ressourcen entstehen und Unterschiede zwischen der virtuellen und der physischen Maschine durch zeitliche Abhängigkeiten.
Ressourcen-Kontrolle:Der Virtual Machine Monitor (VMM) 2hat die permanente und vollständige Kontrolle über die System Ressourcen. Somit dürfen Programme, die in einem virtualisierten Umfeld (virtuellen Maschine) laufen, keine Ressourcen beanspruchen, die nicht explizit für sie zugeteilt wurden. Jeder privilegierte Befehl muss vom VMM abgefangen werden.
Effizienz:In einem virtualisierten Umfeld weisen Prozesse nur geringe Geschwindigkeitseinbussen auf. Dies erreicht man, indem alle harmlosen, nicht privilegierten Anweisungen (die einen hohen Prozentsatz aller Instruktionen aufweisen) von der Hardware direkt ausgeführt werden. Sie erfolgen somit ohne die Intervention des Virtual Machine Monitors (VMM).
Der Artikel von Popek und Goldberg bezieht sich also nicht mehr auf die Virtualisierung der Maschine durch ein Betriebssystem, sondern geht schon einen Schritt weiter, und beschreibt die Virtualisierung einer Maschine inklusive Betriebssystem
Bei dieser Virtualisierungsform, wo mehrere Betriebssysteme „unwissentlich“ nebeneinander auf einem Rechner laufen, findet das Popek-Goldberg-Kriterium Äquivalenz besonderes Augenmerk. Bereits kleine Abweichungen vom Verhalten bestimmter Operationen können dazu führen, dass bestimmte Betriebssysteme innerhalb einer VM nicht mehr funktionieren.
Der Punkt der Effizienz ist wichtig und unterscheidet die Virtualisierung von der Emulation. Jede Plattform liesse sich durch eine Emulation „virtualisieren”. Der VMM wäre dann ein Programm, das jeden Befehl der Software in der virtuellen Maschine analysiert und ausführt, was aber alles andere als effizient ist.
Читать дальше