-
Die Erfindung betrifft ein Computersystem zum Steuern
mehrfacher virtueller Maschinen und im besonderen ein System zum
Handhaben einer Eingabe/Ausgabe-(I/O)-Unterbrechung, die von
einer I/O-Einrichtung während des Betriebs einer virtuellen
Maschine erzeugt wird.
-
In einem Computersystem, um den effektiven Gebrauch von
Systemresourcen zu realisieren, ist es gut bekannt, ein
Virtuellmaschinen-System aufzubauen, welches eine oder mehrere
virtuelle Maschinen umfaßt, die von einer existierenden, realen
Maschine, die aus Hardware aufgebaut ist, realisiert werden.
-
Im Virtuellmaschinen-System wird jede virtuelle Maschine
von einem Steuerungsprogramm für die virtuelle Maschine
(hiernach der "VM-Monitor" genannt) des Realmaschinensystems
gesteuert. Eine virtuelle Maschine, auf welche das
Steuerungsrecht einer CPU (zentrale Prozessoreinheit) durch den VM-Monitor
übertragen worden ist, wird nämlich durch die CPU der realen
Maschine ausgeführt.
-
In dieser realen Maschine wird die Systemsteuerung der
virtuellen Maschine von einem Betriebssystem davon ausgeführt.
Wenn jedoch erwogen wird, daß das Ergebnis seiner Steuerung
andere virtuelle Maschinen beeinflußt, wird die Fähigkeit zur
Aufrechterhaltung des gesamten Real-Maschinensystems durch
Eingreifen des VM-Monitors gehalten etc.
-
Wenn zum Beispiel ein I/O-Start für eine I/O-Einrichtung
aufgrund eines I/O-Befehls der virtuellen Maschine hervorgerufen
wird, falls ein I/O-Betrieb, der aus dem I/O-Start resultiert,
an der I/O-Einrichtung beendet wird, führt die I/O-Einrichtung
eine I/O-Unterbrechung für die CPU aus, was durch das Eingreifen
VM-Monitors realisiert wird. Wenn nämlich die I/O-Unterbrechung
von der I/O-Einrichtung während eines Betriebs der virtuellen
Maschine erzeugt wird, falls die I/O-Unterbrechung aktiviert
ist, wird ein eine Unterbrechung erzeugender Prozeß für die
reale Maschine ausgeführt, um das Steuerungsrecht der CPU auf
den VM-Monitor der realen Maschine zu übertragen. Der VM-Monitor
führt ein Unterbrechungs-Handhabungsprogramm aus, um den Inhalt
der I/O-Unterbrechung, etc., zu analysieren, und dann, falls die
virtuelle Maschine, welche den I/O-Befehl erzeugt hat, um die
I/O-Unterbrechung hervorzurufen, in einem
unterbrechungsaktivierten Zustand ist, simuliert der VM-Monitor die Erzeugung der
I/O-Unterbrechung für die in Frage stehende virtuelle Maschine,
um das Steuerungsrecht der CPU auf diese virtuelle Maschine zu
übertragen, wobei ein Unterbrechungs-Handhabungsprogramm in
dieser virtuellen Maschine ausgeführt wird.
-
Wie oben beschrieben, muß die I/O-Unterbrechung im
Virtuellmaschinen-System mit dem Eingreifen des VM-Monitors
durchgeführt werden, so daß eine Zeit, die für den Betrieb des
VM-Monitors notwendig ist, zusätzlich zu einer Zeit erforderlich
ist, die für das Verarbeiten einer primären Aufgabe notwendig
ist. Als ein Ergebnis wird ein Aufwand zum Steuern der
virtuellen Maschine vergrößert, was die Verarbeitungsleistung
des Virtuellmaschinen-Systems verringert.
-
Es ist daher ein Ziel der vorliegenden Erfindung, ein
Computersystem zum Steuern virtueller Maschinen vorzusehen, bei
dem der Steuerungsaufwand verringert ist.
-
Die EP-A-0 150 039 beschreibt ein Verfahren zum Verringern
des I/O-Simulationsaufwandes eines Virtuellmaschinen-Systems, in
dem die Simulation von Unterbrechungen, die vom
Monitorsteuerprogramm der virtuellen Maschine ausgeführt werden, vermieden
werden.
-
Gemäß der Erfindung, wie sie beansprucht wird, wird
vorgesehen ein Computersystem zum Steuern virtueller Maschinen,
denen jeweils eine unterschiedliche Identifikationsnummer
gegeben wurde, welches System umfaßt: eine zentrale
Prozessoreinheit; einen Kanalprozessor; und eine oder mehrere
Eingangs/Ausgangs-(I/O)-Einrichtungen, die in dem Kanalprozessor
aufgenommen sind, und einen Identifikationsspeicher, zum
Speichern der Identifikationsnummer einer virtuellen Maschine,
die gegenwärtig in Betrieb ist; dadurch gekennzeichnet, daß
Maskenspeicher mit denselben Identifikationsnummern wie die der
virtuellen Maschinen vorgesehen sind, die jeweils irgendeiner
der verschiedenen Identifikationsnummern entsprechen; daß
I/O-Unterbrechungswarteschlangen mit denselben
Identifikationsnummern wie die der virtuellen Maschinen vorgesehen sind, von
denen jede irgendeiner der verschiedenen Identifikationsnummern
entspricht; daß ein I/O-Start für die I/O-Einrichtung durch die
zentrale Prozessoreinheit ausgeführt werden kann, in Begleitung
mit der Designation der Identifikationsnummer, zu welcher die in
Frage stehende I/O-Einrichtung gehört; daß der Kanalprozessor
eine I/O-Unterbrechungsanforderung der I/O-Einrichtung in die
I/O-Unterbrechungswarteschlange setzen kann, die der in Frage
stehenden Identifikationsnummer entspricht, wenn die
I/O-Unterbrechungsanforderung auftritt; und daß die zentrale
Prozessoreinheit den Maskenspeicher aktivieren kann, der durch
die Identifikationszahl angezeigt ist, die in dem
Identifikationsspeicher gespeichert ist, wodurch bestimmt wird,
ob die Unterbrechung der in Frage stehenden I/O-Einrichtung
aktiviert worden ist oder nicht.
-
Ausführungsformen eines Computersystems gemäß der
vorliegenden Erfindung werden nun beispielhaft, mit Bezug auf
die angefügten Zeichungen, beschrieben, in denen:
-
Fig. 1 ein Blockdiagramm ist, welches ein Beispiel eines
Aufbaues eines Virtuellmaschinen-Systems des Standes der Technik
zeigt;
-
Fig. 2 ein Flußbild ist, das eine Unterbrechungs-
Handhabungsabfolge zeigt, welche im System ausgeführt wird, das
in Fig. 1 gezeigt ist;
-
Fig. 3 ein Blockdiagramm ist, das eine Ausführungsform
eines Virtuellmaschinen-Systems gemäß der vorliegenden Erifndung
zeigt;
-
Fig. 4 ein Flußbild ist, das eine Unterbrechungs-
Handhabungsabfolge zeigt, welche im System ausgeführt wird, das
in Fig. 3 gezeigt wird.
-
Um das Verstehen der vorliegenden Erfindung zu erleichtern,
wird zuerst ein Virtuellmaschinen-System gemäß dem Stand der
Technik und seine Probleme, mit Bezug auf die Fig. 1 und 2,
beschrieben.
-
Fig. 1 ist eine Ansicht, die ein Beispiel des Aufbaues
eines Virtuellmaschinen-Systems nach dem Stand der Technik
zeigt. Das System umfaßt eine zentrale Prozessoreinheit (CPU) 1;
einen Hauptspeicher 2; einen Kanalprozessor 3 und
I/O-Einrichtungen 4&sub1; bis 4n. Die CPU 1 umfaßt eine
Befehlverarbeitungseinheit 10 und ein I/O-Unterbrechungsmaskenregister 11, etc..
Das Maskenregister 11 kann eine Information setzen, ob die CPU 1
eine I/O-Unterbrechungsanforderung von einer
I/O-Unterbrechungswarteschlange 25 (später beschrieben), die vom Kanalprozessor 3
gesetzt wird, aktivieren oder inaktivieren sollte. Das
Maskenregister 11 umfaßt zum Beispiel acht Maskenbits 11&sub0; bis 11&sub7;.
Jedes Maskenbit zeigt den I/O-Unterbrechungsaktivierungszustand
an, falls die logische "1" gesetzt ist. Die Maskenbits 11&sub0; bis
11&sub7; entsprechen den jeweiligen Subklassennummern 0 bis 7, welche
die Unterbrechungspriorität anzeigen. Wenn das Steuerungsrecht
der CPU einer virtuellen Maschine gegeben wird, wird der Inhalt
des Maskenregisters 11 zu einer Unterbrechungsmaskeninformation
für den VM-Monitor und wird im allgemeinen in einem ganzen "1"
Zustand betrieben. Andererseits besitzt jede virtuelle Maschine
ein virtuelles Maskenregister, und diese Register sind, wie
später beschrieben wird, zum Beispiel in jedem der
Virtuellmaschinen-Steuerungsblöcke 22&sub1; bis 22n vorgesehen.
-
Der Kanalprozessor 3, der einen I/O-Kanal bildet, nimmt
eine Vielzahl von I/O-Einrichtungen 4&sub1; bis 4n auf. Die
I/O-Einrichtungen 4&sub1; bis 4n sind mit jeweiligen spezifischen
Subkanalnummern und Subklassennummern versehen. Jede
subkanalnummer designiert einen der Subkanäle, im allgemeinen eine
Mehrzahl, die vom Kanalprozessor 3 gesteuert wird. Der
Kanalprozessor 3 besitzt Subkanalworte 24 zum Halten von
Steuerungsinformation, zum Beispiel für jeden Subkanal, in einem
Hardware-Bereich 23, der im Hauptspeicher 2 vorgesehen ist. Der
Hardware-Bereich 23 ist ein Speicherbereich, auf welchen nicht
direkt von der Software zugegriffen werden kann. Jedes
Subkanalwort 24 ist ein Steuerungsblock zum Speichern der
Subkanalnummer, Subkanalklasse, Zugtandsinformation und anderer
Steuerungsinformation.
-
Der Hauptspeicher 2 enthält Virtuellmaschinenbereiche 21&sub1;
bis 21m, worin jedes Programm einer Vielzahl von virtuellen
Maschinen VM&sub1; bis VMm, die durch die reale Maschine realisiert
sind, gespeichert ist, und Virtuell-Maschinensteuerungsblöcke
22&sub1; bis 22m, worin jede seiner Steuerungsdaten gespeichert ist.
Die Virtuellmaschinen-Steuerungsblöcke 22&sub1; bis 22m inkorporieren
virtuelle I/O-Unterbrechungsmaskenregißter der virtuellen
Maschinen, entsprechend dem I/O-Unterbrechungsmaskenregister 11
der realen Maschine. Der Hauptspeicher 2 inkorporiert den oben
erwähnten VM-Monitor 20. Ferner besitzt der Hauptspeicher 2
einen Hardware-Bereich 23, worin die Subkanalworte 24 und die
I/O-Unterbrechungswarteschlange 25 vorgesehen sind.
-
Die I/O-Unterbrechungswarteschlange 25 umfaßt Porte 25&sub0; bis
25&sub7;, wobei jeder den jeweiligen Maskenbits 11&sub0; bis 11&sub7; des
Maskenregisters 11 entspricht und für jede Subklasse vorgesehen
ist. Jeder der Porte 25&sub0; bis 25&sub7; kann eine Vielzahl von
Warteschlangenelementen zum Ausführen der Bildung einer
I/O-Unterbrechungswarteschlange besitzen. Wenn eine Vielzahl von
Unterbrechungen in der gleichen Subklasse erzeugt werden, wird
die später erzeugte Unterbrechung hinter das letzte
Warteschlangenelement plaziert. Unterbrechungsanforderungen für die
CPU 1 werden durch Auslesen des Inhalts dar
Warteschlangenelemente, nacheinander für jede Subklasse, in der
Prioritätsordnung ausgeführt, wann immer die Unterbrechung gehandhabt
wird. Daher, in der gleichen Subklasse, je später die
Unterbrechung, umso später wird sie gehandhabt. Jedes
Warteschlangenelement besitzt eine Hinweisadresse, welche ein
entsprechendes Subkanalwort anzeigt. Mit dieser Hinweisadresse
wird ein Subkanalwort, das sich auf die I/O-Einrichtung bezieht,
welche die I/O-Einrichtungsunterbrechung verursacht hat, der CPU
1 gegeben, wodurch die I/O-Unterbrechungshandhabung ausgeführt
werden kann.
-
Der Betrieb der I/O-Unterbrechungshandhabung, der durch das
in Fig. 1 gezeigte System ausgeführt wird, wird unten mit Bezug
auf Fig. 2 beschrieben. Fig. 2 ist ein Flußbild, das eine
I/O-Unterbrechungshandhabungsabfolge zeigt, die von dem in Fig.
1 gezeigten System ausgeführt wird. Als erstes wird ein
I/O-Start für die I/O-Einrichtung, der von einem I/O-Befehl
einer virtuellen Maschine hervorgerufen wird, beschrieben.
-
Die CPU 1 führt ein Programm des VM-Monitors 20 im
Hauptspeicher 2 aus, um das Steuerungsrecht der CPU auf eines
der Programme der Virtuellmaschinenbereiche 21&sub1; bis 21m, die für
jede virtuelle Maschine zugewiesen sind, zu übertragen, so daß
eine virtuelle Maschine ausgeführt werden kann. Wenn auf einen
I/O-Befehl während des Betriebs der virtuellen Maschine
gestossen, ist es gut bekannt, daß die CPU das Steuerungsrecht
auf den VM-Monitor 20 überträgt. Dann führt der VM-Monitor einen
I/O-Befehl der realen Maschine aus, um den aufgenommenen
I/O-Befehl zu simulieren, so daß ein I/O-Start für den
Kanalprozessor 3 stattfinden kann, um einen I/O-Betrieb zu
starten.
-
Wie bekannt ist, wird der I/O-Start, der vom I/O-Befehl
hervorgerufen wird, ausgeführt, während einer der Subkanäle
designiert wird, im allgemeinen eine Mehrzahl, gesteuert vom
Kanalprozessor 3, zur gleichen Zeit wird eine Subklasse, der die
I/O-Einrichtung angehört, designiert. Der Kanalprozessor 3
speichert die Subklassennummer und dies notwendige
Steuerungsinformation in einem Subkanalwort 24 des nach dem I/O-Start
designierten Subkanals und startet dann die Steuerung des
I/O-Betriebs.
-
Wenn der I/O-Betrieb an der I/O-Einrichtung beendet ist,
existiert ein Zustand, der die I/O-Unterbrechungsanforderung
erfordert. Dann speichert der Kanalprozessor 3 die gelieferte
Zustandsinformation etc. im Subkanalwort 24 des designierten
Subkanals und weist, gemäß der in diesem Subkanalwort 24
gespeicherten Subklassennummer, ein Warteschlangenelement, das
den Unterbrechungsbedarf anzeigt, einem Port der
I/O-Unterbrechungswarteschlange 25 zu, welche einer
Subklassennummer entspricht.
-
Andererseits, wie im Flußbild von Fig. 2 gezeigt, überprüft
die Hardware oder das Mikroprogramm der
Befehlverarbeitungseinheit
10 der CPU 1 den Inhalt der Maskenbits 11&sub0; bis 11&sub7; des
Maskenregisters 11, in der Ordnung der Priorität nach jeder
Beendigung eines Makrobefehls (Schritt S 20). Wenn der Inhalt
des Maskenbits einen unterbrechungsaktivierten Zustand anzeigt,
das heißt, "1", wird ein Port der
I/O-Unterbrechungswarteschlange 25, welcher dem in Frage stehenden Maskenbit
entspricht, überprüft (Schritt S 21), und falls eine
Unterbrechungsanforderung in diesem Port vorliegt, wird eine
I/O-Unterbrechung für die reale Maschine erzeugt (Schritt S 22).
-
Andererseits, wenn das Maskenbit des Maskenregisters 11
einen unterbrechungsinaktivierten Zustand annimmt, oder wenn
keine Unterbrechungsanforderung im Port der Warteschlange 25
existiert, obwohl das Maskenbit des Maskenregisters 11 den
unterbrechungsaktivierten Zustand angenommen hat, wird die
nächste Subklasse auf die gleiche Weise überprüft (Schritte S 20
bis S 23). Auf diese Weise werden alle der Subklassen überprüft,
und falls schließlich beurteilt wird, daß keine Bedingungen
vorhanden sind, die eine Erzeugung einer Unterbrechung notwendig
machen, wird der nächste Befehl ausgeführt.
-
Wenn eine I/O-Unterbrechung für die reale Maschine im
Schritt S 22 stattfindet, wird das Steuerungsrecht der CPU auf
eine gewöhnliche Weise vom Ausführungsprogramm der virtuellen
Maschine auf den VM-Monitor 20 der realen Maschine übertragen,
um ein I/O-Unterbrechungshandhabungsprogramm durch den VM-
Monitor 20 auszuführen (Schritt S 24). Durch dieses
Handhabungsprogramm wird die Unterbrechungsinformation analysiert.
Zum Beispiel wird bestimmt, welche virtuelle Maschine den
I/O-Befehl ausgegeben hat, der die I/O-Unterbrechung hervorrief,
das heißt, für welche virtuelle Maschine die
Unterbrechungsanforderung erzeugt worden ist, oder ob das Maskenbit des
virtuellen Maskenregisters im Virtuellmaschinen-Steuerungsblock
22 der virtuellen Maschine, welche den I/O-Befehl ausgegeben
hat, in einem unterbrechungsaktivierten Zustand etc. ist oder
nicht.
-
Als ein Ergebnis der Analyse, wenn das in Frage stehende
Virtuellmaskenregister beurteilt wird, in einem
unterbrechungsaktivierten Zustand zu sein (Schritt S 25), wird die Erzeugung
einer I/O-Unterbrechung für die in Frage stehende virtuelle
Maschine in folgender Sequenz simuliert:
-
(1) Das Zustandswort des laufenden Programmes (PSW) der
virtuellen Maschine wird im Virtuellmaschinenbereich 21
gesichert;
-
(2) Die Zustandinformation wird als
Unterbrechungsinformation gespeichert; und
-
(3) Ein neues PSW der virtuellen Maschine wird geladen.
Danach wird das Steuerungsrecht der CPU auf die in Frage
stehende virtuelle Maschine übertragen, damit die virtuelle
Maschine ausgeführt wird, wodurch ein
I/O-Unterbrechungshandhabungsprogramm der virtuellen Maschine gestartet wird.
-
Andererseits, wenn das Maskenbit des
Virtuellmaskenregisters beurteilt wird, in einem inaktivierten Zustand im
Schritt S 25 zu sein, wird die Unterbrechungsinformation der
I/O-Unterbrechungsanforderungswarteschlange dem
Virtuellmaschinensteuerungsblock (Schritt S 28) zugewiesen, wodurch die
Unterbrechung gehalten wird, bis das Maskenbit den aktivierten
Zustand annimmt, und während dieser Periode wird der folgende
Befehl der früheren virtuellen Maschine ausgeführt.
-
Danach, wenn ein Befehl zum Ändern eines Maskenbits von der
virtuellen Maschine ausgeführt wird, überträgt die CPU das
Steuerungsrecht der CPU auf den VM-Monitor 20. Wenn das
Maskenbit den aktivierten Zustand annimmt, muß der VM-Monitor 20
die Unterbrechungsinformation aus der oben erwähnten
Warteschlange
herausnehmen, um die I/O-Unterbrechung zu simulieren.
-
Wie oben beschrieben, wenn eine
I/O-Unterbrechungshandhabung durch das in Fig. 1 gezeigte System ausgeführt wird,
greift der VM-Monitor bei der I/O-Unterbrechung ein, um die
Unterbrechung handzuhaben, daher entsteht das Problem, worin die
zum Steuern des Virtuell-Maschinensystems notwendige Zeit
vergrößert wird.
-
Eine bevorzugte Ausführungsform der vorliegenden Erfindung
wird nun mit Bezug auf die Fig. 3 und 4 erklärt.
-
Fig. 3 ist ein Blockdiagramm, welches ein
Virtuellmaschinen-System gemäß der vorliegenden Erfindung zeigt. Die
Unterschiede zwischen dem Virtuellmaschinen-System, das in der
Fig. 3 gezeigt ist, und jenem in Fig. 1 gezeigten, werden hier
unten beschrieben. In Fig. 3 besitzt eine zentrale
Prozessoreinheit (CPU) 1 Maskenregister 11(1) bis 11(m) von denen jedes
die gleiche Funktion besitzt, wie jene der in Fig. 1 gezeigten
Maskenregister, wobei sie Nummern besitzen, die den Nummern der
virtuellen Maschinen VM&sub1; bis VMm entsprechen. Die Maskenregister
11(1) bis 11(m) werden für die jeweiligen virtuellen Maschinen
VM&sub1; bis VMm zugewiesen. Ferner wird jeder der virtuellen
Maschinen VM&sub1; bis VMm eine jeweilige Identifikationsnummer
gegeben, und ein Indentifikationsregister 12 zum Halten der
Indentifikationsnummer einer gleichzeitig ausgeführten
virtuellen Maschine wird vorgesehen. Dieses Indentifikationsregister
12 ist aufgebaut, daß es in der Lage ist, die
Identifikationsnummer unter der Steuerung eines VM-Monitors 27 zu speichern.
Ein Maskenregister, das einer virtuellen Maschine entspricht,
die von der Indentifikationsnummer designiert ist, welche im
Indentifikationsspeicher 12 gespeichert ist, wird aus den
Maskenregistern 11(1) bis 11(m) ausgewählt, um einen
betreibbaren
Zustand anzunehmen, während die übrigen Maskenregister
einen Stand-by-Zustand annehmen.
-
Ein Hardwarebereich 28 in einem Hauptspeicher 2 wird mit
einer Gruppe von I/O-Unterbrechungswarteschlangen 25(1) bis
25(m) versehen, die den jeweiligen Maskenregistern 11(1) bis
11(m) der CPU 1 entsprechen. Jede der Warteschlangen 25(1) bis
25(m) besitzt die gleiche Funktion, wie jene der Warteschlange
25, die mit Bezug auf Fig. 1 beschrieben ist. Ein Subkanalwort
26 wird mit Bereichen zum Steuern der Indentifikationsnummer
einer virtuellen Maschine versehen, zusätzlich zur
Subkanalnummer, der Subklassennummer und der Zustandsinformation.
-
Der Betrieb des in Fig. 3 gezeigten Systems wird mit Bezug
auf Fig. 4 beschrieben, welche eine
I/O-Unterbrechungshandhabungssequenz zeigt, die von dem in Fig. 3 gezeigten System
ausgeführt wird.
-
Der VM-Monitor 27 operiert in der gleichen Weise, wie jener
des Systems nach dem Stand der Technik, um zum Beispiel die
virtuellen Maschinen zu steuern und zu entscheiden, welche
virtuelle Maschine das Steuerungsrecht der CPU erhalten wird.
Der VM-Monitor 27 ordnet die Indentifikationsnummern für die
jeweiligen virtuellen Maschinen VM&sub1; bis VMm zu, und wenn das
Steuerungsrecht der CPU irgendeinem der virtuellen Maschinen
gegeben wird, lädt er die Identifikationsnummer der in Frage
stehenden virtuellen Maschine in das Indentifikationsregister
12.
-
Wenn ein I/O-Start, der durch einen I/O-Befehl der
virtuellen Maschine hervorgerufen wird, stattfindet, empfängt
ein Kanalprozessor 3 eine Subkanaldesignation und eine
Subklassendesignation von der CPU 1, wie im Fall des Standes der
Technik, und empfängt zur gleichen Zeit die
Identifikationsnummer,
die im Identifikationsregister 12 gespeichert ist, und
speichert dann diese Identifikationsnummer zusammen mit der
Subklassennummer, etc., in das Subkanalwort 26.
-
Wenn ein I/O-Betrieb an der I/O-Einrichtung beendet ist,
und ein Zustand existiert, der eine
I/O-Unterbrechungsanforderung erfordert, wird die vorbestimmte Zustandsinformation,
etc., im Subkanalwort 26 gespeichert, dann wird eine
Warteschlange, die der Identifikationsnummer der virtuellen Maschine
entspricht und im Subkanalwort 26 gespeichert ist, aus den
Warteschlangen 25(1) bis 25(m) ausgewählt. Ferner wird in dieser
ausgewählten Warteschlange einer der Porte 28&sub0; bis 28&sub7;, die für
jede Subklasse vorgesehen sind, ausgewählt gemäß der
Subklassennummer, die im Subkanalwort 26 gespeichert ist, um ein
Warteschlangenelement, welches die Unterbrechungsanforderung anzeigt,
dem ausgewählten Port zuzuweisen. Auf diese Weise nimmt die
Unterbrechungsanforderung einen Unterbrechungswartezustand an.
-
Ein Hardware- oder ein Mikroprogramm einer
Befehlverarbeitungseinheit 10 der CPU 1 wählt, wie in Fig. 4 gezeigt, zur
Zeit der Beendigung eines Makrobefehls ein Maskenregister,
welches durch das Steuerungsregister 12 designiert ist, aus den
Maskenregistern 11(1) bis 11(m) aus, und überprüft dann die
Maskenbits der ausgewählten Maskenregister, um zu beurteilen, ob
die Unterbrechung aktiviert oder inaktiviert ist (Schritt S 30).
-
Wenn das Maskenbit den unterbrechungsaktivierten Zustand
annimmt, das heißt, wenn das Maskenbit "1" ist, wird ein Port,
der dem Maskenbit in der Warteschlange entspricht, überprüft, um
zu beurteilen, ob eine Unterbrechungsanforderung existiert oder
nicht (Schritt S 31). Wenn die I/O-Unterbrechungsanforderung
existiert, wird ein Programm zur Ausführung der Unterbrechung
direkt für die laufende, ausführende virtuelle Maschine, das vom
Identifikationsregister 12 designiert ist, aus (Schritt S 32),
und dadurch wird ein Unterbrechungshandhabungsprogramm der
virtuellen Maschine gestartet (Schritt S 33). Der die
Unterbrechung erzeugende Prozeß im Schritt S 32 ist ähnlich
jenem, der mit Bezug auf Fig. 2 beschrieben ist. Der Prozeß
inkludiert beispielsweise ein Sichern des laufenden PSW, ein
Speichern der Statusinformation als Unterbrechungsinformation,
und ein Laden des neuen PSW, etc.
-
Wenn beurteilt wird, daß keine Unterbrechungsanforderungen
im Schritt S 31 vorhanden sind, wie beschrieben in Fig. 2, wird
beurteilt, ob die folgende Subklasse mit einer niedrigeren
Priorität existiert oder nicht (Schritt S 34). Falls eine
Subklasse existiert, werden die Schritte S 30 und S 31 wiederholt,
wodurch alle Subklassen des Subkanals darauf überprüft werden,
ob die Unterbrechung aktiviert oder inaktiviert ist, und ob die
Unterbrechungsanforderung existiert oder nicht.
-
Wie oben erwähnt, erfordert das in Fig. 3 gezeigte
Virtuell-
-
maschinen-System nicht das Eingreifen des VM-Monitors, um eine
I/O-Unterbrechung zu simulieren, wenn die I/O-Unterbrechung der
virtuellen Maschine ausgeführt wird, so daß der Aufwand für die
Steuerung des Virtuellmaschinen-Systems verringert ist, wodurch
die Verarbeitungsleistung des Virtuell-Maschinensystems
verbessert wird.
-
Obgleich eine bevorzugte Ausführungsform hier oben
beschrieben worden ist, sind verschiedene Modifikationen und
Änderungen innerhalb des Umfangs der vorliegenden Erfindung, wie
beansprucht, möglich.