DE2426435A1 - Hardware-virtualisierungsanordnung - Google Patents

Hardware-virtualisierungsanordnung

Info

Publication number
DE2426435A1
DE2426435A1 DE19742426435 DE2426435A DE2426435A1 DE 2426435 A1 DE2426435 A1 DE 2426435A1 DE 19742426435 DE19742426435 DE 19742426435 DE 2426435 A DE2426435 A DE 2426435A DE 2426435 A1 DE2426435 A1 DE 2426435A1
Authority
DE
Germany
Prior art keywords
virtual machine
plan
virtual
machine
auxiliary source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19742426435
Other languages
English (en)
Other versions
DE2426435C2 (de
Inventor
Robert P Goldberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2426435A1 publication Critical patent/DE2426435A1/de
Application granted granted Critical
Publication of DE2426435C2 publication Critical patent/DE2426435C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)

Description

Die Erfindung bezieht sich generell auf Rechner, und insbesondere auf virtuelle Rechnersysteme und eine Hardware-Virtualisierungsanordnung sowie auf ein Verfahren zur Adressierung von Hilfsquellen durch Prozesse, die auf einer virtuellen Maschine ablaufen.
Das Auftauchen von Eingabe/Ausgabe-Verarbeitungseinrichtungen in den frühen sechziger Jahren und die Anwendung der Multiprogrammierung zwecks Steigerung der Hilfquellenausnutzung und der Gesamtleistung hat den Beginn von Mehrprozessor-Multiprogrammierungs-Konfigurationen signalisiert, bei denen ein Hauptspeicher für nicht übereinstimmende Prozessoren bzw. Verarbeitungseinheiten verteilt zur Ver-
409851/0863
fügung stand und bei denen eine einzige Verarbeitungseinrichtung an verschiedenen Prozessen teilnahm, die im Wettbewerb um gemeinsame Hilfsquellen standen.
Um die mit der Systemintegrität zusammenhängenden Probleme zu vermeiden, wurde eine Doppelzustands-Bauweise übernommen. Grundsätzlich wurde der Systembetrieb in zwei unterschiedliche Betriebsarten aufgeteilt - in eine privilegierte Betriebsart und in eine nicht privilegierte Betriebsart. Die privilegierte/nicht privilegierte Betriebsar1ffi(auch als Master/Slave oder System/Anwender-Betriebsarten bekannt) haben jedoch die Leistung von kritischen Operationen auf die privilegierte Betriebsart beschränkt, während die Masse von Operationen, die nicht kritisch waren, in der nicht privilegierten Betriebsart ausgeführt wurden.
In Fig. 1a ist der herkömmliche Doppelzustandsaufbau gezeigt. Die bloße Maschine 101 weist eine Grund-Maschinentrennstelle 103 auf, welche einen privilegierten Softwarekern 102 enthält. (Eine Grund-Maschinentrennstelle bzw. -Maschinenschnittstelle ist die Anlage für sämtliche sichtbaren Software-Objekte und -Befehle, die direkt durch die Hardware und Firmenware eines bestimmten Systems getragen werden.) Diese Kombination stützt sich auf verschiedene erweiterte Maschinen 104, 105, etc. (obwohl der Klarheit wegen lediglich zwei Maschinen dargestellt sind). Die erweiterten Maschinen können ihrerseits verschiedene Anwenderprogramme tragen, wie 106 und 107. Bs sei jedoch darauf hingewiesen, daß mit Rücksicht darauf, daß herkömmliche Systeme dieses Typs lediglich eine Grund-Maschinenschnittstelle 103 enthalten, diese Systeme imstande sind, lediglich zu irgendeinem gegebenen Zeitpunkt
409861/0863
einen privilegierten Softwarekern bzw. SoftwareZentrum 102 entsprechend zu laufen. Da die einzige Software, die vollständigen Zugriff zu sämtlichen Funktionseigenschaften der Hardware hat und diese Eigenschaften steuert, das privilegierte SoftwareZentrum ist, entstehen demgemäß verschiedene Probleme. Das Hauptproblem unter diesen Problemen liegt im Bereich der Programmtransportierbarkeit, da nämlich nicht privilegierte Programme tatsächlich für die erweiterte Maschine geschrieben werden, die durch das privilegierte Softwarezentrum zuzüglich der nicht privilegierten Funktionen der Hardware gebildet ist. Während die bloße Hardwaremaschine relativ leicht zu standardisieren ist, sind die erweiterten Maschinen sehr schwer zu standardisieren, und zwar wegen der relativen Leichtigkeit, mit der ein System (einschließlich des privilegierten SoftwareZentrums) modifiziert werden kann, da die Stammwörter (das sind Pseudobefehle) eines derartigen Systems zum Teil in Software ausgeführt sind. Eine Vielzahl unterschiedlich erweiterter Maschinen, die auf der Grundlage einer bloßen Standardmaschine laufen, ist das Ergebnis. Deshalb muß ein Anwender, der Programmewünscfet laufen eu lassen die für eine der erweiterten Maschine des Anwenders fremde erweiterte Maschine geschrieben sind, entweder eine gewisse Zeit auf seiner erweiterten Maschine bereitstellen, um das "fremde" SoftwareZentrum laufen zu lassen, oder er muß die für die fremde erweiterte Maschine geschriebenen Programme für seine erweiterte Maschine umsetzen - eine Wahl, die die meisten Anwender nicht begrüßen.
Ein weiteres Problem entsteht dadurch, daß lediglich ein privilegiertes SoftwareZentrum vorhanden ist und daß es deshalb unmöglich ist, zwei Versionen des privilegierten SoftwareZentrums zur selben Zeit laufen zu lassen. Die fortwährende Entwicklung und Modifizierung des Zentrums
409851/0663
ist daher sehr schwierig, da es notwendig wird, über Systemprogrammierer zu ungewöhnlichen Stunden zu verfugen, um das zur Verfügung gestellte System zu ihrer Verwendung zu haben. Wenn die Systemprogrammierer das zur Verfügung gestellte System nicht zu ihrer Verfügung zwecks Programmkorrektur oder für Modifizierungszwecke zur Verfügung zu haben, ist dem System eine sehr schwache Belastung auferlegt, die zu einer unwirtschaftlichen Ausnutzung der Hilfsquelleaführt.
Schließlich ist der Test- und Diagnoseumfang, der ohne Störung der normalen Produktionspläne ausgeführt werden kann, begrenzt, da die Diagnose-Software einen Zugriff zu sämtlichen Funktionseigenschaften der Hardware haben muß und diese steuern muß und somit nicht gleichzeitig mit dem privilegierten SoftwareZentrum laufen kann.
Um diese Probleme zu vermeiden, ist es notwendig, ein privilegiertes SoftwareZentrum zu bilden, welches mehrere Nachbildungen der Grund-Maschinenschnittstelle versorgen kann, und zwar anstelle der erweiterten Maschinenschnittstelle. Sodann könnte ein unterschiedliches privilegiertes SoftwareZentrum an jeder der zusätzlichen Grund-Maschinenschnittstellen laufen, und die zuvor erwähnten Prob lerne könnten vermieden werden.
Eine Grund-Maschinenschnittstelle, die nicht direkt von einer bloßen Maschine versorgt wird, sondern vielmehr in ähnlicher Weise wie eine erweiterte Maschinenschnittstelle, ist als virtuelle Maschine bekannt und in Fig. 1b mit 110, 111 bezeichnet. In Fig. 1b ist dieselbe bloße Maschine 101 wie in Fig. 1a dargestellt; die nunmehr an der Grund-Maschinenschnittstelle 103 laufende privilegierte Software ist jedoch
40S8S1/0S63
■ - 5 -
ein virtueller Maschinenmonitor 122. Der virtuelle Maschinenmonitor 122 versorgt mehrere Nachbildungen der Grund-Maschinenschnittstelle 124. Demgemäß kann ein unterschiedlicher privilegierter Softwarekern 112, 113 bei jeder Nachbildung der zusätzlichen Grund-Maschinenschnittstelle 124 laufen. Jeder privilegierte Softwarekern bzw. jedes privilegierte Softwarezentrum 112, 113 kann seine eigene Reihe von erweiterten Maschinenschnittstellen 125 und 126 versorgen bzw. unterstützen und demgemäß sein eigenes Anwenderprogramm der Anwenderprogramme 118, 119 bzw. 120, 121.
Da eine Grund-Maschinenschnittstelle, die von einer virtuellen Maschinenüberwachungseinrichtung bzw. einem virtuellen Maschinenmonitor versorgt wird, funktionell mit der Grund-Maschinenschnittstelle der entsprechenden Real-Maschine übereinstimmt, läuft jeder privilegierte Softwarekern, der auf der bloßen Maschine läuft, ebenso gut auf der virtuellen Maschine. Darüber hinaus hat der privilegierte Softwarekern bzw. das privilegierte Softwarezentrum keine Möglichkeit zu bestimmen, ob das betreffende Zentrum auf einer bloßen Maschine oder einer virtuellen Maschine läuft. Demgemäß ist eine virtuelle Maschine im wesentlichen seinem realen Gegenstück äquivalent und funktionsmäßig von diesem unterscheidbar. Die virtuelle Maschinenüberwachungsanordnung führt keine Befehls-Befehls-Interpretation dieser Programme aus, sondern ermöglicht viel_mehr diesen, direkt auf einer bloßen Maschine für einen größeren Teil der Zeit zu laufen. Gelegentlich stellt die virtuelle Maschinenüberwachungsanordnung jedoch gewisse Befehle fest und führt sie interpretierend aus, um die Integrität des Systems als Ganzes zu gewährleisten; nachdem die Interpretierungsphase abgeschlossen ist, kehrt die Steuerung zum Ausführungsprogramm zurück. Somit ist eine Programmausführung auf einer virtuellen Maschine
409861/0863
ziemlich ähnlich einer Programmausfuhrung auf einer erweiterten Maschine, wobei der Hauptteil der Befehle direkt ausgeführt wird, ohne daß ein Software-Eingriff erfolgt; gelegentlich erfolgt jedoch ein Eingriff durch die steuernde Software, um eine notwendige interpretierende Operation auszuführen.
Es sei bemerkt, daß die virtuelle Maschinenüberwachungsanordnung bzw. Maschinenüberwachung 122 gemäß Fig. 1b auf einer bloßen Maschine läuft. Systeme dieses Typs sind als virtuelle Maschinendes Typs I bezeichnet worden. Dabei können jedoch virtuelle Maschinenüberwachungen bzw. Überwachungsprogramme oder Monitor-Programme vorgesehen sein, die auf erweiterten Maschinen laufen. Dieser Typ von virtueller Maschine ist schematisch in Fig. 1c dargestellt und als virtuelle Maschine des Typs II bezeichnet. In Fig. 1c ist die bloße Maschine 101 gezeigt, die eine Grund-Maschinenschnittstelle 103 mit dem privilegierten Softwarekern bzw. SoftwareZentrum 151 aufweist. Das privilegierte SoftwareZentrum 151 seinerseits versorgt die erweiterten Maschinen 153, 154, die erweiterte Maschinenschnittstellen 157a bzw. 157b aufweisen. Die erweiterte Maschine 153 ihrerseits versorgt das Anwenderprogramm 155, während die erweiterte Maschine 154 die virtuelle Maschine 158 versorgt, die ihrerseits die erweiterte Maschine 161 versorgen kann, welche ihrerseits ein Anwenderprogramm 162 ablaufen läßt.
Im folgenden seien einige bekannte Maschinen näher betrachtet, Es gibt relativ wenige Beispiele für virtuelle Maschinen im Stand der Technik. Einige typische Maschinen sind folgende: a) IBM M44 - Typ I FV (Familie-Virtualisierung). Die Maschine IBM M44, eine stark modifizierte zweite Generation der IBM 7044, wurde erweitert, um eine Seitenbildung
4098S1/Q883
und eine Anzahl von Operationsbetriebsarten zu umfassen, wie die Betriebsarten Problem/Überwachung, Lagetest/Nummer Lagetest und Abbildung/keine Abbildung. Durch die Anwendung eines als MOS-System (modulares Operationssystem) bezeichneten Operationssystems wird eine Reihe von virtuellen Maschinen erzeugt, die mit 44X bezeichnet seien. (Diese Maschinen 44X sind keine virtuellen Maschinen im strengsten Sinne, da sie geringfügig sich unterscheiden von der realen Maschine IBM 7044.) Ein 44X-0perationssystem läuft auf jeder 44X-Maschine und liefert die in den meisten Operationssystemen zu findenden üblichen Dienste.
b) IBM-Cambridge - wissenschaftliches Zentrum CP-40 — Typ I FV#
Das Zentrum CP-40, Vorläufer für CP-67, wurde auf einer Maschine IBM 360/40 aufgebaut, die durch die Hinzufügung eines Assoziativspeicher-Seitenbehälters speziell modifiziert worden ist. Dieses System war ein System auf Zeitteilbasis und versorgte vierzehn virtuelle Maschinen IBM 360. Diese Maschinen 360 sind Standardmaschinen IBM 360 und enthalten keine speziellen Modifikationen des Reihenmodels 40. Die virtuellen Maschinen IBM 360 sind imstande, zahlreiche IBM-36o-Operationssysteme laufen zu lassen, einschließlich der normalen Systeme OS/360 und CMS (ein Umsetzsystem, das im wissenschaftlichen Cambridge-Zentrum speziell für die Anwendung mit der Maschine CP-40 entwickelt worden ist). Das System litt jedoch an den vielfältigen Beschränkungen der Verarbeitungseinrichtungsgeschwindigkeit des Systems IBM 360/40, ferner an einem mäßigen Umfang eines realen Kernspeichers und an einem langsamen Plattenspeicher für die sogenannte Durchblätterung oder das sogenannte Paging. Die Maschine CP-40 diente jedoch dazu, gewissermaßen die Lebensfähigkeit der virtuellen Maschinenvorstellung zu
4098S1/08S3
demonstrieren. Darüber hinaus lieferte die Maschine ein VMTSS-System und mit dem CMS-System ein geeignetes Umsetzsystem für das System 360 zu einem Zeitpunkt, zu dem kein anderes Allzweck-System auf Zeitteilbasis für die Reihe von Maschinen arbeitete. Der Erfolg mit diesem Projekt führte tatsächlich direkt zu dem größeren System CP-67. c) IBM Cambridge wissenschaftliches Zentrum CP-67 — Typ I FV. Das Zentrum bzw. System CP-67 wurde als experimentielles System in Verbindung mit dem MIT-Lincoln-Laboratory im Januar 1967 begonnen. Anfänglich wurde das System CP-^0 ein wenig modifiziert, um das im System IBM 360/67 zu findende unterschiedliche Speicher-Verschiebungssystem zu versorgen. Danach wurde das gesamte System CP-67 neu geschrieben. Das System CP-67 ist ein VMTSS-System, welches auf der Maschine IBM 360/67 läuft und zwischen 30 und 40 Anwender versorgt. Es ist soweit das am weitesten bekannte virtuelle Maschinensystem. Die virtuellen Maschinen IBM 360, die unter der Bezeichnung CP-67 erzeugt worden sind, sind sehr erfolgreich gewesen hinsichtlich des Laufenlassens einer Anzahl von unterschiedlichen IBM-360-Operationssystemen. Diese Operationssysteme umfassen (worauf sie jedoch nicht beschränkt sind) die Systeme OS/360 (in vielen Versionen), DOS, DOS-APL, CMS, LLMPS. Die virtuellen Maschinen sind jedoch nicht in die Fernmeldetechnik betreffenden Anwendungsfällen benutzt worden. Die Universität von Grenoble hat sogar das System IBM OS/ASP (zugeordneter Versorgungsprozessor) laufen lassen, welches eine reale Maschine IBM 360/40 mit einer virtuellen Maschine 360 verbindet. Die Hauptbeschränkungen der durch das System CP-67 gebildeten virtuellen Maschinen liegen darin, daß ein kleiner Satz von Programmen nicht richtig arbeiten kann. Die betreffenden Beschränkungen sind:
409851/0383
1) Programme, die von genauen Ausführungszeiten abhängen,
2) Programme, die von der Beziehung zwischen der 'Verarbeitungszeit und der Eingabe/Ausgabe-Zeit abhängen,
3) Programme, die von der genauen Echtzeit abhängen, und
4) Programme, die Selbstmodifizierungs-Kanalprogramme enthalten.
Die ersten beiden Beschränkungen sind mit jenen Beschränkungen gleich, durch die die Kompatibilität zwischen zwei verschie- ■ denen Prozessoren der IBM 360-Familie gewährleistet ist. d) Erweiterung des Systems CP-67 zur Versorgung bzw. Unterstützung des virtuellen Systems 360/67 — Typ I SV. Im Mai I969 entwickelte R. Goldberg eine leichte Erweiterung zum System CP-67, um eine relativ wirksame Softwareausführung eines virtuellen Systems 360/67 (mit virtueller Verschiebung) zu versorgen bzw. zu unterstützen. Mit geringfügigen Modifikationen wurde dieser Entwurf eines virtuellen Systems 360/67 (d.h. IBM 360/67) im Herbst I969 von F. Furtek ausgeführt. Unabhängig von dieser Arbeit entwickelte auch A. Auroux im IBM-Wissenschaftlichen Zentrum, Cambridge eine Erweiterung eines virtuellen Systems IBM 360/67 zum System CP-67. Die beiden Entwicklungen sind sehr ähnlich, und die Auroux-Ausführung ist Teil des IBM-Standardsystems CP-67 (von IBM verbreitet) geworden.
Das virtuelle System IBM 360/67 ist auf eine 24-Bit-Adressierungsbetrieb-Einzelprozessor-Maschine beschränkt gewesen. Mit dieser Fähigkeit sind verschiedene IBM 360/67-Operationssysteme gelaufen, einschließlich der Systeme CP-67 und TSS/36O. Dies bedeutet, daß das System CP-67 unter sich selbst gelaufen ist. In der Tat ist diese Kette bis zu einer Tiefe von zumindest vier überprüft worden. Die prinzipielle zusätzliche Beschränkung bezüglich der Operation des virtuellen Systems IBM 360/67 gegenüber einem
409851/0863
normalen virtuellen System IBM 360 (unter der Bezeichnung CP-67) liegt darin, daß Programme, die dynamisch den Inhalt des Segments oder der Seitentabellen ändern, nicht wie beabsichtigt ausgeführt werden können. Die Ergebnisse können gegebenenfalls gleich sein mit einem realen System IBM 360/67. In einem realen System bzw. in einer realen Maschine kann der Inhalt der assoziativen Register das Ergebnis beeinflussen, weshalb die Ergebnisse auch nicht voraussagbar sein können, e) Virtuelles System IBM 360, unter der Bezeichnung UMMPS — Typ II FV. < -
Das virtuelle System IBM 360 unter der Bezeichnung UMMPS ist ein virtuelles Maschinensystem des Typs II. Das System UMMPS ist ein herkömmliches Mehrprogrammierungssystem, welches in der Universität von Michigan geschrieben worden ist, um auf einer Doppelprozessoranlage IBM 360/67 zu laufen. Die Universität von British Columbia hat einige Modifikationen bezüglich des Systems UMMPS vorgenommen, um ein virtuelles System IBM 360 zu versorgen bzw. zu unterstützen. Diese Modifikationen sind in Form von einigen zusätzlichen Überv/achungsanforderungseigenschaften erfolgt, um gewisse entscheidende bzw. kritische Operationen in der Abfertigung der virtuellen Maschine auszuführen. Offensichtliche Ausnahmebedingungen, die in der virtuellen Maschine auftreten, werden durch das UMMPS-Überwachungsprogramm auf ein Anwenderprogramm reflektiert, welches z.B. diese Simulation von privilegierten Befehlen ausführt. Virtuelle (Standard-) Systeme IBM 360 und nunmehr virtuelle Systeme 360/67 werden von diesem System versorgt bzw. unterstützt, obwohl andere Anwenderschnittstellen neben den virtuellen Maschinenschnittstellen vorgesehen sind (wie ein System MTS oder ein herkömmliches Stapelsystem).
409851/0863
f) Das System HITAC-8400 der japanischen elektrotechnischen Laboratorien — TYP II FV.
Das System HITAC-8400 ist die japanische Ausführungsform des RCA-Systems Spectra 70/45. Es ist ein herkömmlicher Rechner der dritten Generation ohne ein Speicher-Abbildungssystem, und zwar ähnlich dem IBM System/360. Als Hilfe für die Fehlerbeseitigung bzw. Programmkorrektur im System ETSS wurde ein neues System auf Zeitteilbasis für das System HITAC-8400, eine virtuelle Maschine des Typs II, auf dem vorhandenen, Verkäufer-Abgabeoperationssystem TOS/TDOS aufgebaut. Das virtuelle Maschinensystem ist sehr ähnlich dem virtuellen System IBM 360, das auf dem System UMMPS aufgebaut wurde. Ein interessierender Aspekt dieser Leistung war der Versuch, verschiedene virtuelle Eingabe/Ausgabe-Einrichtungen zu simulieren, die keine exakten physikalischen Gegenstücke haben (wie eine Sichtanzeige). Dies wurde selbstverständlich vorgenommen, da die virtuelle Maschine vollständig dazu herangezogen wurde, den Überwachungsprogrammcode für das System ETSS zu korrigierenjund nicht dazu, unter der Steuerung durch die betreffende Maschinelaufende Produktionsvorgänge zu korrigieren.
g) Hardware-Modifiziertes System IBM 360/30 — Typ I FV.
Es ist ein virtuelles Maschinensystem auf einem experimentiellen System 360/30 aufgebaut worden, und zwar durch Kombination von Software und von sogenannter ad hoc-Hardware, d.h. durch Mikroprogrammierungs-Modifikationen. Diese Modifikationen, die eingeführt worden sind, um den Aufbau einer virtuellen Maschine zu vereinfachen, werden dazu herangezogen, einen speziellen "Monitor"-Betrieb auszuführen und den Unterbrechungssteuerbereich von einem regulären Steuerprogrammbereich auf der physikalischen Seite 0 neu zu adressieren bzw. bereitzustellen. Das System ist nicht ein System VMTSS;
409851/0863
es unterstützt lediglich eine virtuelle Maschine. Überdies ist das System nicht ein selbst-virtualisierendes System, und ferner unterstützt es nicht virtuelle Maschinen, die dieser modifizierten Maschine IBM 360/30 äquivalent sind. Ihre Hauptanwendung liegt bei der betreffenden Maschine in der Überwachung und Bestimmung bzw. Abschätzung des Leistungsvermögens der existierenden Operationssysteme, wie des Operationssystems IBM/360/(OS/360), und der Grund-, Plattenspeicher- und Band-Operationssysteme (BOS, 3X)S, TOS/360), h) MIT-Projekt MC PDP-10 ITS — Typ II SV HVM. Ss ist nicht möglich, virtuelle Maschinen auf dem System DEC PDP-10 aufzubauen bzw. auszuführen, und zwar unter Verwendung herkömmlicher Softwaretechniken der dritten Generation. Kürzlich haben R.P. Goldberg und S.W. Galley die Vorstellung einer hybriden virtuellen Maschine für das System PDP-10 eingeführt. Mit dieser Technik werden sämtliche Ausführungsbetriebs-Befehle interpretiert, während sämtliche Anwenderbetriebs-Befehle direkt ausgeführt werden. Das MIT-Projekt MAC - dynamischesModelierungs-Rechnergraphiksysten» PDP-10 - hat für diese Ausführung eine ideale Umgebung geschaffen. Das System ITS (inkompatibles System auf Zeitteilbasis) liefert die benötigten Eigenschaften zur Stützung bzw. Versorgung eines VCS-Systems des Typs II (erweiterter Maschinenumfang). Darüber hinaus ist die Hardware-Konfiguration mit genügend Kernspeicherplätzen ausgestattet und zuweilen mit genügend Zentraleinheits-Zyklen, um das Laufen des HVM-Systems zu ermöglichen, i) IBM VM/370
Im Juli 1972 hat die Firma IBM eine virtuelle Maschineneigenschaft für verschiedene Modelle des Systems /370 angekündigt. Dieses System ist ein direkter Nachkomme des Systems CP-67; es unterstützt virtuelle Maschinen unter
409 8 5 1/0863
Verwendung konventioneller Softwaretechniken. Das System VM/370 ist das erste formal unterstützte, kommerziell angebotene virtuelle Maschinensystem, das von irgendeinem .Hersteller verfügbar ist.
Ältere bekannte virtuelle Maschinen waren in der Weise charakterisiert, daß die virtuellen Maschinenmonitore bzw. -Überwachungsprogramme (VMM) den Zustand des Prozessors und Hauptspeicher- und Eingabe/Ausgabe-Operationen der virtuellen Maschine steuerten. Die frühen virtuellen Maschinenüberwachungsprogramme bzw. -monitore ließen, kurz gesagt, sämtliche Programme in der nicht privilegierten Betriebsart laufen, so daß kein privilegiertes Softwarezentrum, das auf einer virtuellen Maschine ausgeführt wurde, in die privilegierte Betriebsart gelangen und einen unbeschränkten Zugriff zu dem gesamten System erhalten konnte. Daher ist die Möglichkeit gegeben, daß sich das virtuelle Maschinenüberwachungsprogramm selbst stört oder irgendeine andere, in dem System vorhandene virtuelle Maschine. Darüber hinaus bildeten diese frühen virtuellen Maschinen-Monitorprogramme bzw. -Überwachungsprogramme gewöhnlich den Hauptspeicher üurch Seitenbildungsverfahren bzw. sogenannte Paging-Verfahren ab, und stets wurden sämtliche Eingabe/Ausgabe-Operationen interpretierend ausgeführt. Deshalb konnten diese frühen virtuellen Maschinen lediglich auf Rechnersystemen ausgeführt werden, die eine gewisse Form eines Verschiebungssystems aufwiesen, welches die Fähigkeit besitzt, sämtliche Befehle festzuhalten, die den Prozessorzustand . ändern oder abfragen oder Eingabe/Ausgabe-Operationen einleiten konnten. Obwohl einige dieser frühen virtuellen Maschineiüberwachungsprogramme VMM, z.B. CP-67, auf itechnersystemen mit einer Zeitbildung ausgeführt worden
409851/0863
sind, konnten diese Überwachungsprogramme jedoch nicht selbst die virtuellen Haschinen mit Seitenbildung unterstützen; deshalb konnten die betreffenden Programme nicht auf den virtuellen Maschinen laufen, die sie hervorriefen. Auf Grund dieses Mangels an rekursiver Fähigkeit mußte die Überprüfung und Entwicklung des virtuellen Maschirfenüberwachungsprogramms VMM auf einem zur Verfügung gestellten Prozessor ausgeführt werden. Um diese Schwierigkeit zu überwinden und einen zufriedenstellenderen Grad an Verknüpfungs-Vollständigkeit zu erzielen, wurde das System CP-67 derart modifiziert, daß es rekursiv laufen konnte. Dies erforderte die wirksame Ausführung einer Doppel-Abbildungsoperation, um die zusätzliche Seitenbildungsoperation vorzunehmen, die in dent virtuellen Maschinenüberwachungsprogramm VMM selbst stattfindet. Um einen Prozess auf einer virtuellen Maschine mit Seitenbildung ablaufen zu lassen, muß zunächst eine durch den Prozeß erzeugte Adresse A in eine virtuelle Speicheradresse A1 gebildet werden, und zwar mittels der Bildungstabelle der virtuellen Maschine, und sodann muß die virtuelle Speicheradresse A1 in eine reale Adresse A" abgebildet bzw. überführt werden, und zwar durch die Seitenbildungstabelle des virtuellen Maschinenüberwachungsprogramms VMM. Um diese Doppelabbildung wirksam auszuführen, bildet die Software des virtuellen Maschinenüberwachungsprogramms eine zusammengesetzte Seitentabelle (in der die virtuelle Prozeßadresse A in die reale Adresse A" abgebildet bzw. überführt ist). Außerdem wird durch die betreffende Software mit dieser Abbildung die Steuerung der Adressen-Umrechnungshardware ausgeführt. Wenn das virtuelle Maschinenüberwachungsprogramm VMM eine Transferierung einer Seite aus dem Speicher vornimmt, muß es zunächst dessen eigene Seitentabelle ändern und dann die gebildete Karte bzw. Abbildung neu berechnen.
409851/0863
Wenn das privilegierte SoftwareZentrum die Seitentabelle der virtuellen Maschine ändert, muß das virtuelle Maschinenüberwachungsprogramm VMM in entsprechender Weise darüber informiert werden, so daß das zusammengesetzte Bild bzw. Abbild neu berechnet werden kann. Da die Seitentabelle der virtuellen Maschine in gewöhnlichen Speicherplätzen gespeichert ist, werden Befehle, die auf die Tabellen Bezug nehmen, nicht notwendigerweise durch das virtuelle Maschinenüberwachungsprogramm VMM festgehalten. Daher könnten Änderungen von dem virtuellen Maschinenüberwachungsprogramm VMM nicht ermittelt werden, und eine richtige Operation könnte nicht garantiert werden.
Die virtuellen Maschinen des Typs II, die mit erweiterten Schnittstellen laufen, sind im allgemeinen leichter aufzubauen als virtuelle Maschinenmonitore VMM, die auf einer bloßen Maschine direkt laufen, da nämlich der virtuelle Maschinenmonitor das Befehlsrepertoir der erweiterten Maschine benutzen kann, wenn komplexe Operationen, wie Eingabe/Ausgabe-Operationen, ausgeführt werden. Darüber hinaus kann das virtuelle Maschinenüberwachungsprogramm bzw. der virtuelle Maschinenmonitor VMM die Speicher-Managementeigenschaften (die die Seitenbildung umfassen können) der erweiterten Maschine und deren Dateisystem ausnutzen.
Die virtuellen Maschinen des Typs II sind für die erweiterte Maschinenschnittstelle ausgelegt, die durch das UMMPS-Operatiönssystem bzw. -Betriebssystem geplant ist. Wie oben ausgeführt, läuft das System Uh1MPS auf einer IBM Maschine des Modells 67. Somit ist der virtuelle Maschinenmonitor, der unter dem System UMMPS läuft, imstande, dieselbe Prozessor-Zustandsabbildung zu benutzen, die das System CP-6? benutzt.
409 8-5 1 /086 3
Der Befehl in dem virtuellen Maschinenmonitor VMM, der die Operation einer virtuellen Maschine auslöst, muß jedoch das System UMMPS darüber informieren, daß nachfolgend privilegierte Befehlssprünge, die von der virtuellen Maschine erzeugt werden, nicht direkt behandelt werden sollten, sondern vielmehr dem virtuellen Maschinenmonitor VMM für eine geeignete Interpretation zugeführt werden sollten. Darüber hinaus wird durch den Befehl, der die Operation einer virtuellen Maschine einleitet, außerdem das System UMMPS veranlaßt, seine Seitentabellen zu ändern, um der Tatsache Ausdruck zu geben, daß ein neuer Adressenraum bzw. Adressenplatz aktiviert worden ist. Wird bei der gebildeten virtuellen Maschine eine Seitenbildung vorgenommen, so ist es notwendig, die resultierende Tabelle mit der Seitentabelle zusammenzustellen, die in dem Speicher der virtuellen Maschine erscheint. Diese zuletzt genannte Operation ist vollständig analog der Bildung von virtuellen Maschinen mit Seitenbildung unter dem System CP-67.
Eingabe/Ausgabe-Operationen wurden in der virtuellen Maschine des ursprünglichen UMMPS-Systems des Typs II dadurch verarbeitet, daß eine UMMPS-System-Transfersteuerung auf den virtuellen Maschinenmonitor VMM erfolgte, und zwar nach Erfassen des Befehls, der die Kanalprogrammausführung einleitete. Der virtuelle Maschinenmonitor VMM setzte das Kanalprogramm um in dessen Adressenplatz, und zwar durch gegebenenfalls erfolgendes Abgeben des Seitenplanes der virtuellen Maschine und durch sodann erfolgendes Addieren eines konstanten Verschiebungsfaktors zu jeder Adresse. Nach Ausführung dieser Umsetzung forderte der virtuelle Maschinenmonitor VMM das System UMMPS an, um das Kanalprogramm auszuführen. Das UMMPS-System absolutierte sodann das Kanalprogramm und leitete dessen Ausführung ein.
409851/0863
Zusätzlich zu den obigen Vorgängen, die dieser Abbildungsvorgang nach sich zog, hat es dieser Abbildungsvorgang für die virtuelle Maschine unmöglich gemacht, ein selbst-modifizierendes Kanalprogramm auszuführen. Eine kürzlich erfolgte Modifizierung der Monitor-Software der virtuellen Maschine des UMMPS-Systems hat es ermöglicht, diese Situation zu mildern. Diese Modifikation umfaßt die Überführung des Speichers der virtuellen Maschine in den realen Speicher, so daß die virtuelle und die reale Adresse des jeweiligen Speicherplatzes identisch sind. Dies vermeidet die Notwendigkeit nach Absolutisierung des Kanalprogramms und steigert somit die Wirksamkeit, während gleichzeitig eine Selbstmodifizierung der Kanalprogramme möglich gemacht ist.
Eine der Schwierigkeiten, die zu überwinden waren, als diese Änderung bezüglich des virtuellen Maschinenmonitors vorgenommen wurde, lag darin, daß die realen Gegenstücke zu bestimmten virtuellen Maschinenspeicherplätzen bereits von dem System UMMPS benutzt waren. Die Lösung, die übernommen wurde, bestand darin, einfach das privilegierte SoftwareZentrum der virtuellen Maschine zurück- bzw. neu zu schreiben, so daß die meisten dieser Speicherplätze niemals benutzt wurden.
Eine der gebräuchlicheren vorgeschlagenen Lösungen des Problems der Erstellung von virtuellen Maschinenaufbauten basiert auf der Idee, den privilegierten Zustand vollständig zu vermeiden. Die Anhänger dieser Lösung argumentieren, daß die hauptsächliche - und tatsächlich einzig notwendige Funktion des privilegierten Zustande darin besteht, den Adressenabbildungsmechanismus des Prozessors zu schützen.
409851/0863
Wenn der Adressenabbildungsmechanismus aus der Grundmaschinenschnittstelle entfernt und dadurch vollständig unsichtbar für die Software würde, bestünde keine Notwendigkeit danach, den Mechanismus zu schützen und damit keine Notwendigkeit für einen privilegierten Zustand.
Der zuvor erläuterte Einzelzustands-Aufbau bringt eine wirksame Umgebung für die Erstellung von rekursiven virtuellen Maschinensystemen mit sich. Die diesem Aufbau zugehörige Grundmaschinenstelle leidet jedoch an einer Anzahl von Merkmalen, die von Nutzen sind, wenn ein privilegiertes Softwarezentrum geschrieben wird. Diese Merkmale, die in veränderlichem Umfang in einigen spaten Rechnersystemen der dritten Generation vorhanden sind, und die sicher in Systemen der vierten Generation vorhanden sein werden, umfassen die Speicheradressierung auf der Deskriptorbasis, mehrschichtige Schutzringe und Prozeßsynchronisations-Stammwörter.
Eine kürzlich durchgeführte Untersuchung der virtuellen Maschinenaufbauten für diese komplizierteren Systeme basierte auf einer wichtigen Unterscheidung zwischen zwei verschiedenen Fehlertypen. (Siehe U.O.Gagliardi und R.P. Goldberg Virtualizable Architectures - in "Proceedings ACM AICA International Computing Symposium", Venedig, Italien). Der erste Fehlertyp ist mit den sichtbaren Merkmalen der Software einer Grundmaschinenschnittstelle, wie einem privilegierten/nicht privilegierten Zustand, mit den Adressenabbildungstabellen, etc., verknüpft. Diese Fehler werden von dem privilegierten Softwarekern bzw. -Zentrum verarbeitet, der die betreffende Schnittstelle laufen läßt. Der zweite Fehlertyp tritt lediglich in virtuellen Maschinensystemen auf und wird dann erzeugt, wenn bei einem Prozeß versucht
09851/0883
wird, einen Hilfquellenplan zu ändern, den der virtuelle Maschinenmonitor festhält, oder wenn versucht wird, auf eine Hilfsquelle Bezug zu nehmen, die in einer virtuellen Maschine verfügbar ist, nicht jedoch in dem realen System (z.B. ein virtueller Maschinenspeicherplatz, der im realen Speicher nicht vorhanden ist). Diese Fehler werden lediglich durch den virtuellen Maschinenmonitor bzw. das virtuelle Maschinenüberwachungsprogramm VMM verarbeitet; sie sind vollständig unsichtbar für die virtuelle Maschine. Durch Bezugnahme auf nicht verfügbare reale Hilfsquellen hervorgerufene Fehler wurden dabei jedoch nicht klar identifiziert. Die hier gezogene Unterscheidung basiert auf einer späteren Untersuchung von Goldberg. (Siehe "Architectural Principles for Virtual Computer Systems" - Phd. Thesis Division of Engineering and applied Physics - der Harvard Universität, Cambridge, Massachusetts, USA.)
Da herkömmliche Aufbauten lediglich den früheren Fehlertyp unterstützen, werden herkömmliche virtuelle Maschinenmonitore dazu gebracht, beide Fehlertypen auf einem einzigen Mechanismus darzustellen. YJie bereits erwähnt, geschieht dies dadurch, daß man sämtliche Prozesse der virtuellen Maschine in der nicht privilegierten Betriebsart laufen läßt, daß unmittelbar sämtliche Fehler zu dem virtuellen Maschinenmonitor VMM hingelangen und daß der virtuellen Maschinenmonitor VMM sämtliche Fehler des ersten Typs zu dem privilegierten Softwarekern der virtuellen Maschine "zurückreflektiert". Eine offensichtliche Verbesserung dieser Situation kann festgestellt werden durch Schaffung eines Aufbaus, der beide Fehlertypen erkennt und aushält.
409851/0863
Obwohl relativ wenige Maschinensysteme auf zeitgenössischen Rechnersystemei') auf gebaut worden sind, stützt sich die Mehrzahl der heutigen Rechnersysteme nicht auf virtuelle Maschinen und kann sich auf derartige Maschinen auch nicht stützen. Die wenigen, gegenwärtig laufenden virtuellen Maschinen, z.B. das System CP-67, benutzen unpraktische und unangemessene Verfahren mit Rücksicht auf einen ungeeigneten Aufbau. In den Fällen, in denen Rechneraufbauten bzw. -architekturen speziell für virtuelle Maschinen ausgelegt vorgeschlagen worden sind, haben diese Aufbauten an zwei Schwächen gelitten. Entweder sind die betreffenden Aufbauten nicht imstande gewesen, moderne komplexe Operations- bzw. Betriebssysteme direkt auf den virtuellen Maschinen zu unterstützen, oder sie sind nicht imstande gewesen, die gesamte herkömm-
die
liehe Unannehmlichkeit und/Betriebskosten eines bedeutsamen Software-Eingreifens zu vermeiden, das mit der Unterstützung einer virtuellen Maschine verknüpft ist.
Es besteht somit Bedarf an einem virtuellen Maschinenaufbau, der in einem existierenden herkömmlichen Rechnersystem oder in Rechnersystemen der vierten Generation ausgeführt werden kann, die eine Speicheradressierung auf Deskriptorbasis, mehrschichtige Schutzringe und Prozeßsynchronisations-Stammwörter, wie Semaphoren, etc., umfassen. Darüber hinaus sollte ein derartiger virtueller Maschinenaufbau dadurch ausgeführt werden können, daß lediglich eine relativ kleine Anzahl von Hardware/Firmenware-Modifikationen vorgenommen wird.
(Die obige Darstellung ist eine zugelassene Überarbeitung und/oder ein Teilauszug aus einer vorveröffentlichten Schrift von J.P. Buzen und U.O. Gagliardi unter dem Titel
409851/0863
"The Evolution of Virtual Machine Architecture" und aus einer Dissertation von Robert P. Goldberg unter dem Titel "Architecture Principles for Virtual Computer Systems", Division of Engineering and Applied Physics der Harvard Universität, Cambridge, Massachusetts, USA.)
Der Erfindung liegt die Hauptaufgabe zu Grunde, eine verbesserte virtuelle Maschine zu schaffen. Die neu zu schaffende virtuelle Maschine soll dabei imstande sein, direkt moderne komplexe Bedienungssysteme, wie z.B. Multics, direkt zu unterstützen, und zwar auf der virtuellen Maschine. Die neu zu schaffende virtuelle Maschine soll darüber hinaus die Unannehmlichkeit und Organisation eines erheblichen Softwareeingreifens des virtuellen Maschinenmonitors elimenieren. Darüber hinaus soll die neu zu schaffende verbesserte virtuelle Maschine imstande sein, zu vorhandenen Rechnersystemeη hinzugefügt zu werden. Ferner soll die neu zu schaffende virtuelle Maschine in existierenden Rechnersystemen ausgeführt werden 'können, indem lediglich eine relativ geringe Anzahl von Hardware/Firmenware-Modifikationen vorgenommen wird. Ferner soll eine Hardware-Virtualisierungsanordnung bereitgestellt werden, die durch Hardware und Firmenware dynamisch die verschiedenen Hilfsquellen-Pläne darstellt bzw. aufnimmt, die anzurufen sind, um einen Prozeß auf der virtuellen Maschine laufen zu lassen. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung sich für den Aufbau einer verbesserten virtuellen Maschine eignen. Darüber hinaus soll die neu zu schaffende Hardware-Virtualisierungsanordnung Prozesse auf einer virtuellen Rechenmaschine unter einem zusammengesetzten f-und ^-Plan laufen lassen, wobei der f-Plan die virtuellen Hilfsquellennamen in reale Hilfsquellennamen darstellt und wobei der ^-Plan die Pr_jDzeßnamen
40086t/0863
in Hilfsquellennamen darstellt. Ferner soll die neu zu schaffende Plardware-Virtualisierungsanordnung auf unterschiedliche ^-Pläne angewandt werden können und unabhängig von dem ji-Plan auf Rechnersysteme. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung Prozesse in einem virtuellen Rechnersystem ablaufen lassen können, welches auf eine große Vielzahl von f-Plänen angewendet werden kann. Darüber hinaus soll für die Fähigkeit gesorgt werden, eine verbesserte virtuelle Maschine mit Rekursion laufen zu lassen. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung eine virtuelle Maschine mit Rekursion laufen lassen, bei der die gerade aktive virtuelle Maschine durch ein Identifizierungsregister identifiziert ist. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung rekursive virtuelle Maschinen laufen lassen, wobei ein Fehler in einer virtuellen Maschine direkt dem in Frage kommenden Monitor der virtuellen Maschine signalisiert werden soll, und zwar zur Fehlerverarbeitung ohne eine Kenntnis von irgendwelchen anderen virtuellen Maschinen oder der Software, die in den virtuellen Maschinen läuft. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung rekursive virtuelle Maschinen laufen lassen, wobei eine virtuelle Maschine durch einen bestimmten Hardwarebefehl aktiviert werden können soll. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung rekursive virtuelle Maschinenstrukturen laufen lassen, bei denen eine virtuelle Maschine mittels eines Hardware-Befehls aktiviert werden können soll, wobei die in Frage kommende virtuelle Maschine reaktiviert wird, und zwar ohne die Kenntnis von irgendwelchen mittleren virtuellen Maschinen längs eines Zweiges in dem Fall, daß ein Unterbaum der virtuellen Maschinen fehlerhaft geworden ist. Darüber hinaus soll die
409851/0863
neu zu schaffende Hardware-Virtualisierungsanordnung Prozesse in einem virtuellen Rechnersystem unter einem zusammengesetzten rekursiven f-Plan und $-Plan ablaufen lassen, wobei der rekursive f-Plan Ebenen von virtuellen Hilfsquellennamen in reelle Hilfsquellennamen darstellt und wobei der ji-Plan Prozeßnamen in Hilfsquellennamen darstellt. Ferner soll die neu zu schaffende Hardware-Virtualisierungsanordnung die Fähigkeit besitzen, Mehrfach-^-Pläne in den virtuellen Maschinen laufen zu lassen, überdies soll die neu zu schaffende Hardware-Virtualisierungsanordnung virtuelle Maschinen mit unterschiedlichen inneren Ausgestaltungen laufen lassen. Schließlich soll die neu zu schaffende Hardware-Virtualisierungsanordnung sämtliche Prozeßausnahmen innerhalb der wirkenden virtuellen Maschine verarbeiten können, ohne daß ein Softwareeingreifen des virtuellen Maschinenmonitors erfolgt.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die im Patentanspruch 1 angegebene Erfindung.
Eine virtuelle Maschine, die in einem existierenden Rechnersystem, wie dem Rechnersystem Honeywell der Serie 6000, ausführbar ist, weist eine Hardware-Virtualisierungsanordnung für den Ablauf von Prozessen in der virtuellen Rechnermaschine unter einem zusammengesetzten f- und $-Plan auf. Der ^-Plan, der den sichtbaren Plan für die Bedienungssystemsoftware darstellt, die in der virtuellen Maschine läuft, stellt die Prozeßnamen in Hilfsquellennamen dar. Der f-Plan, der den für die gesamte Software, die in der virtuellen Maschine läuft, unsichtbaren Plan darstellt, stellt die virtuellen Hilfsquellennamen in reale Hilfsquellennamen oder in andere virtuelle Hilfsquellennamen dar; der be-
A098B1/0863
treffende Plan kann mehrere Rekursionsebenen aufweisen. Der ^-Plan ist ein sogenannter Intra-Ebenenplan, der eine Beziehung innerhalb einer einzigen Ebene ausdrückt, während der f-Plan ein Inter-Ebenen-Plan ist und eine Beziehung zwischen den Hilfsquellen zweier benachbarter Ebenen von virtuellen Maschinen bestimmt.
Der $S-Plan wird mit dem rekursiven f-Plan kombiniert, um einen generellen zusammengesetzten Plan zu erhalten. Die Hardware-Virtualisierungsanordnung benutzt eine Datenbasis, um den f-Plan darzustellen; sie stellt einen Befehl bereit, um auf den f-Plan zurückzukommen,/stellt ferner eine Einrichtung zur Identifizierung der gerade laufenden virtuellen Maschine bereit und liefert ferner einen Mechanismus zur Verarbeitung bzw. Behandlung von Fehlern innerhalb der virtuellen Maschinen.
Die Hardware-Virtualisierungsanordnung ermöglicht die direkte Verarbeitung bzw. Behandlung sämtlicher Prozeßausnahmen innerhalb der ausführenden virtuellen Maschine ohne einen Softwareeingriff des virtuellen Maschinenmonitors. Sämtliche Hilfsquellenfehler (virtuelle Maschinen-Fehler bzw. VM-Fehler), die durch eine virtuelle Maschine erzeugt worden sind, werden dem in Frage kommenden virtuellen Maschinenmonitor (VtM) zugeführt, ohne daß eine Kenntnis von den Prozessen in der virtuellen Maschine existiert (unabhängig von der Rekursionsebene).
An Hand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert.
Fig. 1a bis 1c zeigen zum Stand der Technik gehörende Anordnungen in Blockdiagrammen, die zur Erläuterung der
409851/0863
Erfindung von Nutzen sind und die den zum besseren Verständnis der Erfindung dienenden Stand der Technik darstellen.
Fig. 1d, 2a bis 2d zeigen schematisch in Blockdiagrammen einen rekursiven f-Plan-Prozeß gemäß der Erfindung. Fig. 3a, 3b zeigen schematisch in Blöcken und Kreisen eine Prozeßausnahme und eine Fehlererzeugung bei einer virtuellen Maschine gemäß der Erfindung*
Fig. 4 zeigt schematisch in einem Blockdiagramm einen f-Plan, unter Veranschaulichung einer virtuellen Maschinentabelle (VM^AB), eines virtuellen Maschinensteuerblocks (VtICB) und von virtuellen Maschinenseitenteilen.
Fig. 5 zeigt in einem generellen Flußdiagramm einer oberen Ebene einen Befehl, der in Firmenware ausführbar ist, um ein virtuelles Maschinenidentifizierungsregister zu ändern. Fig. 6a zeigt in einem generellen Flußdiagramm einer oberen Ebene einen in Firmenware und Hardware ausführbaren f-Plan- und ^-Plan-T-Zusanmiensetzungsmechanismus.
Fig. 6b zeigt in einem Blockdiagramm Hardware-Virtualisierungsregister.
Fig. 7 zeigt in einem Diagramm eine Ausführungsform einer Hardware-Virtualisierungsanordnung mit bestimmten f- und ^-Plänen.
Fig. 8a und 8b zeigen in Blockdiagrammen eine weitere Ausführungsform einer Hardware-Virtualisierungsanordnung mit unterschiedlichen f- und $z$-Plänen.
Da die Konzepte von virtuellen Rechenmaschinen gerade erst am Beginn des Auftretens über dem sogenannten"elektronischen Rechensystemhorizont" stehen^wird es auch zum besseren Verständnis der vorliegenden Erfindung zum Zwecke einer leichteren Ausführung als ratsam angesehen, die bekannten Konzepte in einigen Einzelheiten nochmals zu betrachten. Zur Erzielung
409851/0863
eines vollständigen Verständnisses der Lehren der vorliegenden Erfindung wird es jedoch als helfend erachtet, eine bevorzugte Ausführungsform zu beschreiben, und zwar durch Entwicklung eines Modells der Erfindung, welches die Abbildung bzw. Darstellung und Adressierung von Hilfsquellen durch einen in einer virtuellen Maschine ablaufenden bzw. ausgeführten Prozeß darstellt. Um die zu Grunde liegenden Aufbauprinzipien von virtuellen Maschinen abzuleiten, ist darüber hinaus ein Modell erwünscht, welches die Darstellung der Ausführung eines Prozesses in bzw. auf einer virtuellen Maschine darstellt. Da es erwünscht ist, daß diese Prinzipien auf den gesamten Bereich herkömmlicher Rechensysteme anwendbar sind - von Minirechnern über die gegenwärtigen Allzwecksysteme der dritten Generation, einschließlich gewisser zukünftiger Maschinen (möglicherweise der vierten Generation) ist es erforderlich, ein Modell zu entwickeln, welches die gemeinsamen Punkte aller dieser Systeme wiedergibt. Das Modell sollte dabei nicht von den besonderen Planstrukturen abhängen, die für die Software der erläuterten Maschine sichtbar sind. Eigenschaften, wie eine Speicherverschiebung oder ein Überwachungszustand, sind Charakteristiken des existierenden Systems und treten auf, ob die erläuterten Maschinen nun virtuelle Maschinen sind oder nicht.
Um virtuelle Maschinen einzuführen, wird eine unterschiedliche, unabhängige Abbildungs- bzw. Planstruktur festgelegt, die die Begriffe festhält, die für sämtliche virtuellen Rechnersysteme gemeinsam sind. Das Vereinheitlichungsthema ist dabei das Konzept einer virtuellen Maschinenkonfiguration und einer Reihe von virtuellen Hilfsquellen. Diese Hilfsquellen bzw. Mittel, wie z.B. der Umfang des Hauptspeichers in der virtuellen Maschine, sind ein Merkmal sämtlicher virtuellen Maschinen, und zwar unabhängig von
4098S1/08S3
der besonderen Form der Speicher-Verschiebung, etc. des virtuellen Prozessors. Somit ist die Schlüsselstellung die Beziehung zwischen den Hilfsquellen bzw. Mitteln in der Konfiguration der virtuellen Maschine und jenen Hilfsquellen bzw. Mitteln in der Konfiguration der realen (Ausgangs)-Maschine. Lediglich nach vollständigem Verständnis dieser Beziehung brauchen durch das Vorhandensein irgendeiner zusätzlichen Abbildungs- bzw. Planstruktur eingeführte Kompliziertheiten behandelt zu werden.
Im folgenden wird ein Hilfsquellenplan erläutert. Ein Modell für eine Hilfsquellenabbildung einer virtuellen Maschine wird entwickelt, und zwar durch Pestlegen des Satzes von Hilfsquellen V = (ν , v,. .... ν ), die bei der virtuellen Maschinenkonfiguration vorhanden sind, und des Satzes von Hilfsquellen R = (rQ, r^ .... ^n), die bei der realen (Ausgangs)-Konfiguration vorhanden sind. (Hilfsquelle^Plätze, und zwar sowohl'reale als auch virtuelle, sind stets als Rechtecke in den Figuren dargestellt.) Die Sätze V und R enthalten sämtliche Hauptspeichernamen, adressierbare Prozessorregister, Eingabe/Ausgabe-Einrichtungen, etc.. Im Zuge der folgenden Erläuterung werden jedoch der Einfachheit halber sämtliche Hilfsquellennamen so behandelt, als seien sie Speichernamen, d.h. Adressen. Da Speicherplätze dazu herangezogen werden können, auf andere Hilfsquellennamen Bezug zu nehmen, wie auf Prozessorregister, z.B. DEC PDP-10,oder auf Eingabe/Ausgabe-Einrichtungen, z.B. DEC PDP-11, geht keine Allgemeingültigkeit dadurch verloren, daß sämtliche Hilfsquellennamen als Speichernamen behandelt werden.
409851/0863
Da von vornherein keine entsprechende Beziehung zwischen virtuellen und realen Namen angenommen ist, muß eine Möglichkeit einbezogen werden, virtuelle Namen den realen Namen während des Auslaufs der virtuellen Maschine zuzuordnen. Zu diesem Zweck wird für den jeweiligen Augenblick eine Funktion definiert:
f: V~£ R U \ t }
Hierin bedeutet f die Hilfsquellendarstellung des Satzes V von virtuellen Hilfsquellen in den Satz R, in Vereinigung mit t, wobei R der Satz von realen Hilfsquellen des Systems und t das Ereignis bedeuten, welches das Auftreten eines nicht programmierten Sprungs oder Fehlers anzeigt. Dies gilt dann, wenn
y £ V und ζ £ R sind.
y £V zeigt an, daß y ein Element des Satzes V" ist, und z£R zeigt an, daß ζ ein Element des Satzes R ist (dies bedeutet, daß y eine virtuelle Hilfsquelle ist, und daß ζ eine reale Hilfsquelle ist). Um die Elemente des einen Satzes den Elementen des anderen Satzes zuzuordnen gilt dann: f (y) = [z, wenn ζ der reale Name für den virtuellen Namen y ist t , wenn y nicht einen entsprechenden realen
Namen besitzt.
Dies bedeutet, daß f (y) gleich ζ ist, wenn ζ die reale Hilfsquelle ist, die der virtuellen Hilfsquelle y entspricht. Im übrigen ist f (y) gleich t, wenn y nicht eine entsprechende reale Hilfsquelle zu dem betreffenden Zeitpunkt zugeteilt ist.
Der Wert f(y) = t ruft einen nicht programmierten Sprung oder Fehler zur Ausführung einer gewissen Fehlerbehandlungsprozedur in der Maschine hervor, deren Hilfsquellensatz R ist, was bedeutet, daß es sich um die Maschine R handelt. Der Klarheit wegen wird dieser Vorgang hier als VM-Fehler bezeichnet, was keine Ausnahme bedeuten soll.
409851/0863
• - 29 -
Die Funktion f wird als Hilfsquellenplan bzw. -darstellung, als virtueller Maschinenplan oder f-Plan bezeichnet. Die Software bei einer realen Maschine R, die den f-Plan einstellt und (normalerweise) eine Steuerung auf einen VM-Fehler hin erhält, wird als virtueller Maschinenraonitor VMM oder als virtuelles Maschinenüberwachungsprogramin bezeichnet.
Das Modell auferlegt keine Forderung dahingehend, daß der f-Plan ein Seitenplan, ein Verschiebungs-Grenzen-Plan (R-B-Plan) oder ein Plan irgendeiner anderen Form ist. Wenn jedoch von virtuellen Maschinen gesprochen wird, ist die Aufmerksamkeit normalerweise auf solche Fälle beschränkt, in denen die virtuelle Maschine eine zuverlässige Nachbildung der realen Maschine ist und in denen das Leistungsvermögen des virtuellen Systems vergleichbar mit dem des realen Systems gemacht werden kann.
Im folgenden sei die Rekursion näher betrachtet. Das oben entwickelte Rekursionsplanmodel erstreckt sich direkt auf die Rekursion, und zwar durch Interpretierung von V und R als zwei benachbarte Ebenen virtueller Hilfsquellen. Sodann befindet sich die reale physikalische Maschine in der Ebene 0, und der f-Plan stellt die Ebene n+1 als Ebene η dar.
Die Rekursion für virtuelle Systeme ist eine Eigenschaft von beachtlichem praktischen Interesse. In ihrer einfachsten Form ist die Motivation für die virtuelle Maschinenrekursion diejenige Eigenschaft, die - obwohl sie dem Sinn nach herkömmliche Bedienungs- bzw. Betriebssysteme auf der virtuellen Maschine laufen laßt - zur Überprüfung der virtuellen Maschinenmonitorsoftware auf einer virtuellen Maschine ferner die Notwendigkeit mit sich bringt, zumindest eine virtuelle
409851/0863
Maschine in einer zweiten Ebene laufen zu lassen.
Wenn die Virtualisierung nicht rekursiv ist, kann man lediglich eine Einschachtelungsebene von virtuellen Maschinen erzeugen; deshalb ist es unmöglich, die Software zu korrigieren, die die virtuellen Betriebsartausnahmen behandelt (virtueller Maschinenmonitor VMM), während der reguläre Betrieb in dem System aufrechterhalten wird. Um eine Korrektur des virtuellen Maschinenmonitors VMM gleichzeitig mit anderen Aktivitäten vorzunehmen, ist es in der Tat erforderlieh, daß/einer der virtuellen Maschinen ermöglicht wird, ihrerseits einen virtuellen Maschinenmonitor bzw. ein virtuelles Maschinenüberwachungsprogramm laufen zu lassen und somit eine zweite Ebene von virtuellen Maschinen zu bilden. Unter einem praktischen Gesichtspunkt heraus ist alles, was benötigt wird, eine begrenzte Rekursionsfähigkeit mit zwei Ebenen der Verschachtelung für die virtuellen Maschinen. Diese Minimalfähigkeit würde der virtuellen Maschinenmonitorsoftware ermöglichen, gleichzeitig mit anderen Aktivitäten in dem System korrigiert werden zu können.
In der folgenden Erläuterung wird eine qualifizierte Namen-Baumnamensgebungs-Übereinkunft entsprechend einer PL/I-Ausdrucksweise benutzt, bei der eine virtuelle Maschine in der Ebene η gleich η Silben in ihrem Namen aufweist.
In Fig. 1d ist in einer schematischen Darstellung die virtuelle Maschinegsmäß der Erfindung gezeigt, die eine Rekursionsfähigkeit besitzt. In der realen Maschine befindet sich in der Ebene 0 ein virtueller Maschinenmonitor VMM. In der Ebene 1 sind zwei virtuelle Maschinen VM1 und VM2 vorhanden. Die virtuelle Maschine VM1 besitzt einen Baum-
409851/0863
namen 1, und die virtuelle Maschine VM2 besitzt einen Baumnamen 2. In der Ebene 2 sind zwei virtuelle Maschinen VM3 und VM4 vorhanden. Die virtuelle Maschine VM3 besitzt einen Baumnamen 2.1, und die virtuelle Maschine VM4 besitzt einen Baumnamen 2.2, etc.. (In Fig. 1d ist der Ablauf bzw. die Ausführung der virtuellen Maschine gegeben mit 2.1.1 drei Ebenen unterhalb der Ebene 0 und einschließlich der Ebene 0.) Es dürfte ersichtlich sein, daß η Silben im Namen der virtuellen Maschine in der Ebene η vorhanden sind und daß demgemäß ein Hinweis dafür vorhanden ist, daß η Pläne bzw. Abbildungen zusammenzusetzen sind, um tatsächlich die Hilfsquelle aus der Ebene η in der virtuellen Maschine in die reale Maschine zu übernehmen. Diese Namensgebungsübereinkunft benennt eindeutig die Vorfahren der ausführenden virtuellen Maschine und insbesondere deren Erzeuger. Wenn die ausführende virtuelle Maschine somit einen virtuellen Maschinenfehler erzeugt, kann die Hardware/Firmenware zu dem Schluß kommen, daß die Steuerung auf den virtuellen Maschinenmonitor VMM übertragen werden muß, der in bzw. auf der virtuellen Maschine 2.1 läuft, die der Ursprung für die ausführende bzw. laufende virtuelle Maschine 2.1.1 ist.
Dieser Baumname wird als Index sowohl für den virtuellen Hilfsquellensatz, z.B. V. . , als auch für den entsprechenden f-Plan, z.B. f , benutzt.
Wenn somit folgende Voraussetzungen gegeben sind:
f1: V^ R (Ebene 1, Hilfsquellenplan für die Darstellung
V1 in R)
£| ^: V1 1 V1 (Ebene 2, Hilfsquellenplan für die Darstellung bzw. Abbildung V1 1 in V1).
409851/0863
Sodann wird der virtuelle Hilfsquellennamen y der Ebene 2 dargestellt bzw. abgebildet in fo (f (y)) oder f. ο f (y),
£- I . I I Ί . ι
!lo" ist der herkömmliche Funktionszusammensetzungsoperator in der Mathematik. Siehe Fig. 2a.
Der obige Plan bzw. die obige Darstellung und Fig. 2a veranschaulichen, wie zwei virtuelle Maschinenpläne f. und f, zusammengesetzt (zusammengestellt) werden, um eine Darstellung bzw. Abbildung von der Ebene 2 in die Ebene 1}in die Ebene 0, d.h. zu der realen Maschine, zu bewirken. Wenn zuvor ein f-Plan bestimmt worden ist, kann eine virtuelle Hilfsquelle in eine reale Hilfsquelle dargestellt werden, oder es kann eine virtuelle Hilfsquelle in einer anderen Ebene dargestellt v/erden oder einen Fehler ,hervorrufen. In Fig. 2a ist die erfolgreiche Darstellung bzw. Abbildung (d.h. ohne einen Fehler) der virtuellen Maschinenhilfsquelle veranschaulicht, und zwar bei der virtuellen Maschine V-1 Λ in die virtuelle Maschine V. und in eine reale Maschine R, d.h. f1 Cf1^1 (z)).
In der obigen Funktion kann f Λ ο f Λ Λ zwei mögliche Fehler erkennen:
1) Der Ebene-2-Hilfsquellenfehler (virtuelle Maschine) auf dem virtuellen Maschinenmonitor der Ebene 1, d.h. f. .(v) = t. Siehe Fig. 2b.
2) Der Ebene-1-Hilfsquellenfehler (virtuelle Maschine) zu dem virtuellen Maschinenmonitor der Ebene 0 (der realen Maschine), dies bedeutet, daß lot. (v) = %< Siehe Fig.2c,
In Fig. 2b ist ein Fehler veranschaulicht, der auftritt, da die Hilfsquelle, die von dem virtuellen Hilfsquellenraum V^, Λ,
wo dieser existiert, in dem virtuellen Hilfsquellenraum V1
denn
dargestellt wird, in/v., nicht existiert. So ist z.B. eine in
409851/0863
V-1 , existierende Seite in V nicht vorhanden. Demgemäß i · I ι
resultiert daraus ein Fehler t. Dies ist ein Fehler des Typs 1 (d.h. ein Ebene-2-Fehler) über f (y) = t. In
1 · I
Fig. 2 ist ein oberer Fehler des Typs 2 (lübene-1-Fehler) veranschaulicht, wobei eine Hilfsquelle, die in dem virtuellen Raum V. Λ existiert, erfolgreich in dem virtuellen Hilfs-
quellenraum V1 dargestellt bzw. abgebildet wird, danach jedoch ausfällt hinsichtlich der Darstellung bzw. Abbildung in dem realen Hilfsquellenraum R.
Bei dem obigen Fehler des Typs 1 bewirkt ein Merkmal der noch näher zu beschreibenden Erfindung eine Steuerung insoweit, als der Fehler des Typs 1 direkt zu dem virtuellen Maschinenmonitor VMM hin gelangt, der in V1 läuft, und zwar ohne die Kenntnis des virtuellen Maschinenmonitors, der auf der realen Maschine R läuft - eine Neuerung mit einer Hauptbedeutung. In dem Fall, daß der Plan f. Λ erfolgreich
I · 1
ist in der Darstellung bzw. Abbildung von V1 (und in V. eine entsprechende Hilfsquelle findet), jedoch der Plan f,, bei der Darstellung bzw. Abbildung in R ausfällt (und eine entsprechende Hilfsquelle in R nicht findet) bewirkt in entsprechender Weise der Fehler t" sodann eine Steuerung, durch die zu dem virtuellen Maschinenmonitor hin gekommen wird, der auf· der realen Maschine läuft, und zwar ohne die Kenntnis des virtuellen Maschinenmotors, der auf V1 läuft.
Bei bisher bekannten virtuellen Maschinen, wie dem System CP-67, bei denen eine Realisierung der Rekursion versucht wurde, wenn z.B. ein Fehler in der Ebene 1 auftrat, würde der Fehler dadurch behandelt bzw. verarbeitet werden, daß auf die Ebene 0 Bezug genommen würde, da nämlich dort kein realer Fehlerbehandlungsmechanismus vorhanden ist. Sodann
409851/0863
• - 34 -
würde durch Software zur Ebene 1 zurückgekehrt werden. Dies zieht jedoch einen wesentlichen Softwareüberhang nach sich.
Im allgemeinen kann ein zusammengesetzter f-Plan irgendeinen Fehler hervorrufen. Ss existiert jedoch eine Klasse von Plänen, die sogenannten inklusiven Pläne, die lediglich den ersten Fehler (Ebene-2-Fehler) hervorrufen können. Der Verschiebungs-Grenzen-Plan (R-B-Plan) ist ein inklusiver Plan, was jedoch nicht für den Seiten-Plan zutrifft. Die Inklusiv-Eigenschaft impliziert die Möglichkeit einer einfachen Rekursionsausführung.
Für den generellen Fall der Ebene-n-Rekursion wird der virtuelle Name y der Ebene η dargestellt in
fi ° fi.i ° ···· ° fi 1 <*>·
Siehe Fig. 2d.
Das vorliegende Modell kann dazu herangezogen werden, die rekursiven virtuellen Sinzelzustands-Maschinen zu beschreiben. Siehe Tabelle I.
Im folgenden sei der Prozeßplan φ näher betrachtet. Das Modell, wie es derzeit entwickelt ist, gibt lediglich die Darstellung von Hilfsquellen in einem Rechnersystem wieder. Diese Maschinenausführung genügt, um die Virtual!sierung von bestimmten Minirechnern, wie dem System DEC PDP-8, zu erläutern, welches irgendeine örtliche Darstellungs- bzw. Planstruktur nicht zeigt. Die meisten gegenwärtigen Allzwecksysteme (der dritten Generation) weisen jedoch zusätzliche Software-sichtbare Hardware-Pläne auf. Diese zusätzliche Struktur kann vorliegen einfach als Überwachungs/Problem-Zustände (IBM System/360) und Verschiebungs-Grenzen-Register
40*861/0883
(DEC PDP-10 und Honeywell 6000) oder als Komplex, wie als iiinteilungs-Seitenbildungs-Ringe (Multics - Honeywell Informations Systems Inc. 6180). In zukünftigen Systemen der vierten Generation werden die Pläne wahrscheinlich sogar noch komplizierter; sie können eine formale Ausführung des Prozeßmodells in Hardware/Firmenware hervorbringen.
Der entscheidende Punkt "bezüglich jeder dieser Hardware (unterstützten) Pläne liegt jedoch darin, daß sie gewissermaßen software-sichtbar sind. In bestimmten Systemen erstreckt sich die Sichtbarkeit auf die nicht privilegierte Software. In allen Fällen sind jedoch die Pläne für die privilegierte Software sichtbar.
In typsicher Weise wird ein Betriebssystem auf einer dieser Maschinen die Planinformation ändern, bevor die Ausführung eines Anwenderprozesses erfolgt. Die Planmodifikation könnte einfach dadurch erfolgen, daß die Prozessorbetriebsart in den Problemzustand gebracht wird, oder sie kann so kompliziert sein, daß der Prozeß-Adressenplatz geändert wird, und zwar durch Umschalten seiner Segmenttabelle. In jedem Fall werden die anschließende Ausführung des Prozesses und der Zugriff zu den Hilfsquellen durch den gegenwärtigen örtlichen Plan beeinflußt werden.
Um den Ablauf von, Prozessen auf einer virtuellen Maschine zuverlässig nachzubilden, muß daher die örtliche Planbildungs- bzw. Abbildungsstruktur in das Modell eingeführt werden.
Ein Modell des software-sichtbaren Hardware-Plans ist dadurch entwiekelt worden, daß der Satz von Prozeßnamen
409851/0863
P = (P , P. ... P.) als Satz von Namen bestimmt worden ist, die durch einen in dem Rechensystem ablaufenden Prozeß adressierbar sind. (Prozeßräume bzw. -Plätze sind dargestellt als Kreise in den Figuren 3a und 3b.) R= (rQ, r* ... rn) ist als Satz von (realen) Hilfsquellennamen, wie zuvor, angenommen.
Für den aktiven Prozeß ist sodann eine Möglichkeit vorgesehen, um die Prozeßnamen den Hilfsquellennamen während der Prozeßausführung zuzuordnen. Zu diesem Zweck ist mittels der gesamten software-sichtbaren Hardware-Darstellungsstruktur, z.B. des Überwachungs/Problemzustands, die Segmenttabelle, etc., eine Funktion für jeden Augenblick bestimmt, nämlich
φ: P -^ RU {e]
Hierin bedeutet φ die sichtbare Software-Tabelle des Betriebssystems für den Satz P von Prozeßnamen, und zwar zur Darstellung des Satzes R in Vereinigung mit e, wobei R der Satz von realen Hilfsquellen des Systems bedeutet und wobei e das Ereignis bedeutet, welches anzeigt, daß eine Ausnahme aufgetreten ist, Wenn x£P, y£R vorliegen, wobei x£.P anzeigt, daß χ ein Element des Satzes P von Prozessen ist, und wobei y£_R anzeigt, daß y ein Element des Satzes R (das sind Hilfsquellen) ist, dann gilt zur Zuordnung der Elemente eines Satzes zu den Elementen eines anderen Satzes die Beziehung
φ (χ) == (y, wenn y der Hilfsquellennamen für den Prozeßnamen χ ist,
e, wenn χ keine entsprechende Hilfsquelle hat. Dies bedeutet, ^(x) ist gleich y, wenn y die (reale) Hilfsquelle ist, die dem Prozeßnamen χ entspricht. Ansonsten ist φ (χ) gleich e, wenn χ zu einem bestimmten Zeitpunkt eine entsprechende (reale) Hilfsquelle nicht zugeteilt ist.
409851 /0863
Der Wert φ (χ) = e bewirkt das Auftreten einer Ausnahme bei einem gewissen Ausnahmebehandlungsvorgang, und zwar vermutlich bei einem privilegierten Vorgang des Betriebssystems dieser Maschine. Um eine Verwirrung mit VM-Fehlern (siehe oben) zu vermeiden, werden die nicht programmierten Prozeßsprünge stets als Ausnahmen bezeichnet.
Die Funktion φ wird als Prozeßplan oder φ-Plan bezeichnet. Der Ausdruck Prozeßplan wird unabhängig davon angewandt, welche Form der jrf-Plan besitzt. In zukünftigen Systemen (der vierten Generation) kann φ tatsächlich die Firmenwarerealisierung von Prozessen darstellen, obwohl dies nicht notwendig ist. Ein bedeutender Punkt bezüglich φ liegt noch darin, daß im Unterschied zu dem f-Plan, der ein Interebenen- bzw. Zwischenebenen-Plan ist, der jif-Plan ein örtlicher oder Intraebenen-Plan ist und eine Ebene der Hilfsquellen_darstellung nicht kreuzt.
Im folgenden sei der Lauf einer virtuellen Maschine näher betrachtet, nämlich f ο φ. Der Ablauf eines Prozesses auf einer virtuellen Maschine bedeutet den Ablauf eines Prozesses in einer Konfiguration mit virtuellen Hilfsquellen. Wenn ein Prozeß P = (p_, P1 ... p.) auf der virtuellen Maschine V = (vq, v. '"Vjn) läuft, dann gilt, wie zuvor,
φι P--^ V U { e} ,
wobei die virtuellen Hilfsquellennamen V anstelle der realen Namen in dem Hilfsquellenbereich des Planes ersetzt sind.
Die virtuellen Hilfsquellennamen werden ihrerseits in ihre realen Äquivalente durch den Plan, f:V - R, dargestellt. Somit entspricht ein Prozeßname χ einer realen Hilfs-
409851/0863
quelle f ($$(x)). Im allgemeinen werden die Prozeßnamen in reale Hilfsquellennamen unter der Wirkung des (zusammengesetzten) Planes
f ο φ\ P —^ R U (tj U {e\ dargestellt, wobei die betreffenden Symbole die obigen Bedeutungen haben.
Dieser (zusammengesetzte) Plan kann nicht genügen, um einen Prozeßnamen in einen realen Hilfsquellennamen in einem von zwei Wegen zu überführen. Im Falle einer Prozeßnamenausnahme (Fig. 3a) wird die Steuerung ohne Kenntnis oder Eingreifen des virtuellen Maschinenmonitors auf die privilegierte Software des in derselben Ebene arbeitenden Systems übertragen. Ein Fehler eines virtuellen Namens bewirkt jedoch, daß die Steuerung auf einen Prozeß . einer Maschine in einer unteren Ebene übergeht, und zwar ohne Wissen oder Eingreifen des arbeitenden Systems (Fig. 3b). Obwohl diese Fehlerbehandlungssoftware in dem virtuellen Maschinenmonitor VMM nicht Gegenstand eines f-Planes ist, da sie auf der realen Maschine läuft, ist sie jedoch Gegenstand ihres ^-Planes, und zwar gerade so wie bei irgendeinem anderen Prozeß in der Maschine.
In Figuren 3a und 3b sind Prozeßräume P durch Kreise dargestellt, und virtuelle und reale Hilfsquellenräume V bzw. R sind durch Quadrate dargestellt. Damit eine gültige Darstellung auftritt, wird ein Prozeßnäme Pa in dem Prozeßraum P in eine Stelle Va in dem virtuellen Hilfsquellenraum V übernommen, und schließlich in eine Stelle bzw. in einen Punkt RQ in dem realen Hilfsquellenraum R. Fig. 3a zeigt jedoch das Auftreten einer Ausnahme e in dem virtuellen Raum V, wobei die Steuerung in der virtuellen Maschine verbleibt, die in dem virtuellen Raum V arbeitet. Die Ausnahme gelangt auf die privilegierte Software der virtuellen Maschine V, um von
4098 5 1 /0863
der privilegierten Software der virtuellen Maschine verarbeitet zu werden.
In Fig. 3b war die fi-Dar stellung gültig bezüglich einer
Stelle V_; bei der Darstellung V0 (einer virtuellen Hilfsa a
quelle) in eine reale Hilfsquelle ist jedoch ein Fehler t aufgetreten, der von dem virtuellen Maschinenmonitor behandelt bzw. verarbeitet wird, welcher auf der realen Maschine R läuft. In typischer Weise würde ein Fall, wie ihn Fig. 3a zeigt, vorliegen, wenn das GCOS-Betriebssystem auf einer virtuellen Maschine V läuft und wenn ein im nicht privilegierten Betrieb laufendes bzw. betriebenes Anwenderprogramm unter dem GCOS-Betriebssystem versuchte, einen privilegierten Befehl des Betriebssystems zu benutzen. In diesem Fall wird eine Ausnahme durch das GCOS-Betriebssystem verarbeitet bzw. behandelt.
Ein typischer Fall, wie. ihn Fig. 3b zeigt, liegt dann vor, wenn ein Programm in demselben oben erwähnten GCOS-Betriebssystem versucht, auf irgendeinen Teil des Hauptspeichers innerhalb des virtuellen Speichers Bezug zu nehmen, der durch das GCOS-Betriebssystem zugeteilt ist, dabei aber ermittelt, daß der bestimmte Teil des virtuellen Speichers nicht im Hauptspeicher zu dem betreffenden Zeitpunkt ist. Daraus resultiert ein Fehler für den virtuellen Maschinenmonitor der realen Maschhe R. Der !fehler wird dem virtuellen Maschinenmonitor VMM von R zugeführt, um verarbeitet zu werden.
Der jzS-Plan wird mit dem rekursiven f-Plan-Ergebnis zusammengefaßt, um den "allgemeinen" zusammengesetzten Plan
f. ο f, ■, ο ... ο f,., Λ Λ ο φ zu bilden.
I I.I l.l... I.I
409851 /0863
Bei virtuellen Maschinen besteht somit unabhängig von der Ebene der Rekursion lediglich eine Anwendung des ^-Planes, gefolgt von η Anwendungen eines f-Planes. Dies stellt ein bedeutendes Ergebnis dar, welches sich aus dem Formalismus der Unterscheidung der f- und ^-Pläne ergibt. In einem System mit einem komplizierten ^-Plan, jedoch mit einem einfachen f-Plan kann somit eine η-Ebenen-Rekursion einfach und billig realisiert werden.
In dem dargestellten Modell sind in den f-Plänen die Hilfsquellen der Ebene n+1 in Hilfsquellen der Ebene η dargestellt. Es ist in gleicher Weise möglich, einen f-Plan festzulegen, in welchem Hilfsquellen der Ebene n+1 dargestellt sind als bzw. in Prozeßnamen der Ebene η (die dann in Hilfsquellennamen der Ebene η dargestellt werden). Dieser neue f-Plan wird als f-Plan des Typs II bezeichnet, um ihn von dem hier erläuterten f-Plan des Typs I zu unterscheiden.
Nunmehr sei eine Interpretation des Modells gegeben. Das Modell ist sehr wichtig zur Darstellung des Vorhandenseins zweier sehr unterschiedlicher grundsätzlicher Pläne in virtuellen Maschinen. Frühere Konzepte haben nicht klar den Unterschied oder die Pläne angemessen getrennt unterschieden. Der wesentliche Punkt besteht darin, daß die Pläne f und φ zwei gänzlich verschiedene Pläne sind und unterschiedlichen Funktionen dienen. Es gibt bisher keine Forderung danach, daß f oder φ eine besondere Form hat oder daß zwischen diesen Plänen eine feste Beziehung vorhanden ist. Der ji-Plan ist von dem Ausführungsprogramm her betrachtet die Schnittstelle, während der f-Plan von den Hilfsquellen aus betrachtet die Schnittstelle ist. Um virtuelle Maschinen zu
409851/0863
einem vorhandenen Rechensystem hinzuzufügen, muß lediglich f hinzugefügt werden - φ ist bereits bestimmt. Die Wahl bezüglich des f-Plans, ob dieser vom Verschiebungs-Grenz-Typ(R-B-) Typ, vom Seitenbildungstyp, etc. ist, hängt davon ab, wie die Hilfsquellen der virtuellen Maschinen zu benutzen sind. In jedem Falle ist der f-Plan rekursiv, während der ?$-Plan es nicht zu sein braucht.
Wenn eine neue Maschine konstruiert wird, dann sind weder φ noch f bereits bestimmt, φ kann gewählt werden, um die Strukturen zu idealisieren, die vom Programmierer gesehen werden, während f so gewählt werden kann, daß die Ausnutzung der Hilfsquellen in dem System optimiert ist.
Eine weitere wesentliche Unterscheidung zwischen den Plänen besteht darin, daß der f-Plan die Ebenen der Hilfsquellenzuteilung zwischen den virtuellen Maschinen trägt, während der φ-ΤΡίΆη Privxlegierungsschichten (Ringe, Master/Slave-Betriebsart) innerhalb einer einzigen virtuellen Maschine festlegen kann.
In der nachstehenden Tabelle I ist ein Vergleich der Eigenschaften von virtuellen Rechensystemen angegeben, wobei die Anwendung des oben entwickelten Modells versucht bzw. vorgenommen wird. Aus der Tabelle I kann ersehen werden, daß keines der existierenden oder früheren spekulativen Systeme eine direkte Unterstübung von im allgemeinen vollstän.dig virtuellen Maschinen bewirkt. Das System CP-67 weist einen nicht-trivialen φ-ΡΙ&η auf, jedoch keine direkte Hardwareunterstützung des f-Plans. Die Lösung von Lauer und Snow (3) bringt zwar eine direkte Hardwareunterstützung des f-Plans mit sich, weist jedoch einen trivialen φ-ΊΡΙ&η auf. Dies bedeutet,
40985 1 /0863
daß φ = Identität gilt. Deshalb muß das System CP-67 Software zuzüglich der Schichtbeziehung des ^-Plans heranziehen, um Ebenen zu simulieren, während Lauer und Snow Software zuzüglich der Ebenenbeziehung des f-Plans benutzen müssen, um Schichten zu simulieren. Damit ist das System weniger allgemein und bewirkt keine Unterstützung moderner· Betriebssysteme, die direkt in individuellen virtuellen Maschinen laufen.
Die sogenannten "Venadig-Vorschlage" von Gagliardi-Goldberg tragen zwar sowohl die Schicht- als auch die Ebenenbeziehung. Da die betreffenden Vorschläge jedoch nicht direkt zu einer Hardwareunterstützung für f führen, ist noch ein Software-Eingriff erforderlich.
409851/0863
Tabelle I
Vergleich von Systemen, die ein virtuelles Maschinenmodell benutzen
System
IBM CP-67
Gagliardi-Goldberg (Venedig-Vorschlag)
Lauer-Snow Lauer-Wyeth
Goldberg HV (dies ist die vor1.Anmeldung)
σ oo cn
f-Plan
=£ ο φ
f ο φ Verfasser
Direkter Zugriff zu φ Zugelassen? Lesen Schreiben
Rekursion und rekursiver Verfasser
Hardware
(dritte
Generation)
Software
Software-Unterstützung für in Speicher umgesetztes φ
Software
Hardware (komplexe vierte Generation)
Software
Hardware Unterstützung für in Speicher umgesetztes φ
Hardware
Hardware (vollständig beliebig)
Hardware
Hardware
(Verschiebung- iUnterteivGrenzen; &
Seitenbildung)
Hardware (vollständig . χ belieBig)
nein nein
Software-Zusammensetzung
Rekursive virtuelle Maschinenstruktur , durch Hardware un_terstützt
nein
Hardwareunterstützte Zusammensetzung
Baum
Dynamisch ausgewertet
direkte Hardware-dynamische Bildung
ja
ja
direkte Hard- direkte Hard- direkte Hardware, statische ware, dynami- ware, dynami-Zusammensetzung sehe Zusam- sehe Zusammen-
mensetzung setzung
Stapel
Stapel
Baum
Zu den zuvor angegebenen Systemen wird auf folgende Veröffentlichungen hingewiesen:
Zu 1: R.A. Meyer, L.H. Seawright-, "A Virtual Maschine
Time-Sharing System" IBM Syst. Journal, Vol. 9,
No. 3, 1970;
Zu 2: U.O. Gagliardi, R.P. Goldberg - "Virtualizable Architecture", Proc. ACM AICA International Computing Symposium, Venedig, Italien 1972;
Zu 3: H.C. Lauer, CR. Snow - "Is Supervisor State Necessary", Proc. ACMAICA Int. Comp. Symp., Venedig, Italien 1972;
Zu 4: H.C. Lauer, D. Wyeth - "A Recursive Virtual Machine Architecture" Proceedings ACM SIGARCH-SIGOPS Workshop on Virtual Computer Systems, Cambridge, Mass., 1973.
Im folgenden werden Ausführungsformen der Erfindung näher erläutert. Zunächst sei die Hardware-Virtualisierungsanordnung (HV) näher betrachtet. Das obige virtuelle Maschinenmodell bringt einen Einblick in existierende und vorgeschlagene Systeme mit sich und zeigt eine natürliche Einrichtung zur Realisierung virtueller Maschinen in sämtlichen herkömmlichen Rechensystemen auf. Da der f-Plan und der ?i-Plan verschieden und (möglicherweise) in einem virtuellen Rechnersystem unterschiedlich sind, sollten sie durch unabhängige Konstruktionen bzw. Aufbauten dargestellt sein. Wenn ein auf einer virtuellen Maschine laufender Prozeß über einen Prozeßnamen Bezug nimmt auf eine Hilfsquelle, dann sollte der erforderliche reale Hilfsquellennamen durch eine dynamische Zusammensetzung des f-Plans und des ?i-Plans ·
409851/0863
zu der Ausführungszeit erhalten werden. Darüber hinaus sollte das Ergebnis unabhängig von einer Rekursion oder der besonderen Form von f und φ festgehalten werden. Die erste Ausführungsform ist die verallgemeinerte Ausführungsform; sie umfaßt die in Fig. 5, 6a und 6b dargestellten Strukturen. Die zweite Ausführungsform ist eine spezielle Ausführungsform, die einen Plan φ = R-B und einen f = Seitenbildungs-Plan (in dem Hauptspeicherbereich) einschließt, wie dies in Fig. 7 gezeigt ist. Diese Ausführungsform kann dem Rechner Honeywell 6000 hinzugefügt werden. Die dritte Ausführungsform kann dem Rechner Honeywell 6180 hinzugefügt werden und einen ^-Aufteilungs- bzw. Segmentierungsplan und f= R-B im Hauptspeicherbereich umfassen. Diese Ausführungsform ist in Fig. 8a und 8b gezeigt. Die Hardware -Virtuali si erungsanor dnung HV, die nachstehend zu beschreiben ist, führt das obige Konzept der Erfindung aus. Die Hardware-Virtualisierungsanordnung kann ein Teil einer Erweiterung eines vorhandenen Systems oder ein integraler Bestandteil der Konstruktion eines neuen Systems sein.
Im folgenden werden der Aufbau der Hardware-Virtualisierungsanordnung und deren Anforderung erläutert. Beim Aufbau einer Hardware-Virtualisierungsanordnung werden folgende Punkte berücksichtigt:
a) Die Datenbank zur Speicherung von f;
b) ein Mechanismus zum Aufrufen von f;
c) die Mechanismen der Plan-Zusammenstellung, und
d) die Wirkung eines Fehlers in einer virtuellen Maschine.
In der folgenden Beschreibung wird eine Hardware-Virtualisierungsanordnung beschrieben, die eine Planzusammenstellungsfunktion ausführt. Die folgende Beschreibung umfaßt die Be-
Schreibung der Virtualisierungsanordnung, der unterstützenden Steuermechanismen, typischer Befehle, die für die Bildung einer rekursiven virtuellen Maschine benutzt werden, und verschiedener Fehlerverarbeitungsmechanismen für verschiedene Fehlertypen.
Da vorhandene Rechnersysteme,wie die Rechnersysteme Honeywell Information Systems Inc., Serie 6000, DEC PDP-10 und das IBM-System/36O, eine gewisse Form eines ^-Plans enthalten, wird lediglich die dem f-Plan zugeordnete zusätzliche Struktur erläutert. Im Rahmen der vorliegenden Anmeldung werden dabei Einzelheiten der Erfindung dadurch erläutert, daß die vier, oben aufgeführten Punkte im Hinblick auf die verallgemeinerte Ausführungsform beschrieben werden und daß die Struktur und Arbeitsweise der Hardware-Virtualisierungsanordnung im Hinblick auf die beiden besonderen Ausführungsformen detaillierter beschrieben werden.
Nunmehr sei die Datenbank zur Darstellung von f betrachtet. Ein virtueller Maschinenmonitor VMM in der Ebene η erzeugt bzw. bildet eine Datenbank und hält diese fest. Diese Datenbank stellt die f-Plan-Beziehung zwischen zwei benachbarten Ebenen von virtuellen Maschinen-Hilfsquellen dar, nämlich der Ebene n+1 zu der Ebene n. Diese Datenbank wird derart gespeichert, daß sie für die virtuelle Maschine , d.h. die Ebene n+1, die die meiste privilegierte Software enthält, unsichtbar ist. In diesem Zusammenhang sei angenommen, daß aus wirtschaftlichen Grünen die Datenbank im Hauptspeicher gespeichert wird. Sodann karmf nicht in dem (virtuellen) Speicher der Ebene n+1 sein, sondern es muß vielmehr in dem (virtuellen) Speicher der Ebene η sein.
400851/0863
2426A35
Die einzige Forderung dahingehend, wo f bzw. der f-Plan in einem Speicher der Ebene η gespeichert wird, besteht darin, daß es für die Hardware-Virtualisierungsanordnung HV möglich ist, den betreffenden Plan zu lokalisieren, und zwar durch Abgabe eines bestimmten Algorithmus vom Anfang (Wurzel) des Speichers der Ebene η an. Die unterschiedlichen virtuellen Maschinen in derselben Ebene entsprechenden f—Pläne können entweder implizit oder explizit identifiziert werden. In Fig. 4 ist ein Blockdiagramm zur expliziten Identifizierung der f-Pläne gezeigt. Fig. 4 zeigt dabei in einem Block einen Hauptspeicher 400 in einer Ebene η einer virtuellen Maschine, und zwar in einem typischen Rechnersystem, wie dem Rechner Honeywell 6000. Die Wurzel bzw. Basis 401 ist eine feste bekannte Adresse in dem Speicherblock 400; sie enthält (unter weiterer Information) einen YMTAB-Zeiger 407, der seinerseits auf die Stelle in dem Speicherblock der virtuellen Maschinentabelle 402 hinzeigt, die mit VMTAB bezeichnet ist. Die VMTAB-Tabelle 402 enthält ihrerseits k Einträge von VMCB-Ze*igern VM bis VM, . Jeder VMCB-Zeiger zeigt auf einen entsprechenden virtuellen Maschinensteuerblock. So zeigt z.B. der VMCB-Zeiger VM1 auf den virtuellen Maschinensteuerblock VMCB-1, 403» und der Zeiger VM2 zeigt auf den virtuellen Maschinensteuerblock VMCB-2, 404, etc.. Da der virtuelle Maschinensteuerblock VMCB eine Information zur Darstellung der Hilfsquellen der virtuellen Maschine bereitstellt, enthält er in typischer Weise solche Daten-Hardwarestrukturen, wie einen Speicherplan, einen Prozessorplan, Eingabe/Ausgabe-Plan und eine Zustandsinformation für die virtuelle Maschine. Der virtuelle Maschinensteuerblock VMCB ist daher im wesentlichen der f-Plan für eine bestimmte virtuelle Maschine. So ist z.B. der virtuelle Maschinensteuerblock VMCB-1 der f-Plan für die virtuelle Maschine 1, der
409851/0863
virtuelle Maschinensteuerblock VMCB-2 ist der f-Plan für die virtuelle Maschine 2, etc.. Die spezielle Form des virtuellen Maschinensteuerblocks hängt von dem tatsächlich benutzten f-Plan ab, z.B. von der R-B-Seitenbildung, etc.. Wenn eine Seitenbildung benutzt wird, enthält der Speicherplan des virtuellen Maschinensteuerblocks in typischer Weise eine Seitentabelle 405, 406.
Eine zusätzliche Information, die in dem virtuellen Maschinensteuerblock festgehalten werden kann, umfaßt eine Leistungsfähigkeitsinformation für den virtuellen Prozessor. Diese Information zeigt die vorhandenen oder fehlenden besonderen Merkmale und Befehle an. Diese Leistungsfähigkeits-Bits umfassen z.B. einen wissenschaftlichen Befehlssatz oder einen virtuellen Maschinenbefehlssatz (Rekursion). Wenn die Rekursion unterstützt wird, enthält der virtuelle Maschinensteuerblock genügend Information, um automatisch auf einen virtuellen Maschinenfehler einer niederen Ebene hin zu einer virtuellen Maschine in höherer Ebene zu starten (Fig.2c und Fig. 5, Blöcke 506, 512).
Die hier angegebenen Datenstrukturen sind als Firmenware bekannt, so daß sie im Zuge der Plan-Zusammenstellung automatisch angewandt werden können; sie liefern Datenstrukturen, die sich zwischen der Ebene n+1 und der Ebene η beziehen.
Nunmehr sei der Mechanismus zum Aufruf von f erläutert. Um den f-Plan aufzurufen, erfordert die Hardware-Virtualisierungsanordnung ein zusätzliches bekanntes Register und einen Befehl zur Manipulierung dieses Registers. Das Register ist das virtuelle Maschinenidentifizierungsregister (VMID) gemäß Fig. 6 und das virtuelle Maschinenidentifizie-
A09851/08S3
rungsregister 701 gemäß Fig. 7, welches den "Baum-Namen" der gerade laufenden virtuellen Maschine enthält. Das virtuelle Maschinenidentifizierungsregister ist ein mehrsilbiges Register, dessen Silben sämtliche f-Pläne identifizieren, die zusammengesetzt werden müssen, um einen realen Hilfsquellennamen zu erhalten, ^feim es erwünscht ist, eine virtuelle Maschine in der Ebene 2 laufen zu lassen,, dann enthält das virtuelle Maschinenidentifizierungsregister zwei Silben, die den Baumnamen der betreffenden virtuellen Maschine in der betreffenden Ebene darstellen. Ein Befehl LVMID (Lade das virtuelle Maschinenidentifizierungsregister) gemäß Fig. 5 hängt eine neue Silbe an das virtuelle Maschinenidentifizierungsregister an. Wenn die gegenwärtige Silbe in dem virtuellen Maschinenidentifizierungsregister ist und wenn der virtuelle Maschinenmonitor wünscht, bis zur virtuellen Maschine Nr. 3 zu laufen, dann benutzt er den LVMID-Befehl, um an die gegenwärtige Nummer in dem virtuellen Maschinenidentifizierungsregister eine 3 anzufügen, wodurch eine Verbundzahl von 1.3 gebildet wird.
Das virtuelle Maschinenidentifizierungsregister (und der LVMID-Befehl) weisen vier entscheidende Eigenschaften auf:
a) Der absolute Inhalt des virtuellen Mschinenidentifizierungsregisters VMID kann durch Software weder gelesen noch geschrieben werden;
b) das virtuelle Mschinenidentifizierungsregister der realen Maschine ist die Null-Identifizierungsanordnung, d.h. sie enthält Null;
c) lediglich der ÜMID-Befehl fügt Silben an das virtuelle Maschinenidentifizierungsregister VMID an;
d) lediglich ein virtueller Maschinenfehler (oder ein Befehl, der die Operation einer virtuellen Maschine beendet) beseitigt Silben aus dem virtuellen Maschinenidentifizierungsregister VMID.
409851/08S3
In Fig. 5 ist das Flußdiagramm des LVMID-Befehls gezeigt. Dieses Flußdiagramm veranschaulicht die Operation des LVMID-Befehls, während Realisierungseinzelheiten bezüglich einer speziellen Wahl des Planes weggelassen sind. Gemäß Fig. 5 wird der LVMID-Befehl 501 aufgerufen, und außerdem erfolgt eine Bestimmung, ob eine virtuelle Maschinenfähigkeit (VM-Fähigkeit) 502 existiert oder nicht. Dies bedeutet, daß festgestellt wird, ob diese Maschine die Bildung virtueller Maschinen zuläßt. Wenn keine virtuelle Maschinenfähigkeit vorhanden ist, dann tritt eine VM-Fähigkeits-Ausnahme 503 auf, ansonsten wird eine VMID-Silbe 504 abgeholt. Sodann erfolgt die Feststellung, ob eine gerade arbeitende bzw. laufende virtuelle Maschine sich in einer höheren Ebene als der Ebene Null befindet; dies ist in dem Block 505 veranschaulicht. Ist die Ebene größer als Null, so wird die abgeholte Silbe (das ist der Operand des LVMID-Befehls) in dem Feld "nächste__Silbe" in dem virtuellen Maschinensteuerblo ck VMCB 506 gespeichert (in dem Kästchen 506 gemäß Fig. 5 wird das Mehrsilbenregister VMID als Index benutzt, um den».gegenwärtigen Steuerblock VMCB VMID anzuzeigen; somit ist die Silbe des Operanden des LVMID-Befehls in dem Feld "nächste^ Silbe" des gegenwärtigen virtuellen Steuerblocks VMCB gespeichert). Die Silbe wird dem Mehrsilbenregister VMID angehängt, und die Ebene wird erhöht (Kästchen 507, 508, 509). Diese neu festgelegte virtuelle Maschine wird nunmehr aktiviert, und ihre Prozessorregister, ihr Speicherplan, etc. werden von ihrem virtuellen Maschinensteuerblock VMCB 510 geladen. Das Feld "nächste_Silbe" des aktivierten virtuellen Maschinensteuerblocks VMCB 511 wird abgeholt. Wenn dieses Feld Null ist, d.h. 0 ist, wie dies im Kästchen 512 angegeben ist, dann ist im Kästchen 513 der Befehlsabschluß erreicht. Wenn das Feld "nächste_SilbeM nicht Null ist,
409851/0863
dann gelangt man im Flußdiagramm vom Block 508 zum Block und liefert das Verfahren für den Beginn eines Unterbaums einer virtuellen Maschine, wenn ein Fehler zumindest zwei Ebenen der virtuellen Maschinen übersprungen hat und dennoch eine virtuelle Maschinenstruktur unter der Ebene existiert, in die der Sprung erfolgte.
Nunmehr wird die Plan-Zusammenstellung näher betrachtet. Die Plan-Zusammenstellungsanordnung bzw. -Zusammensetzungsanordnung gemäß Fig. 6a und 6b liefert die dynamische Zusammensetzung des fi-Plans (möglicherweise Identität) und der aktiven f-rPläne auf jeden Zugriff zu einer Hilfsquelle hin. Der ^-Plan ist bekannt, und die aktiven f-Pläne, das sind die virtuellen Maschinensteuerblöcke, werden aus dem MehrSilbenregister VMID bestimmt. Das Flußdiagramm gemäß Fig. 6a veranschaulicht den Plan-Zusammenstellungsmechanismus, während Realisierungseinzelheiten bezüglich der speziellen Wahl von Plänen weggelassen sind. Wie ersichtlich, nimmt die Zusammenstellungsanordnung einen Prozeßnamen P an bzw. auf und entwickelt einen realen Hilfsquellennamen R oder ruft einen virtuellen Maschinenfehler (VM-Fehler) hervor. >
Gemäß Fig. 6a wird die Plan-Zusammensetzungsanordnung 601 aufgerufen, und ein Prozeßname P wird gemäß dem Kästchen abgeholt. Der jrf-Plan wird dem Prozeß P zugeführt, um φ von P gemäß dem Kästchen 603 zu erhalten, und ferner wird eine Bestimmung dahingehend getroffen, ob eine gültige Darstellung vorhanden ist oder nicht, wie dies im Kästchen 6o4 angegeben ist. Wenn eine ungültige Darstellung vorliegt, z.B. dann, wenn ein Versuch unternommen worden ist, außerhalb der Speichergrenzen Bezug zu nehmen, dann tritt eine Prozeß-
/►09861/0863
ausnähme auf, die eine örtliche Ausnahme darstellt und die in derselben, zuvor aufgerufenen virtuellen Maschine verarbeitet wird. Demgemäß ist diese Ausnahme für die privilegierte Software sichtbar,und ferner wird die betreffende Ausnahme von dieser Software verarbeitet. Das VMID-Register ist nicht beeinflußt. Wenn auf der anderen Seite die Prozeß-ji-Darstellung bzw.-Abbildung gültig ist (d.h., daß der Wert φ von P erfolgreich berechnet worden ist), dann wird der Wert φ von P kurzzeitig in dem Internregister-Hilfsquellennamen R gemäß dem Kästchen 606 abgespeichert. Das VMID-Register wird dann überprüft, um festzustellen, ob es Null ist. Ist das betreffende Register Null, so wird die Zusammenstellung beendet, und der berechnete Hilfsquellenname R ist der reale Hilfsquellenname. Dies wird wirksam dadurch vorgenommen, daß der VMID-Wert (nachgebildet im Internregister V) aufgenommen wird und daß der Ebenenwert (abgebildet im Zwischenspeicherregister L) aufgenommen wird und daß schließlich festgestellt wird, ob der Ebenenwert L Null ist, wie dies im Kästchen 609 angegeben ist. Ist der betreffende Ebenenwert Null vorhanden (d.h., daß VMID Null ist), so ist R (zuvor dargestellt) in der Tat die reale Hilfsquelle 610, und die Zusammenstellung wird gemäß dem Kästchen 611 beendet.
Wenn andererseits eine Null-Ebene nicht vorhanden ist, wie dies aus dem Kästchen 609 folgt, dann ist R nicht die reale Hilfsquelle, und der f-Plan, der durch die nächste Silbe in dem VMID-Register bezeichnet ist, muß abgegeben werden. Der f-Plan wird nur dann aus dem virtuellen Maschinensteuerblock VMCB erhalten, der durch den laufenden Inhalt des VMID-Registers 612 bestimmt ist. Dabei wird eine Feststellung getroffen, ob eine gültige Darstellung erfolgt ist oder nicht,
409851/0863
was durch das Kästchen 613 veranschaulicht ist. Wenn eine gültige Darstellung bzw. Planbildung erfolgt ist (d.h., daß der Wert f (R), der die reale Hilfsquelle zu sein scheint, berechnet worden ist), wie dies durch das Kästchen 613 angegeben ist, dann ist es erforderlich zu bestimmen, ob f (R) die reale Hilfsquelle ist. Dies erfolgt durch Abgabe der Größen in den Blöcken 614, 615, 616 und 609. Demgemäß wird der dargestellte Wert f, nämlich f(R),vervielfältigt, als wäre es die reale Hilfsquelle R, wie dies im Kästchen veranschaulicht ist (dies bedeutet, daß R durch f(R) ersetzt wird). Sodann wird die L-te Silbe von V, der Internregister-Nachbildung von VMID, zu Null gemacht, was im Kästchen 615 angegeben ist, und L, die interne Ebenenzahl . wird auf 1 reduziert, wie dies im Kästchen 616 veranschaulicht ist. Die Ebene L wird geprüft, um zu bestimmen, ob sie Null ist, wie dies im Kästchen 609 angegeben ist (dies bedeutet, daß die Maschine nunmehr in der realen Maschinenebene ist). Ist die betreffende Ebene nicht 0, so werden die Vorgänge gemäß den Blöcken 612 bis 616 wiederholt, bis L=O ist, woraufhin bestimmt wird, daß R die reale Hilfsquelle 610 ist und daß die Zusammenstellung beendet ist. IM die Verarbeitung der Blöcke 612 bis 616 zu veranschaulichen^sei angenommen, daß der Baumname 1.2.4 in dem VMID-Register enthalten ist. Das VMID-Register ist in V nachgebildet worden (siehe Block 607), und R ist durch f(R) ersetzt worden (siehe Block 614). Die L-te Silbe von V ist 4; sie ist nicht 0, wie dies im Block 615 veranschaulicht ist. Demgemäß wird die Ebene L, die als internes Register festgehalten ist, um 1 reduziert, und der Baumname in V ist nunmehr 1.2, da die letzte Ebene 4 entfernt worden ist. Nunmehr sind zwei Ebenen vorhanden, und wenn die Ebene L gemäß dem Block 609 geprüft wird, wird sie 0 sein. Deshalb werden die Vorgänge gemäß den
409851/0863
Blöcken 612 bis 616 wieder wiederholt. Nunmehr besitzt das interne Identifizierungsregister V zwei Ebenen 1.2, und die L-te Silbe 2 liegt in der zweiten Ebene. Demgemäß wird gemäß dem Block 616 eine weitere Ebene entfernt, und der Name steht nunmehr als 1 dar. Die Ebene wird überprüft, um festzustellen, ob sie 0 ist, wie dies durch den Block 609 veranschaulicht ist. Da die betreffende Ebene nicht 0 ist, würde der Vorgang einmal wiederholt werden. Wenn L zu diesem Zeitpunkt gemäß dem Block 609 überprüft wird, wird L Null sein, und der Prozeß verzweigt sich zum Block 610. Die Zusammenstellung wird gemäß dem Block 611 beendet.
Zurückkommend auf den Entscheidungsblock 613 gemäß Fig. 6a sei bemerkt, daß in dem Fall, daß eine ungültige Darstellung vorgelegen hat (was bedeutet, daß die Hilfsquelle nicht lokalisiert worden ist), ein virtueller Maschinenfehler gemäß dem Block 617 aufgetreten ist. Die in dem internen Identifizierungsregister V benutzte Silbe wird gemäß dem Block 618 entfernt, und das interne Ebenen-Register L wird gemäß dem Block 619 hinsichtlich seines Inhalts verkleinert. Durch eine Überprüfung wird festgestellt, ob die neue Ebene die Ebene Null ist, wie dies der Block 620 erkennen läßt. Wenn L nicht Null ist, muß das Feld "nächsteJSilbe» in dem gegenwärtigen virtuellen Maschinensteuerblock VMCB auf Null gesetzt werden, wie dies der Block 621 erkennen läßt. In jedem Fall erfolgt eine Nachbildung des Inhalts des internen Ebenen-Registers L in dem Ebenen-Register gemäß dem Block 622, und das interne Identifizierungsregister V wird bezüglich seines Inhalts in dem VMID-Register gemäß dem Block 623 nachgebildet. Ein virtueller Maschinenfehler (VM-Fehler) wird der gerade aktivierten virtuellen Maschine gemäß dem Block signalisiert.
409851/0863
Fig. 6b zeigt in einem Blockdiagramm einen Teil der verallgemeinerten Ausführungsform; die betreffende Figur bezieht sich unmittelbar auf die Figuren 5 und 6a und die obige Beschreibung. Mt dem Bezugszeichen 650 ist die Plan-Zusammenstellungsanordnung bezeichnet; sie enthält die Hardware-Firmenware und die internen Register 657, 658, 659 und 660, die von der verallgemeinerten Hardware-Virtualisierungsanordnung benutzt werden. Zwischenspeicher-Register 651 und assoziative Register 652 können aus Leistungsgründen in bestimmten speziellen Ausführungsformen verwendet werden (siehe hierzu die weitere Erläuterung und Fig. 8b). Unter der Steuerung der bestimmten Identifizierungsanordnung in dem VMID-Register 653 nimmt die Hardware-Virtualisierungsanordnung einen vorgegebenen Prozeßnamen P gemäß dem Block 654 auf, gibt einen gi-Plan 661 und eine Sammlung von f-Plänen 662 ab, und erzeugt einen realen Hilfsquellennamen 655. Mit dem VMID-Register ist ein Ebenen-Register 656 verknüpft, welches die gegenwärtige Ebene der aktiven virtuellen Maschine anzeigt, d.h. die Anzahl der gültigen Silben in dem VMID-Register. Das VMID-Register 653 und das Ebenen-Register 656 sind jeweils so gewählt, daß sie von einer gewissen beliebigen maximalen Größe sind. Die verallgemeinerte bzw. allgemeine Ausführungsform verwendet folgende bestimmte interne HV-Register: Das V-Register 657, in welchem das VMID-Register 663 nachgebildet wird (Fig. 6a, Bezugszeichen 607), welches dazu herangezogen wird, f-Plan-Werte bei der Algorithmuszusammenstellung zu erhalten (Fig. 6a, Bezugszeichen 612); der betreffende Registerinhalt wird wieder in dem VMID-Register auf einen Fehler hin nachgebildet, wie dies mit 664 veranschaulicht ist (Fig. 6a, Bezugszeichen 623); das L-Register 659, in welchem das Ebenen-Register 666 nachgebildet wird (Fig. 6a,
409851 /0863
608), welches bei der Algorithmuszusammenstellung herangezogen wird (Fig. 6a, 609r 616) und welches wieder in dem Ebenen-Register auf einen Fehler abgebildet wird, wie dies mit 66? angedeutet ist (Fig. 6a, 622}j das R-Register 660, ■welches die besonders zusammengestellten Ergebnisse (Fig. 6a, 606s 614) festhält, bis. die Zusammenstellung beendet ist, wobei R an das reale Hilfsquellenregister 668 ausgesandt wird (Fig. 6a, 610); das !-Register 658, welches dazu herangezogen wird, an das YMID-Register 665 Silben während des LVMID-Befehls anzufügen (Fig. 5, 507, 509, 511, 512).
Die obige Plan-Zusammenstellungsanordnung und der für den Aufruf von f dienende LVMID-Befehl sind in Firmenware und Hardware unter Heranziehung von typischen, bekannten Rechner Steuereinheiten realisiert (siehe Mikroprogrammierung: Principles and Practices von Samir S. Husson, veröffentlicht von Prentice Hall, Inc., Englewood Cliffs, New Jersey, 1970). Darüber hinaus wird ein typischer assoziativer Speicher zur Steigerung des Leistungsvermögens verwendet, wie er an anderer Stelle bereits beschrieben wird (siehe US-Patentanmeldung, Serial No. 283 617 vom 24.8.1972).
Es gibt grundsätzliche Gründe, weshalb Prozesse auf der virtuellen Maschine mit einem Wirkungsgrad laufen können, der sich dem der realen Maschine nähert. Die meisten derzeitigen Rechen- bzw. Rechnersysteme, die eine Speicherabbildung bzw. -Darstellung (in dem jzJ-Plan) verwenden, machen Planungsannahmen hinsichtlich des Programmverhaltens. Diese Annahmen sind ebenso auch auf virtuelle Maschinen anwendbar. Einige dieser Annahmen, die die Rechnersystemleitung beeinflussen, sind temporal und spezielle Stellen von Bezug-
409851/086
nahmen durch laufende Programme bzw. Ausführungsprogramme. In Mehrprogrammsystemen wird der Prozeß-Plan nicht sehr häufig geändert, d.h. die Prozeßlage, und in virtuellen Maschinensystemen wird das VMID-Register nicht sehr häufig geändert, d.h. die Lage der virtuellen Maschine.
Durch Kombination all dieser Lagebegriffe wird bestimmt, daß rekursive virtuelle Mehrebenen-Maschinen keine bedeutend unterschiedliche Leistung gegenüber realen Maschinen haben müssen. Eine weitere Möglichkeit zur Angabe dieser Erkenntnis bzw. Peststellung besteht darin, daß gesagt wird, daß die zeitliche Lage und die räumliche Lage namens-unveränderlich sind. Unabhängig davon, welcher Speicherblock aufgerufen wird oder wie oft er umbenannt wird (mittels zusammengesetzter f-Pläne), existiert noch eine wesentliche Möglichkeit der Bezugnahme auf den betreffenden Speicherblock durch ein laufendes Programm bzw. Ausführungsprogramm. Somit zeigt eine virtuelle Maschine, die durch eine Plan-Zusammenstellungsanordnung und einen assoziativen Speicher unterstützt bzw. durch derartige Einrichtungen versorgt wird, eine vergleichsweise Leistung zu der realen Maschine.
Wenn der f-Plan und der j^-Plan hinreichend einfach sind, dann kann die Assoziationsanordnung nicht benötigt sein. Wenn z.B. f = R-B ist (wobei R-B das Verschiebungs-Grenzen-Register bedeutet) und wenn φ - Identität bedeutet, dann kann es für das HV-Register ausreichend sein, die "unsichtbaren Zwischenspeicher-Register" (die im allgemeinen in dem Zentralsteuerwerk enthalten sind) zu versorgen, um statisch zusammengesetzte R-B-Werte zu erhalten, die lediglich auf eine Ebenen-Änderung hin geändert werden.
"40*851/0863
Wenn φ die Seitenbildung der Aufteilung bzw. Segmentierung umfasst , dann erfordert die reale Maschine selbst eine Assoziationsanordnung aus Leistungsgründen. Diese Assoziationsanordnung wird durch die HV-Assoziationsanordnung ersetzt. Wenn der f-Plan einfach ist, z.B. f = R-B, dann wird die HV-Assoziationsanordnung sehr ähnlich sein; wenn f die Seitenbildung umfaßt, wird die betreffende Assoziationsanordnung etwas anders sein. Die Wahl, ob das VMID-Register oder das Ebenen-Register als Teil des sogenannten Suchschlüssels der Assoziationsanordnung eingeschlossen ist, kann aus Preis-Leistungs-Gründen getroffen werden. Die typische Assoziationsanordnung, die hier zuvor durch Bezugnahme erfaßt worden ist, stellt einen Prozeßnamen P direkt in einen realen Hilfsquellennamen durch Kurzschluß des obigen Zusammenstellungsmechanismus dar. Dies ist im einzelnen zu Beginn der Seite 154 einer Dissertation von R.P. Goldberg unter dem Titel "Architectural Principles for Virtual Computer Systems", erhältlich an der Harvard Universität, November 1972, angegeben.
Nunmehr seien Ausführungsbeispiele einer Hardware-Virtualisierungsanordnung näher betrachtet. Wie oben angedeutet, dient die Hardware-Virtualisierungsanordnung gewissermaßen als Zentralmechanismus im Aufbau eines neuen Rechnersystems oder als Erweiterung eines existierenden Rechnersystems. Im letztgenannten Falle ist ein bekanntes Rechnersystem M mit einem vorgegebenen ^-Plan angenommen. Der HV-Aufbau bzw. der Aufbau der Hardware-Virtualisierungsanordnung, d.h. der zusätzlichen Datenstrukturen, des neuen Befehls (LVMID), des virtuellen Maschinenfehlers (VM-Fehlers), etc. legt eine neue Maschine M1 mit einer hinzugefügten eindeuti-
4098S1/09S3
gen Funktionsfähigkeit fest. Die Hardware-Virtualisierungsanordnung garantiert, daß die neue Maschine M1 eine rekursive virtuelle Maschine ist, die eine Hierarchie von M1 Maschinen ait M Maschinen als Anschlußknoten im Bedarfsfall zu unterstützen imstande ist.
Um die Operation der Hardware-Virtualisierungsanordnung zu verdeutlichen, werden zwei Anwendungsbeispiele erläutert. Das erste Beispiel wird um ein typisches System der dritten Generation herum entwickelt, welches System ähnlich dem Rechnersystem Honeywell 6000 ist. Das zweite Beispiel wird um ein komplexeres Rechnersystem entwickelt, welches dem Rechner system Honeywell 6180 ähnlich ist.
Im ersten Beispiel sind einige Merkmale eines typischen Aufbaus der dritten Generation vorhanden; die durch die Hardware-Virtualisierungsanordnung eingeführten Erweiterungen werden angezeigt. Sodann wird die Ausführung gewisser Befehle veranschaulicht. Das unten angegebene BesjJiel wird um ein kanonisches Rechner system der dritten Generation, ähnlich dem Rechner system Honeywell 6000, dem System DEC PDP-10 oder dem IBM System/360, entwickelt. Die herausragendeh Eigenschaften des Aufbaus bzw. der Architektur sind (1) die Unterscheidung zwischen privilegierter/nicht privilegierter Betriebsart (Master/Slave, Überwachungsanordnung/Problem, etc.), und zwar als Teil des Befehlszählers (IC), (2) ein einzelnes Verschiebungs-Grenzen-Register (R-B), dessen absoluter Inhalt in der privilegierten Betriebsart geladen werden kann, und (3) gewisse feste Speicherplätze im Hauptspeicher, in denen alte und neue R-B- und Befehlszählerregister auf eine Prozeßausnahme hin gewechselt werden.
409SS1/0S83
Zur Vereinfachung des Beispiels sei angenommen, daß das R-B-Register aktiv ist, und zwar selbst in der privilegierten Betriebsart. Darüber hinaus sei bezüglich sämtlicher Befehle angenommen, daß sie in der privilegierten Betriebsart auszuführen sind. Da Betriebsartstörungen örtliche Prozeßausnahmen sind und in gleicher Weise wie R-B-Störungen behandelt werden, besteht kein Bedarf zur Veranschaulichung beider Störungen. Die Erweiterung des Beispiels zur Erfassung einer homogenen Behandlung von Eingabe/Ausgabe-V_orgängen nutzt die Prinzipien, die Hardware und die oben angegebenen Verfahren aus. Es sei jedoch bemerkt, daß in diesem Beispiel veranschaulicht ist, daß der R-B-Plan der $ ist.
Die Hardware-Virtualisierungsanordnung ist hier durch folgende Erweiterungen des Aufbaus der dritten Generation realisiert. Die durch die Erweiterung eines Seiten-f-Plans (in dem Speicherbereich) eingeführten Modifikationen sind dargestellt, und 1000-Wort-Seiten sind angenommen. (Siehe Fig. 7). Die Modifikationen enthalten
1) eine Datenbank zur Speicherung von f - ein gewisser fester bekannter Speicherplatz, 704, 714 (Fig. 7) in dem Speicher 700 der Ebene n, zeigt auf die virtuelle Maschinentabelle (VMTAB) 707, 717, die die virtuellen Maschinen (VMCB1, etc.) der Ebene n+1 beschreibt. In diesem Beispiel veranschaulicht jeder virtuelle Maschinensteuerblock (VMCB) (708, 710, 718) einen Speicherplan (Seitentabelle) 709» 711 bzw. 719 und einen Prozessorplan 708a, 710a, 718a. Die Seitenpläne entsprechen den f-Plänen, z.B. f1 entspricht 709, und f2 entspricht 711. Der Prozessorplan enthält den Speicher für den Befehls-
400851/006-3
■ - 61 -
2A26A35
zähler und R-B der Ebene n+1. Ferner ist die "nächste__ Silbe" der Ebene n+2 enthalten, jedoch nicht dargestellt; diese Silbe wird gespeichert, wenn die Ebene n+1 einen LVMID-Befehl abgibt.
2) Ein Mechanismus zum Aufruf von f - ein MehrSilbenregister VMID 701 und ein LVMID-Befehl, der zuvor erläutert worden ist, werden hinzugefügt. Wenn eine virtuelle Maschine aktiviert wird, werden ihre Befehlszähler und ihr R-B-Plan von ihrem Steuerblock (VMCB) 708a, 710a, 718a her geladen.
3) Eine Zusammenstellungsanordnung - eine Hardware-Firmenware-Zusammenstellungsanordnung, wie sie zuvor erläutert worden ist, unterstützt mit einem Zwischenspeicher und einer Assoziatiönsanordnung (aus Leistungsgründen) sind hinzugefügt.
4) Die Wirkung auf einen virtuellen Maschinenfehler der Befehlszähler und der R-B-Plan sind in ihrem virtuellen Maschinensteuerblock gespeichert; die geeignete (n) Silbe (n) wird (werden) aus dem VMID-Register entfernt, und die Steuerung gelangt zu einem festen bekannten Speicherplatz, wie zu dem virtuellen Maschinenfehler-Speicherplatz 705, 715 in dem virtuellen Maschinenmonitor VMM.
Es sei darauf hingewiesen, daß dieses Beispiel einen f-Plan des Typs I veranschaulicht, in welchem Hilfsquellen der Ebene n+1 in Hilfsquellen der Ebene η dargestellt bzw. abgebildet sind. Somit gelangt der ^-Plan nicht in die Darstellung hinein bei einem Ebenen-Wert η des Verschiebungs-Grenz-Registers R-B. Wenn in diesem Beispiel LVMID ausgeführt wird, ist die Verschiebung koinzident Null, braucht dies jedoch nicht zu sein.
^09851/0063
Nunmehr sei das erste Beispiel näher betrachtet. Fig. 7 zeigt in einem Diagramm den Zustand des Hauptspeichers in der eine Hardware-Virtualisierungsanordnung aufweisenden Maschine. In Fig. 7 sind ferner die drei Register YMID, R-B und IC gezeigt, wobei jedoch ihre Werte nicht angegeben sind. Stattdessen zeigt eine nachfolgende Tabelle II sechs Sätze von Werten für VMID, R-B und IC. Für jeden Satz ist der Befehl, der ausgeführt wird, identifiziert bzw. gekennzeichnet, und die Bewertungsfolge, die im Zuge der Entwicklung einer absoluten physikalischen Speicheradresse benutzt wird, ist dargestellt. Der Tabelleneintrag enthält eine Anzeige einer Prozeßausnahme, eines VM-Fehlers und jeglicher änderung bezüglich des VMID-Registers. Die Werte des Registers R-B sind dargestellt als r.-b, wobei r die Verschiebung (in tausenden von Worten) bedeutet und wobei b die Größe der abhängigen Zuteilung (in tausenden von Worten ) bedeutet.
Die sechs Zeilen der Tabelle II sind in drei Sätze unterteilt, nämlich in die Zeilen 1 bis 3, die Zeile 4 und die Zeilen 5 bis 6. Innerhalb dieser Sätze laufen die Zeilen bis 3 und auch die Zeilen 5 bis 6 aufeinanderfolgend ab.
Gemäß Fig. 7 beginnt der physikalische Hauptspeicher 700 an der Speicherstelle 0 und erstreckt sich über 11k Worte. Eine erste Grejize des Hauptspeichers ist bei 3000 Worten dargestellt, und danach alle 1000 Wörter bis zu 11 000 Wörtern. Dieser Speicher ist ein Teil des Rechnersystems Honeywell 6000, welches normalerweise das GCOS-Betriebssystem zur Verarbeitung des g$-Plans benutzt. Neben dem Befehlszähler IC 703 und dem Verschiebungs-Grenzen-Register R-B 702 ist das virtuelle Maschinenidentifizierungsregister VMID 701
409851/08S3
hinzugefügt. Das VMID-Register 7ÖTTst "fur~die Software
nicht sichtbar (d.h. für Software gibt es keinen Zugriff), während das R-B-Register 702 und das IC-Register 703 für Software sichtbar sind (d.h. für Software einen Zugriff haben). Die reale Maschine ist mit einem virtuellen Maschinenmonitor dargestellt, der zwischen den Speicherplätzen 0 und 3K läuft. Eine erste virtuelle Maschine VML ist zwischen den Speicherplätzen 3K und 8K dargestellt, und eine weitere virtuelle Maschine VM-1 Λ ist zwischen den Speicherplätzen 3K und 8K in einer zweiten Ebene dargestellt; diese Maschine weist die virtuelle Maschine VM^ als Ursprung auf. Sine weitere virtuelle Maschine VMp ist zwischen den Speicherplätzen 8K und 11K dargestellt.
Die örtlichen Prozeßausnahmen für die reale Maschine werden in dem örtlichen Prozeßausnahmespeicherplatζ 706 verarbeitet, während die örtlichen Prozeßausnahmen für die Maschine VM1 in dem Speicherplatz 716 für die örtliche Prozeßausnahme (VM1) behandelt bzw. verarbeitet -werden. Diese Speicherplätze zeigen den Punkt bzw. die Stelle an, zu der ein Programm, das auf den entsprechenden Maschinen läuft, transferiert werden muß, wenn eine Prozeßausnahme, d.h. eine j^-Plan-Ausnahme, vorhanden ist. In diesem Fall erhält die privilegierte Software (in diesem Beispiel GCOS) die Steuerung. Wenn ein Fehler in dem f-Plan auftritt, dann erhält, wie zuvor gezeigt, in ähnlicher Weise der virtuelle Maschinenmonitor die Steuerung dadurch, daß ein auf einer vorgegebenen virtuellen Maschine laufendes Programm auf deren in Frage kommenden VM-Fehlerplatzbereich 705, 715 bezogen wird.
^09851/0063
Tabelle II
Hardware-Virtualisierungsanordnung Beispiel: Auswertungsfolgen
Zeile TOlID
E-B VMID n. dargestell·
(r-b) IC Auswertungsfolge Ausw.Eblg3 ter Punkt
Null 0-14 2000
1-3 2100
1-3 2101
2-4 1100
1.1 2-2 1100
IC ist 2000
φ (2000) = 2000
hole Befehl:
LVMID 2800
φ (2800) = 2800
füge 1 an VMID an IC ist 2100
φ (2100) = 3100
f., (3100) = 4100
hole Befehl ab:
LADE 128
φ (128) = 1128
f. (1128) = 6128
lade 999
IC ist 2101
φ (2101) = 3101 f (3101) = 4101 hole Befehl ab: Lade 3500
φ (3500) = e
IC ist 1100
φ (1100) = 3100
f2(3100) = 9100
hole Befehl ab:
Lade 100
φ (100) = 2100
f2 (2100) = t
IC ist 3200
φ (3200) = 3200 £,,(3200) = 4200 hole Befehl ab: LVMID 1300
φ (1300) 1300
fn (1300) = 6300 füge 1 an VMID an IC ist 1100
φ (1100) = 3100
f. Λ (3100) = 2100
f '-(2100) = 5100
hole Befehl ab:
Lade 500
φ (500) = 2500
f1#1 (2500) = t
409851/0863
0-5 3200
LVMID-Befehl
Ausführung des virtuellen Maschinenbe fehls
Null
Prozeßausnahme in
virtueller
Maschine
Virtueller
Maschinen-Fehler und
anderes
VMD
LTOIID
mit
Rekursion
1.1
Ausführung des
rekursiven Befehls und VM-Fehler
Bezugnehmend auf Fig. 7 und die Tabelle II sei durch die ersten verschiedenen Auswertungsfolgen gegangen. In der Zeile 1 der Tabelle II ist man bei dem virtuellen Maschinenmonitor, der auf der realen Maschine läuft, d.h. VMID 701 ist Null. Sämtliche Steuerblöcke VMCB sind eingestellt, und ferner ist es an der Zeit, die virtuelle Maschine VM,. zu aktivieren. Der Wert des Befehlszählers 703 ist 2000. Da der Wert des R-B-Registers 702 hier 0-1A- ist, wird eine Null zu 2000 addiert (und durch Überprüfung festgestellt, daß 200 kleiner ist als 1900); ferner wird festgestellt, daß φ (2000) = 2000 ist. Das VMID-Register ist Null. Deshalb ist der Hilfsquellenname 2000 eine reale Hilfsquelle, und der Befehl (LVMID 2800) in der physikalischen Speicherstelle 2000 (Bezugszeichen 712) gemäß Fig. 7 wird abgeholt. Der R-B-Plan wird an 2800 abgegeben, d.h., daß der Speicherplatz 2800 lokalisiert wird, wie dies durch das Bezugszeichen 713 veranschaulicht ist. Hierzu wird der 0-Plan der Maschine verwendet und gegebenenfalls eine 1 abgeholt (der Inhalt im Speicherplatz 2800), der in das VMID-Register 701 geladen wird.
Die virtuelle Maschine VM. in der Ebene 1 ist nunmehr aktiviert, und ihre Register IC und R-B werden von VMCBl 708a her geladen. In der Zeile 2 der Tabelle II ist gezeigt, daß IC 703 den Wert 2100 aufnimmt und daß R-B 702 den Wert 1-3 aufnimmt. Sogar dann, wenn der Speicher der virtuellen Maschine VM1 5000 Wörter umfaßt (wie dies aus dessen Seitentabelle 709 ersichtlich ist), begrenzt das R-B-Register diesen aktiven Prozeß auf die Adressierung von lediglich 3000 Wörtern. Diese Grenze war als wahrscheinliche Grenze durch das Betriebssystem der virtuellen Maschine VM^ angenommen, da der aktive Prozeß ein normaler Anwender-Prozeß (ohne Monitor) ist.
409851/0863
Aus der Zeile 2 der Tabelle II ergibt sich, daß IC 2100 ist. Um den j^-Plan abzugeben, wird eintausend hinzuaddiert und durch Überprüfung ermittelt, daß 2100 kleiner ist als 3000. Ferner gelangt man zu 05 (2100) = 3100. Da VMID hier 1 ist und auf einer virtuellen Maschine gearbeitet wird, muß f^ abgegeben werden, um die virtuelle Hilfsquelle 3100 in ihrem realen Äquivalent darzustellen bzw. abzubilden. Die Seitentabelle f^ 709, die durch VMCB1 708 angezeigt ist, zeigt an, daß die virtuelle Seite 3 sich an der Speicherstelle 4000 befindet. Deshalb ist ^(3100) = 4100, wie dies durch das Bezugszeichen 720 angedeutet ist, und der Befehl LADE 128 wird abgeholt.
Die übrigen Folgen können in derselben Weise unter Heranziehung der Tabelle II ausgewertet werden. In der Zeile 3 ist eine Prozeßausnahme bezüglich der örtlichen Ausnahmeverarbeitung von VM1 veranschaulicht. In der Zeile 5 ist die Aktivierung der Rekursion veranschaulicht, und in den Zeilen 4 und 6 sind VM-Fehler für die Fehler__yerarbeitungseinrichtungen ihrer entsprechenden virtuellen Maschinenmonitore veranschaulicht.
Die Zwischenspeicher-Register (Fig. 6b, 651) steigern das Leistungsvermögen, und zwar dadurch, daß sie direkt auf den absoluten Speicherplatz der aktiven Seitentabellen hinzeigen, z.B. f.. 709. Die assoziativen Register (Fig. 6b, 652) steigern das Leistungsvermögen dadurch, daß die verschiedenen der erst zuvor zusammengesetzten Plan- bzw. Tabellenwerte, ρ und f ο φ (ρ) gespeichert werden. Nach Beendigung der Zeile 2 in Tabelle II werden somit in dem assoziativen Speicher-Darstellungsprozeß Eintragungen des Namens 2000
■09851/0863
in den realen Hilfsquellennamen 4000 vorhanden sein und des Prozeßnamens 0000 in den realen Hilfsquellennamen 6000. Nach Abschluß der Befehlsabholung der Zeile 6 der Tabelle II wird ein Eintrag in der assoziativen Speicherdarstellung bzw. -abbildung vorhanden sein, und zwar betreffend die Überführung des Prozeßnamens 1000 in den realen Hilfsquellennamen 5000.
Es sei darauf hingewiesen, daß ein Seiten aufweisender f-Plan hinzugefügt worden ist, der in der Ebene η für die Software unsichtbar ist. Die vorher vorhandenen Pläne R-B, φ bleiben in der Ebene η sichtbar. Somit können Betriebssysteme, die von dem R-B-Plan, z.B. GCOS, unterrichtet werden, nicht jedoch von dem Seiten-Plan, ohne irgendwelche Änderungen auf der virtuellen Maschine laufen.
Es sei darauf hingewiesen, daß die Hinzufügung eines R-B f-Planes anstelle eines Seiten aufweisenden f-Planes möglich ist. Diese neue R-B f-Plan würde sich von dem vorhandenen R-B 5^-Plan unterscheiden und ein Zusatz zu diesem Plan bedeuten. Er würde außerdem die Rekursionseigenschaften der f-Pläne zu erfüllen haben. In ähnlicher Weise würde sich ein Seiten aufweisender f-Plan, der einer Maschine hinzugefügt wird, wie der Maschine IBM 360/67, von dem existierenden, Seiten aufweisenden ^-Plan unterscheiden.
Nunmehr sei das zweite Ausführungsbeispiel näher erläutert. Das zweite Beispiel ist um ein komplizierteres Rechnersystem entwickelt, wie das Rechnersystem Honeywell 6180. Zum Zwecke dieses Beispiels ist dessen zusätzliche Komplexität gegenüber einem (oben erwähnten) Rechner der dritten Generation ein segmentierter Adressenraum. Adressen werden in der
409851/0863
Maschine dargestellt als s/d, wobei s die Segmentnummer und d die Versetzung innerhalb des Segments bedeuten. Die normale Adressenentwicklung benutzt sodann eine Segmenttabelle zur Lokalisierung des jeweiligen Segments.
Die Hardware-Virtualisierungsanordnung ist hier durch dieselben Erweiterungen wie in dem vorhergehenden Beispiel mit folgenden Ausnahmen realisiert: Der ^-Plan ist ein Unterteilungs- bzw. Segmentierungsplan, und der f-Plan ist Rr-B. Das zweite Beispiel veranschaulicht lediglich die Unterschiede. Gemäß Fig. 8a zeigt ein gewisser, festliegender bekannter Speicherplatz 804 in dem Speicher 800 der Ebene η auf die Tabelle VMTAB 805, die die virtuellen Maschinen (VMCB1, etc.) der Ebene n+1 beschreibt. In diesem Beispiel veranschaulicht jeder virtuelle Maschinensteuerblock VMCB (806, 807) einen R-B Speicherplan 808 bzw. 809, der abhängig im übrigen Teil des virtuellen MascMnensteuerblocks VMCB gespeichert ist. Der Prozessorplan, der Eingabe/Ausgabe-Plan bzw. l/0-Plan und der Zustand sind nicht dargestellt. Somit ist in dem Hauptspeicherbereich der R-B-Plan der f-Plan. Das VMID-Register 801 und die zuvor erwähnten LVMID-Befehle werden hinzugefügt. Die Plan-Zusammenstellungsanordnung und der zuvor erwähnte VM-Fehler-Mechanismus (Fig.6a, 6b) sind hinzugefügt.
jüunmehr sei das dritte Beispiel näher betrachtet. Gemäß Fig. 8a beginnt ein physikalischer Hauptspeicher 800 an der Speicherstelle 0 und erstreckt sich über 14K Wörter. Die stark ausgezogenen Grenzlinien des Hauptspeichers trennen die virtuellen Maschinen auf. Somit ist der virtuelle Maschinenmonitor VMM zwischen 0 und 3K untergebracht, die
409851/0863
virtuelle Maschine VM1 liegt zwischen 3K und 8K, und die virtuelle Maschine VM2 liegt zwischen 8K und 14K. Die gestrichelten Grenzlinien des Hauptspeichers trennen die Segmente für einen Prozeß P, der auf der virtuellen Maschine VM1 läuft (siehe hierzu weiter unten).
Wenn mit der Ausführung begonnen wird, ist der Prozeß P^ aktiv, und seine Segmenttabelle 802 wird dazu benutzt, die f$-Plan-Adresse zu entwickeln. Der Befehlszähler (IC) 803 enthält einen Wert von 2/500. Sodann gilt ^(2/500) = 2500, da das Segment zwei an der Speicherstelle 200 innerhalb des Speichers der virtuellen Maschine VM1 vorhanden ist. Da der Wert von VMID 801 hier 1 beträgt, muß der Plan f^ zum Ergebnis abgegeben werden. Somit ist f,, (2500) = 5500. Damit wird der Befehl 810 am Speicherplatz 5500 abgeholt und ausgeführt. Dies erfordert eine Adressenentwicklung des Operandenfeldes, was dazu führt, daß ^(1/20) = 4020, ^(4020) = 7020 erzeugt wird. Somit wird der Inhalt des Speicherplatzes 7020, wie dies das Kästchen 812 veranschaulicht, geladen. Der Befehlszähler wird in seinem Inhalt auf 2/501 erhöht, und die Ausführung läuft weiter. Der nächste Befehl befindet sich am Speicherplatz 5501, wie dies das Kästchen 811 veranschaulicht (jzK2/501) = 2501, f (2501) = 5501); der betreffende Befehl wird abgeholt. Dieser Befehl 811 erfordert, daß das Operandenfeld 1/2000 dargestellt bzw. abgebildet wird, φ (1/2000) = e bewirkt jedoch eine Ausnahme, da die Verschiebung, d.h. 2000 größer ist als die Größe des Segments, d.h. 1000. Die Ausnahme bewirkt eine Übertragung der Steuerung auf die privilegierte Software innerhalb der vorliegenden virtuellen Maschine VM1. Somit wird das VMID-Register 801 durch die Ausnahme nicht beeinflußt.
409851/0863
Um die Leistung zu steigern, sind Zwischenspeicher-Register (Fig. 6b, 651) und assoziative Register (Fig. 6b, 652) vorgesehen. Fig. 8b veranschaulicht den Inhalt der .Assoziationsanordnung 850 nach der Ausführung in diesem Beispiel gemäß Fig. 8a. Bezüglich Fig. 8b sei bemerkt, daß das Segment 2
ein Suchschlüssel für dessen absoluten physikalischen Speicherplatz unabhängig von der Rekursion ist.
Durch die Erfindung ist also eine Hardware-Virtualisierungsanordnung für den Ablauf von Prozessen auf einer virtuellen Rechenmaschine unter einem zusammengestellten f- und ^-Plan geschaffen. Der fli-Plan stellt die Prozeßnamen in Hilfsquellennamen zusammen, und der f-Plan stellt die virtuellen Hilfsquellennamen in reale Hilfsquellennamen dar. Der ji-Plan ist ein Intraebeneη-Plan, der (zumindest) für die privilegierte Software einer gegebenen virtuellen Maschine sichtbar ist und eine Beziehung innerhalb einer einzigen Ebene ausdrückt. Der f-Plan ist ein Inter-Ebenen-Plan, der für die gesamte Software der virtuellen Maschine sichtbar ist und der eine Beziehung zwischen den Hilfsquellen zweier benachbarter Ebenen der virtuellen Maschinen hervorruft.
Die Hardware-Virtualisierungsanordnung ermöglicht die Verarbeitung sämtlicher Prozeßausnahmen direkt innerhalb der laufenden virtuellen Maschine, und zwar ohne einen Eingriff der Software des virtuellen Maschinenmonitors. Sämtliche Hilfsquellenfehler (VM-Fehler), die von einer virtuellen Maschine erzeugt werden, werden auf den in Frage kommenden virtuellen Maschinenmonitor geleitet, und zwar ohne die Kenntnis von Prozessen in der virtuellen Maschine (unabhängig von der Rekurionsebene).
^09851/0863
Im folgenden sind die im vorstehenden benutzten Ausdrücke und deren Bedeutung erläutert.
Glossar
Aufbau bzw. Architektur: Eigenschaften eines Systems, vom Programmierer aus gesehen, d.h. die Konzeptstruk'tur und das Funktionsverhalten im Unterschied zur Organisation des Datenflusses und der Steuerungen, dem logischen Aufbau und der physikalischen Realisierung.
Assoziationsanordnung: Hardwareeinrichtung zur Ausführung einer schnellen Parallelsuche.
Grund-Maschinenschnittstelle: Der Satz sämtlicher softwaresichtbarer Gegenstände und Befehle, die von dem Hardware- und Firmenware-System direkt unterstützt werden.
Steuerprogramm: Virtueller Maschinenmonitor.
Emulation: Verfahren zur Simulation einer Innenausstattung einer Maschine mit einigem Unterschied.
Ausnahme: Nicht programmierter Sprung, der durch eine Prozeßstorung hervorgerufen wird (im Unterschied zur einem Fehler); die Steuerung sollte in der laufenden virtuellen Maschine verbleiben.
Familie: Kompatible Reihe von Rechnern mit möglichst wenigen Innenausstattungs-Unterschieden, z.B. IBM 360/40 und IBM 360/67.
409851/0863
Familien-Virtualisierung: Die virtuelle Maschine ist nicht identisch mit der Ausgangsmaschine, sondern ein Glied derselben Rechnerfamilie; sie kann nicht rekursiv sein.
FV (Familien-Virtualisierung): Die virtuelle Maschine ist nicht identisch mit der Ausgangsmaschine, jedoch ein Glied derselben Rechnerfamilie; sie kann nicht rekursiv sein.
f(virtueller Maschinenplan): Zusammenfassung des Planes zwischen zwei Ebenen einer virtuellen Hilfsquellenzuteilung.
f-Plan: Zusammenstellung des Plans zwischen zwei Ebenen der virtuellen Hilfsquellenzuteilung.
φ-Plaui: Zusammenstellung bzw. Abstraktion eines Plans von Hilfsquellennamen aus Prozeßnamen, unterstützt durch Hardware und manipuliert durch Betriebssystem.
^(Prozeß-Plan): Abstraktion eines Planes von Hilfsquellennamen aus Prozeßnamen, unterstützt durch Hardware und manipuliert durch Betriebssystem.
Erzeugung: Aufbaucharakteristiken der Hauptmaschinen der betreffenden Generation (hier bezieht sich der Begriff Generation stets auf die Architektur bzw. den Aufbau, niemals auf die physikalische Realisierung, etc..
HV(Hardware-Virtualisierungsanordnung): Sammelbegriff für die Hardware-Firmenware-Anlage, die direkt wirksam virtuelle Maschinen unterstützt.
409851/0863
Hardware-Virtualisierungsanordnung: Sammelbegriff für die Hardware-Firmenware-Anlage bzw. -Ausführung, die direkt
virtuelle Maschinen wirksam unterstützt.
HVM: Hybride virtuelle Maschine.
Ausgangsmaschine: Bloße Maschine, auf der der virtuelle Maschinenmonitor läuft.
Ausgangsbetriebssystem: Betriebssystem, unter dem ein virtueller Maschinenmonitor des Typs II läuft.
Hybride virtuelle Maschine: Virtuelle Maschine, in der sämtliche Befehle, die innerhalb der meist-privilegierten Schicht abgegeben werden, software-interpretiert sind und in der sämtliche übrigen Befehle direkt ausgeführt werden.
II-Generation: Architekturen der zweiten Generation, typisch für IBM 7090.
III-Generation: Architekturen der dritten Generation, typisch IBM 360.
IV-Generation: Architekturen der vierten Generation mit einer in Firmenware ausgeführten ausführlichen, reichen Prozeßstruktur.
Interne Ausgestaltung: Software-sichtbare Definition eines Systems, d.h. die- Architektur.
409851/0863
Intra-Ebenen-Plan: Plan innerhalb einer virtuellen Maschinenebene, der die (Schicht-)Struktur innerhalb der Ebene festlegt: Der Plan kann für die privilegierte Software der Ebene sichtbar sein, z.B. der ^-Plan.
Inter-Bbenen-Plan:(VM-Plan) Plan zwischen zwei Ebenen virtueller Maschinen, z.B. Ebene n+1 zu Ebene n, der für die höhere Ebene unsichtbar ist, z.B. die Ebene n+1, z.B. der f-Plan.
Unsichtbar: Unfähig, in Software ermittelt zu werden.
Schicht: Beschränkte Zugriffsstruktur (innerhalb einer Ebene), wie Master/Slave-Betriebsarten oder Ringe.
Ebene: Anzahl von f-Plänen, die aufeinanderfolgend abgegeben werden müssen, um einen virtuellen Hilfsquellennamen in einen realen Hilfsquellennamen darzustellen: Außerdem entspricht dies der Anzahl von Silben in VMID: Somit liegt die reale Maschine in der Ebene 0.
Natürliche Betriebsart: Operation des Systems, z.B. der Zentraleinheit, mit bevorzugtem Befehlscode, nicht Emulation.
Null-Identifizierungsanordnung: Null. Befehlscode: Instruktionssatz.
PCB: Prozeßsteuerblock, Prozeßzustand wird in Systembasis gehalten»
409851/0863
P-Name: Vom Prozeß benutzter Name, um .auf eine gewisse Einheit Bezug zu nehmen.
Stammwörter: Pseudobefehlsanforderung, etc..
Prozeß-Plan: Abstraktion des Plans aus Prozeßnamen, z.B. Segmentnummer, für Hilfsquellennamen, z.B. Speicherplatz,
Privilegierter Befehl: Befehl, der lediglich in der privilegierten Betriebsart (richtig) abläuft bzw. ausgeführt wird; das ist der Überwachungszustand, Ring Null.
R-Name: Realer Hilfsquellenname.
R-B: Verschiebungs-Grenze-Form der Adressenverschiebung, wie im System DEC PDP-1O.
Hilfsquellen-Plan: Virtueller Maschinenplan, f-Plan.
Ring: In Schichten vorgesehenes Schutzsystem, Verallgemeinerung des Master/Slave-Betriebs, Überwachungs/Problem-Zustand.
Ring 0: Der privilegierteste Ring.
Wurzel: Ursprungszeiger in dem Speicher der virtuellen Maschine.
RPW: Laufende Prozeßwörter, in Systembasis einer typischen Maschine der vierten Generation ist eine Identifizierungseinrichtung für aktiven Prozeß vorgesehen.
409851/0863
SV: Selbst-virtualisierend, rekursive virtuelle Haschine.
Selbst-virtualisierend: Der Prozessor des virtuellen Rechnersystems ist mit der Ausgangsmaschine identisch, der rekursiven virtuellen Maschine.
Semaphor: Einrichtung für Interprozeß-Nachrichtenverbindung in einem typischen Rechnersystem der vierten Generation.
Überwachungsanforderung:(SVC) Befehl, der dazu benutzt wird, eine Hachrichtenverbindving mit dem Betriebssj^stem herzustellen.
Systembasis: Datenbank für einen direkten Zugriff durch Firmenware (und durch privilegierte Software aktualisiert) eines typischen Systems der vierten Generation zur Unterstützung der Ausführung des Prozeßmodells.
Virtuelle Maschine: Ein Hardware-Software-Duplikat eines real existierenden Rechnersystems, in welchem ein statistisch vorherrschender Untersatz der virtuellen Prozessorbefehle direkt auf dem Ausgangs- bzw. Wirts-Prozessor abläuft.
Virtuelles Maschinenmodell: Zusammenstellung eines abstrakten Prozeßplans und eines Hilfsquellenplans, um das Laufen eines Prozesses auf einem virtuellen Rechnersystem auszudrücken.
Visualisierung: Handlung der Erzeugung/des Ablaufs virtueller Maschine(n).
409851 /0863
Virtual!sierbar: Fähigkeit, virtuelle (selbstvirtualisierende) Maschine(n) zu bilden.
VM-Fehler: Hilfsquellenfehler durch virtuelle Maschine zu VMM.
VM-Ebene-Fehler: VM-Fehler.
VM-Plan: Abstraktion eines Plans zwischen zwei Ebenen virtueller Hilfsquellenzuteilung (vollständig unterschiedlich vom Prozeß-Plan), f-Plan.
VM-Rekursionseigenschaft: In selbstvirtualisierender virtueller Maschine, Fähigkeit,- ein VI-M auf der virtuellen Maschine VM laufen zu lassen.
Abkür zunp;sver ze ichni s
BOS: Grundbetriebssystem/360. CMS: Cambridge Monitorsystem. CPU: Zentraleinheit.
OS/ASP: OS/360 angebrachter Unterstützungprozessor. DOS: Plattenbetriebssystem/360.
DOS-APL: DOS-APL/36O (eine Programmiersprache). ETSS: Experimentelles Zeitteilsysteni (HITAC). I/O: Eingabe/Ausgäbe.
ITS: Inkompatibles Zeitteilsystem bzw. Zeitmultiplexsystem. MTS: Michigan Technisches System. TOS: Bandbetriebssystem/560.
TOS/TDOS: Bandbetriebssystem/Band-Platten -Betriebssystem (HITAC).
409851/08 6 3
Typ I SV: Band I, selbstvirtualisierende virtuelle Haschine. Typ I VMM: Der virtuelle Maschinenmonitor (VMK) läuft auf
einer bloßen Wirts-Maschine. Ϊ2Φ II VMi: VMM läuft auf einer erweiterten Wirts-Maschine
unter dem Wirts-Betriebssystem.
UHMPS: Mehrprogrammsystem der Universität von Michigan, VCS: Virtuelles Rechnersystem.
VKCB: Virtueller Maschinensteuerblock in der Systembasis bzw. Systembank der Hardware-Virtualisierungsanordnung liefert den f-Plan für die virtuelle Maschine. VMTAB: Virtuelle Maschinentabelle in der Systembank der Hardware-Virtualisierungsanordnung enthält Zeiger auf virtuelle Maschinensteuerblöcke für virtuelle Maschinen.
VH: Virtuelle Maschine (hier niemals virtueller Speicher). VMID: Virtuelles Maschinenidentifizierungsregister in der Hardware-Virtualisierungsanordnung zeigt aktive virtuelle Maschine an.
LVHID: Lade VMID-Befehl in Hardware-Virtualisierungsanordnung, die nächste Silben an VMID-Register anhängt und die virtuelle Maschine abfertigt. VMM: Virtueller Maschinenmonitor, Software, die vermittelt
zwischen der virtuellen Maschine und dem Wirt. VMTSS: Virtuelles Maschinen-Zeitteilsystem bzw. -Zeitmultiplexsystem.
V-Name: Virtueller Hilfsquellenname.
409851/0863

Claims (1)

  1. Patentansprüche
    Hardwäre-Virtualisierungsanordnung für den Ablauf von Prozessen in einer virtuellen Rechenmaschine, .die in einem Allzweckrecnner läuft, unter Verwendung eines ..virtuellen Maschinenmonitors, dadurch gekennzeichnet,
    a) daß ein ^-Plan vorgesehen ist, der Prozeßnamen in Hilfsquellennamen darzustellen gestattet,
    b) daß ein f-Plan vorgesehen ist, der virtuelle Hilfsquellennamen in reale Hilfsquellennamen darzustellen gestattet, und
    c) daß eine Plan-Zusammenstellungsanordnung vorgesehen ist, die zur Bildung eines allgemeinen zusammengesetzten Plans den ^-Plan und den f-Plan zusammensetzt.
    2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der ^-Plan ein für die Betriebssystemsoftware sichtbarer Plan ist und daß der f-Plan ein für die gesamte Software der virtuellen Maschine unsichtbarer Plan ist.
    3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß der ^-Plan ein Intra-Ebenen-Plan ist, der die Beziehung zwischen den Hilfsquellen in einer einzigen Ebene festlegt,und daß der f-Plan ein Inter-Ebenen-Plan ist, der die Beziehung zwischen den Hilfsquellen zweier benachbarter Ebenen der virtuellen Maschinen festlegt.
    4. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß sämtliche, von einer virtuellen Maschine erzeugte Hilfsquellenfehler (VM-Fehler) einem in Frage kommenden virtuellen Maschinenmonitor (VMM) ohne die Kenntnis von Prozessen in der virtuellen Maschine zugeleitet werden.
    409851/0863
    5. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß ein Firmenware/Hardware-Befehl zur Aktivierung des f-Plans vorgesehen ist.
    6. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der ^-Plan ein Verschiebungs-Grenzen-Register enthält und daß der f-Pian einen virtuellen Maschinensteuerblock (VMCB) enthält, der irgendeine virtuelle Maschine aus einer Vielzahl virtueller Maschinen zu identifizieren erlaubt, die in einem Allzweckrechner betrieben sind.
    7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß virtuelle Maschinentabellen (VMTAB) vorhanden sind, die irgendeinen virtuellen Maschinensteuerblock aus einer Vielzahl virtueller Maschinensteuerblöcke adressieren.
    8. Anordnung nach Anspruch 7, dadurch gekennzeichnet, daß unter einer festen bekannten Adresse ein Wurzel-Adressenraum untergebracht ist, der zumindest einen virtuellen Maschinentabellenzeiger zur Adressierung der virtuellen Maschinentabellen (VMTAB) aufweist.
    9. Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß der virtuelle Maschinensteuerblock (VMCB)
    a) einen Speicherplan zur Herbeiführung der Beziehung zwischen den Hilfsquellen innerhalb des Hauptspeichers,
    b) einen Prozessor-Plan zur Herbeiführung der Beziehung zwischen den Hilfsquellen innerhalb der Zentraleinheit (CPU) oder innerhalb der Mehrfach-Zentraleinheit,
    409851/0883
    c) einen Eingabe/Ausgabe-Prozessor-Plan zur Herbeiführung der Beziehung zwischen den Hilfsquellen innerhalb der Eingabe/Ausgabe und
    d) einen Zustandsanzeiger für die Anzeige des gegenwärtigen Zustande der virtuellen Maschine enthält, die mit einem gegebenen virtuellen Maschinensteuerblock (VMCB) verbunden ist.
    10. Anordnung nach Anspruch 9> dadurch gekennzeichnet, daß der Speicher-Plan eine Seitentabelle adressiert, die für die Adressierung irgendeiner Seite einer Vielzahl von Seiten der virtuellen Maschine dient.
    11. Hardware-Virtualisierungsanordnung, die Prozesse, welche durch einen Satz von Prozeßnamen P= (p , p. ... p.) festgelegt sind, auf einer rekursiven virtuellen Rechenmaschine unter der Steuerung eines virtuellen Maschinenmonitors ablaufen läßt, wobei die virteulle Maschine einen Satz von virtuellen Hilfsquellen V = (ν , v.... ν ) aufweist und in einer Ausgangsmaschine läuft, die einen Satz von realen Hilfsquellen R = (r , r. .... r ) aufweist, wobei die Sätze V und R die Adressen sämtlicher Speichernamen, adressierbarer Prozessor-Register und Bingabe/Ausgabe-Einrichtungen enthalten, insbesondere nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet,
    a) daß ein Prozeßplan φ vorgesehen ist, der die Prozeßnamen den realen Hilfsquellennamen während der Prozeßausführung zuordnet, derart, daß φ: P —> R ll|ej ist, wobei φ der für die Software sichtbare Hardware-Plan des Betriebssystems ist, der den Satz P von
    409851/0883
    Prozessen in den Satz R in Verbindung mit {ej darstellt, wobei e der Vorgang ist, der das Auftreten einer Ausnahme anzeigt, und wobei ein Element χ des Satzes von Prozeßnamen R einem Element y des Satzes von Hilfsquellen R zugeordnet ist, derart, daß
    ^(x) = y ist, wenn y der reale Hilfsquellenname ist, der dem virtuellen Hilfsquellennamen χ entspricht, ansonsten ist φ(χ) = e, wenn χ keine entsprechende reale Hilfsquelle zu dem betreffenden Zeitpunkt zugeteilt ist,
    b) daß ein rekursiver Hilfsquellenplan f mit rekursiven Ebenen und f-Plänen (f Λ, f...... f. Λ Λ) zur Zu-
    Ordnung von virtuellen Hilfsquellennamen zu realen Hilfsquellennamen vorgesehen ist, derart, daß
    f: V - RUt ist, wobei f der Hilfsquellen-Plan für
    die Darstellung des Satzes V von virtusIlen Hilfsquellen in den Satz R in Vereinigung mit t bedeutet, wobei t der Vorgang ist, der das Auftreten eines Fehlers anzeigt, und wobei ein Element y des Satzes von virtuellen Hilfsquellen V einem Element ζ des Satzes von realen Hilfsquellen R zugeordnet ist, derart, daß
    f(y) ζ= ζ ist, wenn ζ die reale Hilfsquelle ist, die der virtuellen Hilfsquelle y entspricht, ansonsten ist f(y) = t, wenn y zu dem betreffenden Zeitpunkt keine entsprechende reale Hilfsquelle zugeteilt ist, und
    c) daß eine Plan-Zusammenstellungseinrichtung vorgesehen ist, die den ^-Plan mit dem rekursiven f-Plan Cf1 ,
    f. „ , ... f. A zusammensetzt zu 1.1 1.1 1
    409851/Ö8S3
    wobei ο der herkömmliche Funktionszusammensetzungsoperator in der Mathematik bedeutet.
    12. Anordnung nach Anspruch 11, dadurch gekennzeichnet, daß eine Datenbank vorgesehen ist, die derart gespeichert ist, daß sie für die virtuelle Maschine unsichtbar ist, und die die f-Plan-Beziehung zwischen zwei benachbarten Ebenen der virtuellen Maschinenhilfsquellen wiedergibt.
    13. Anordnung nach Anspruch 12, dadurch gekennzeichnet, daß die Datenbank ferner zumindest einen virtuellen Maschinensteuerblock (VMCB) enthält, der eine Information zur Darstellung der Hilfsquellen der dem virtuellen Maschinensteuerblock (VMCB) zugeordneten virtuellen Maschine enthält, daß eine virtuelle Maschinentabelle (VMTAB) vorgesehen ist, die feiger zur Adressierung bestimmter virtueller Maschinensteuerblöcke enthält und die einen bestimmten festen Adressenraum aufweist, in welchem zumindest ein Zeiger zur Adressierung der virtuellen Maschinentabelle (VMTAB) gespeichert ist.
    14. Anordnung nach.Anspruch 13, dadurch gekennzeichnet, daß der virtuelle Maschinensteuerblock (VMCB) ferner
    a) einen Speicherplan, der die Beziehung zwischen den Hilfsquellen innerhalb des Hauptspeichers herstellt,
    b) einen Prozessor-Plan, der die Beziehung zwischen den Hilfsquellen innerhalb des Zentralsteuerwerks (CPU) herstellt,
    c) einen Eingabe/Ausgabe-Prozessorplan zur Herstellung
    der Beziehung zwischen den Hilfsquellen innerhalb der Eingabe/Ausgabe und
    d) einen Zustandsanzeiger enthält, der den gegenwärtigen Zustand einer gegebenen virtuellen Maschine anzeigt, die einem gegebenen virtuellen Maschinensteuerblock (VMCB) zugeordnet ist.
    15. Anordnung nach Anspruch 13, dadurch gekennzeichnet, daß ein virtuelles Maschinenidentifizierungsregister (VMID) vorgesehen ist, welches einen virtuellen Maschinen-Baumnamen der gerade laufenden virtuellen Maschine speichert, und daß die Silben des Baumnamens sämtliche f-Pläne identifizieren, die zur Lieferung eines realen Hilfsquellennamens eine Zusammenstellung erfordern.
    16. Anordnung nach Anspruch 15, dadurch gekennzeichnet, daß ein LVMID-Befehl zum Anhängen von Baumnamen-Silben an das virtuelle Maschinenidentifizierungsregister (VMID) und zum Aufruf des f-Plans abgegeben wird.
    17. Anordnung nach Anspruh 15, dadurch gekennzeichnet, daß der absolute Inhalt des virtuellen Maschinenidentifizierungsregisters (VMID) durch Software weder lesbar noch schreibbar ist.
    18. Anordnung nach Anspruch 17, dadurch gekennzeichnet, daß mit der Plan-Zusammenstellungseinrichtung ein assoziativer Speicher (652) verbunden ist, der erst zuvor· benutzte zusammengestellte f- und ^-Pläne speichert, wobei Prozeßnamen P direkt in entsprechende reale Hilfsquellen-
    A09851/0863
    namen R unter Kurzschluß des Zusammenstellungsmechanismus dargestellt werden.
    19. Hardware-Virtualisierungsanordnung, die Prozesse auf einer virtuellen Rechenmaschine ablaufen läßt, welche unter der Steuerung eines virtuellen Maschinenmonitors eines Allzweckrechners läuft, wobei der virtuelle Maschinenmonitor eine Vielzahl von privilegierten Softwarezentren unterstützt, die jeweils eine Vielzahl von privilegierter Software enthalten, welche eine Vielzahl von Anwenderprogrammen unterstützt, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
    a) daß ein virtuelles Maschinenidentifizierungsregister (VMID) vorgesehen ist, welches den gerade unter Ausführung stehenden virtuellen Maschinenbaumnamen speichert,
    b) daß ein Befehlszähler (IC) vorgesehen ist, der den gegenwärtigen Befehl des gerade ausgeführten Programms speichert,
    c) daß mit dem Befehlszähler (IC) ein Verschiebungs-Grenzen-Register (R-B) verbunden ist, welches einen g$-Plan speichert für die Darstellung von Prozeßnamen in Hilfsquellennamen, und
    e) daß mit dem virtuellen Maschinenidentifizierungsregister (VMID) und dem Verschiebungs-Grenzen-Register (R-B) eine Plan-Zusammenstellungseinrichtung verbunden ist, die den ^-Plan und den f-Plan zusammenfaßt und Prozeßnamen zu realen Hilfsquellennamen zuordnet sowie virtuelle Hilfsquellennamen zu realen Hilfsquellennamen.
    409851/0863
    20. Anordnung nach Anspruch 19» dadurch gekennzeichnet, daß ein virtueller Maschinenfehlermechanismus vorgesehen ist, der eine Steuerung eines gerade ausführenden Programms in dem Fall erhält, daß der f-Plan ausfällt, einen Hilfsquellennamen in einer Ebene in einen Hilfsquellennamen in einer (numerisch) niederen Ebene darzustellen.
    21. Anordnung nach Anspruch 19, dadurch gekennzeichnet, daß ein örtlicher Prozeßausnahme-Speicherplatz vorgesehen ist, der die Steuerung eines gerade ausführenden Programms in dem Fall erhält, daß der ji-Plan ausfällt, einen Prozeßnamen in einem Hilfsquellennamen darzustellen.
    22. Hardware-Virtualisierungsanordnung nach einem der Ansprüche 1 bis 21, dadurch gekennzeichnet, daß ein durch Hardware unterstützter Mechanismus vorgesehen ist der virtuelle Maschinen in irgendeinem Rechensystem laufen läßt.
    23. Hardware-Virtualisierungsanordnung nach einem der Ansprüche 1 bis 21, dadurch gekennzeichnet, daß ein durch Firmenware unterstützter Mechanismus vorgesehen ist, der virtuelle Maschinen in irgendeinem Rechensystem laufen läßt.
    24. Hardware-Virtualisierungsanordnung nach einem der Ansprüche 1 bis 21, dadurch gekennzeichnet, daß ein durch Firmenware/Hardware unterstützter Mechanismus vorgesehen ist, der eine virtuelle Maschine in irgendeinem Rechensystem laufen läßt.
    409851/0863
    25. Hardware-Virtualisierungsanordnung, die Prozesse in einer virtuellen Rechenmaschine ablaufen läßt, die in einem Allzweckrechner arbeitet und die einen virtuellen Maschinenmonitor aufweist, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
    a) daß ein j^-Plan vorgesehen ist, der Prozeßnamen in Hilfsquellennamen darzustellen gestattet,
    b) daß ein f-Plan vorgesehen ist, der virtuelle Hilfsquellennamen in andere virtuelle Hilfsquellennamen darzustellen gestattet, und
    c) daß eine Plan-Zusammenstellungseinrichtung vorgesehen ist, die den ^-Plan und den f-Plan zur Bildung eines allgemeinen zusammengesetzten Plans zusammenzustellen gestattet.
    409.851/0863
    Leersei
DE19742426435 1973-05-31 1974-05-31 Rechenanlage Expired DE2426435C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US36579573A 1973-05-31 1973-05-31

Publications (2)

Publication Number Publication Date
DE2426435A1 true DE2426435A1 (de) 1974-12-19
DE2426435C2 DE2426435C2 (de) 1986-06-05

Family

ID=23440398

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742426435 Expired DE2426435C2 (de) 1973-05-31 1974-05-31 Rechenanlage

Country Status (7)

Country Link
JP (1) JPS5820066B2 (de)
CA (1) CA1015063A (de)
DE (1) DE2426435C2 (de)
FR (1) FR2232010B1 (de)
GB (1) GB1431423A (de)
IT (1) IT1013315B (de)
NL (1) NL7407274A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2948285A1 (de) * 1978-12-01 1980-06-04 Fujitsu Ltd Adressensteuersystem fuer softwaresimulation

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS601661B2 (ja) * 1978-02-23 1985-01-16 株式会社東芝 情報処理装置
JPS6019536B2 (ja) * 1978-02-23 1985-05-16 株式会社東芝 情報処理装置
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
JPS56153456A (en) * 1980-04-28 1981-11-27 Mitsubishi Electric Corp Testing method for program
JPS5856058A (ja) * 1981-09-29 1983-04-02 Fujitsu Ltd 仮想計算機システムcp常駐ボリユ−ムのdasd共用管理方式
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
US4764864A (en) * 1985-04-04 1988-08-16 Nec Corporation Circuit arrangement capable of improving overhead of a control program on interrupting into a virtual machine
JPH0428095Y2 (de) * 1986-11-25 1992-07-07
US8387049B2 (en) 2005-07-15 2013-02-26 International Business Machines Corporation Facilitating processing within computing environments supporting pageable guests
CN102770846B (zh) 2010-12-21 2016-08-31 松下电器(美国)知识产权公司 虚拟计算机系统控制装置及虚拟计算机系统控制方法
JP5981984B2 (ja) 2012-02-22 2016-08-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、秘匿情報保護方法及び秘匿情報保護プログラム
GB2563889B (en) * 2017-06-28 2019-10-09 Advanced Risc Mach Ltd Realm identifiers for realms for memory access control
GB2563884B (en) 2017-06-28 2020-01-08 Advanced Risc Mach Ltd Exception return instruction

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM System Journal, No. 2, 1972, S. 99-149 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2948285A1 (de) * 1978-12-01 1980-06-04 Fujitsu Ltd Adressensteuersystem fuer softwaresimulation

Also Published As

Publication number Publication date
DE2426435C2 (de) 1986-06-05
AU6894074A (en) 1975-11-20
JPS5023146A (de) 1975-03-12
GB1431423A (en) 1976-04-07
FR2232010A1 (de) 1974-12-27
NL7407274A (de) 1974-12-03
JPS5820066B2 (ja) 1983-04-21
CA1015063A (en) 1977-08-02
IT1013315B (it) 1977-03-30
FR2232010B1 (de) 1978-05-05

Similar Documents

Publication Publication Date Title
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE2426435A1 (de) Hardware-virtualisierungsanordnung
DE69910826T2 (de) Rechnersystem mit rekonfigurierbarer programmierbarer logik-vorrichtung
DE102007025397B4 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE3808167C2 (de) Computersystem mit modusunabhängiger Adressierung
DE10393920T5 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE2517276A1 (de) Datenverarbeitungssystem
DE2417795C2 (de) Datenverarbeitungsanlage
DE2720578A1 (de) Rechnersystem mit mehrprogrammbetrieb/mehrprogrammverarbeitung sowie verfahren zum betrieb eines solchen rechnersystems
DE4026912A1 (de) Computersystem
DE10393727T5 (de) Prozessor-Cache-Speicher als RAM zur Ausführung von Boot-Code
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE2716051A1 (de) Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden
DE69727177T2 (de) Emulation von asynchronen Signalen mit Verzweigungsmechanismus
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE102018114322A1 (de) Architektur und Dienste zur Unterstützung der rekonfigurierbaren Synchronisation in einem Multiprozessorsystem
DE112019002336T5 (de) Speicherpoolzuordnung für ein mehrkern-system
DE10329680A1 (de) Prozessorarchitektur für exakte Zeigeridentifizierung
DE112017008307T5 (de) Systeme und verfahren zur effizienten unterbrechung von virtuellen maschinen
DE4040992C2 (de) Datenverarbeitungssystem
DE2717700C2 (de) Speicherzugriffsanordnung
DE102007015507B4 (de) Prozessor mit einem ersten und einem zweiten Betriebsmodus und Verfahren zu seinem Betrieb
DE10146516A1 (de) Programmgesteuerte Einheit

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

8339 Ceased/non-payment of the annual fee