DE4007998A1 - Prozess-planungsverfahren und mehrfach-rechner - Google Patents
Prozess-planungsverfahren und mehrfach-rechnerInfo
- Publication number
- DE4007998A1 DE4007998A1 DE4007998A DE4007998A DE4007998A1 DE 4007998 A1 DE4007998 A1 DE 4007998A1 DE 4007998 A DE4007998 A DE 4007998A DE 4007998 A DE4007998 A DE 4007998A DE 4007998 A1 DE4007998 A1 DE 4007998A1
- Authority
- DE
- Germany
- Prior art keywords
- computer
- computers
- processes
- memory
- planning method
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
Die vorliegende Erfindung betrifft eine Einrichtung zum
Betreiben eines Mehrfach-Rechners (multi-processor operating
system), worin mehrere Prozesse parallel in einem Mehrfach-
Rechner (multi-processor system) durchgeführt werden, der eine
Anzahl von Rechnern (processors) aufweist; insbesondere be
trifft die Erfindung ein Planungsverfahren, das zur Verwendung
in jenem Fall geeignet ist, in welchem ein System mit hoher
Geschwindigkeit und hoher Zuverlässigkeit errichtet werden
soll, in jenem Fall, in welchem ein Programm, das für einen
einzigen Rechner vorbereitet ist, in einem Mehrfach-Rechner
verarbeitet werden soll, ohne daß man irgendeine Modifikation
vornimmt, oder in jenem Fall, in welchem bereits ein Prozeß
vorliegt, der eine Anweisung umfaßt, die nur durch einen spe
ziellen Rechner ausgeführt werden kann.
Ein System, in welchem mehrere Rechner parallel durch
Verwendung mehrerer Rechner laufen, um die Leistung des
Systems zu verbessern, ist in der Technik als sog. Mehrfach-
Rechner durchaus bekannt. Wie in der offengelegten japanischen
Patentanmeldung Nr. 1 27 261/1981 gezeigt, umfaßt der Mehrfach-
Rechner dieser Art mehrere Rechner, die miteinander verbunden
sind und durch Sammelleitungen (bus lines) mit gemeinsamen
Speichern verbunden sind. Ein Betriebssystem für einen Mehr
fach-Rechner spielt beim effektiven Betreiben eines Mehrfach-
Rechners eine bedeutende Rolle.
Bei dem Betriebssystem für den Mehrfach-Rechner ist es
erforderlich, gleichlaufend mehrere Prozesse durch mehrere
Rechner durchzuführen, was ein deutlicher Unterschied gegen
über einem System mit einem einzigen Rechner ist. Dementspre
chend ist es erforderlich, eine Einrichtung vorzusehen, um
einen Rechner zu bestimmen, welchem ein spezieller Prozeß zu
geordnet werden soll. Ein typische Vorgehensweise, um dies zu
erreichen, ist es, den speziellen Prozeß einem Rechner zuzu
ordnen, der eine nur minimale Belastung aufweist, so daß die
Rechner mit maximalem Nutzungs-Wirkungsgrad betrieben werden.
Diese Vorgehensweise ist in der Technik in weitem Umfang be
nutzt, da sie mühelos realisiert werden kann. Dies liegt
daran, daß es für einen Prozeßplaner eines Betriebssystems,
das an einem individuellen Rechner arbeitet, einen nächsten,
durchzuführenden Prozeß auf der Grundlage eines Prozeß-Vor
ranges auszuwählen, wie es der Fall ist bei einem System mit
einem Einzelrechner. Ein Rechner mit einer großen Belastung
erfordert längere Zeit für die Durchführung eines Prozesses,
was zu einer niedrigen Aktivierungsfrequenz des Prozeßplaners
führt. Ein Prozeß mit einer verhältnismäßig geringen Belastung
weist andererseits viele freie Arbeitszeit auf, für die der
Rechner keinen Prozeß zum Aktivieren des Prozeßplaners auf
weist, der auszuführen wäre, um zu entscheiden, ob der Rechner
in seinen Leerlaufzustand versetzt werden soll oder nicht.
Dementsprechend werden einem Rechner mit leichter Belastung
mehr Chancen für die Prozeßplanung gegeben, und somit wird der
Unterschied in der Belastung zwischen den Rechnern automatisch
verringert.
Eine solche Vorgehensweise, den Prozeß einem Rechner
zuzuordnen, wie sie oben beschrieben ist, ist sinnvoll für
einen Mehrfach-Rechner, der funtionsmäßig gleichartige Rech
ner aufweist, welche dieselbe Funktion aufweisen. In jenem
Fall jedoch, in dem ein Mehrfach-Rechner nur aus solchen Rech
nern errichtet werden soll, die denselben Aufbau aufweisen,
besteht dahingehend das Problem, daß, wenn es gewünscht ist,
spezielle Rechner mit einer teilweise verbesserten Funktion,
wie etwa einen Vektorrechner, einen Rechner für AI-Prozesse
oder dgl. in den Rechner mit aufzunehmen, es unmöglich ist,
lediglich einen Rechner zu ändern, d. h. es ist erforderlich,
alle Rechner in neue umzuwechseln.
Für einen Mehrfach-Rechner, in welchem eine Vielzahl von
Einzelrechnern mit unterschiedlichen Funktionen enthalten
sind, wurden andere Vorgehensweisen vorgeschlagen, um den
Prozeß einem Rechner zuzuordnen, wie dies in den offengeleg
ten japanischen Patentanmeldungen Nr. 1 23 552/1987 und
1 23 553/1987 offenbart ist. Der Begriff ("Arbeit") ("task"),
auf den in diesem Stand der Technik Bezug genommen wird, ent
spricht dem "Prozeß" oder der "Arbeit", worauf in dieser Be
schreibung Bezug genommen ist, und durch diese Ausdrücke ist
derselbe Begriff gemeint. Wenn es gemäß diesem Stand der Tech
nik gewünscht wird, einen Prozeß unter Nutzung einer Anweisung
auszuführen, die eigentümlich ist für einen Gleitkomma-Accele
rator (floating-point accelerator), und zwar durch einen Rech
ner, der keinen Gleitkomma-Accelerator aufweist, dann dient
ein Betriebssystem dazu, einen außergewöhnlichen Zustand zu
ermitteln und die Ausführung des Prozesses auf einen solchen
Rechner umzuschalten, der einen Gleitkomma-Accelerator auf
weist, während man auf eine Steuertabelle für den ersetzten
Rechner zurückgreift. Dieser Prozeß zeigt ein Beispiel eines
Prozeß-Zuweisungssystems für ein System aus vielen funktionell
ungleichen Rechnern. Diese Vorgehensweise ist dahingehend von
Vorteil, daß es für einen Programmierer nicht erforderlich
ist, auf die Tatsache zu achten, daß das System ein Mehrfach-
Rechner aus mehreren der Funktion nach ungleichen Einzelrech
nern ist.
In einem ungleichmäßigen Mehrfach-Rechner, bei welchem
die oben erwähnte Vorgehensweise nicht angewandt wird, gibt es
ein System, bei welchem eine Wartereihe, die zu bearbeitende
Aufgaben enthält, für jeden der Rechner vorgesehen ist. Vor
der Durchführung einer Aufgabe ist es in diesem Fall für einen
Benutzer oder ein Betriebssystem erforderlich, zu entscheiden,
welcher Rechner die Aufgaben durchführen sollte, und die Auf
gabe in die Wartereihe jenes Rechners einzureihen, wie oben
beschrieben. Dies hat jedoch jenen Nachteil, daß in jenem
Fall, in welchem das System mehrere Rechner mit dem gleichen
Aufbau aufweist, Belastungen in das System gelangen können, so
daß es unmöglich ist, nur einen Rechner auszuwechseln, d. h. es
ist erforderlich, alle Rechner durch neue zu ersetzen.
Für einen Mehrfach-Rechner, in welchem mehrere Rechner
mit unterschiedlichen Funktionen enthalten sind, wurden auch
andere Vorgehensweisen vorgeschlagen, um den Prozeß einem
Rechner zuzuordnen, wie in den offengelegten japanischen
Patentanmeldungen Nr. 1 23 552/1987 und 1 23 553/1987 offenbart.
Der Begriff "Arbeit", auf den in diesem Stand der Technik Be
zug genommen wird, entspricht "Prozeß" oder "Arbeit", worauf
in dieser Beschreibung Bezug genommen wird, und durch diese
Begriffe ist derselbe Gegenstand gemeint. Gemäß diesem Stand
der Technik dient dann, wenn es gewünscht ist, einen Prozeß
durchzuführen, der eine Anweisung benutzt, die eigentümlich
ist für einen Gleitkomma-Accelerator, und zwar durch einen
solchen Rechner, der keinen Gleitkomma-Accelerator aufweist,
ein Betriebssystem dazu, einen außergewöhnlichen Zustand zu
ermitteln und die Ausführung des Prozesses auf einen solchen
Rechner umzuschalten, der einen Gleitkomma-Accelerator auf
weist, während man auf eine Kontrolltabelle für den ersetz
ten Rechner zurückgreift. Dieser Prozeß zeigt ein Beispiel
eines Prozeß-Zuordnungssystemes für einen Mehrfach-Rechner mit
funktionell ungleichmäßigen Rechnern. Diese Vorgehensweise ist
dahingehend von Vorteil, daß es für einen Programmierer nicht
erforderlich ist, auf die Tatsache zu achten, daß das System
ein Mehrfach-Rechner mit funktionell ungleichmäßigen Rechnern
ist.
In einem ungleichmäßigen Mehrfach-Rechner, in welchem die
oben erwähnte Vorgehensweise nicht herangezogen wird, gibt es
ein System, in welchem für jeden der Rechner eine Wartereihe
vorgesehen ist, die die zu bearbeitenden Arbeiten enthält.
Bevor man in diesem Fall eine Arbeit ausführt, ist es für
einen Benutzer oder ein Betriebssystem erforderlich, zu ent
scheiden, welcher Rechner die Arbeit durchführen sollte, und
die Arbeit in die Wartereihe jenes Rechners einzureihen, wie
oben beschrieben. Dies jedoch hat jenen Nachteil, daß in dem
Fall, in welchem das System auch eine Anzahl von Rechnern mit
demselben Aufbau aufweist, die Belastungen zwischen den Rech
nern unausgeglichen werden können.
Die offengelegte japanische Patentanmeldung Nr. 2 08 157/1987
offenbart ein Verfahren, welches nicht ein Planungsver
fahren ist, sondern ein Programm-Ausführverfahren für ein Com
putersystem, das aus mehreren Computern mit teilweise unter
schiedlichen Anweisungssätzen besteht. Dieses Verfahren be
nutzt einen Compilierer (Compiler), um Objektcodes zu erzeu
gen, die an jedem Computer ausgeführt werden können. D. h., der
Compilierer dient dazu, ein Programm zu analysieren und es in
zwei Teile aufzuteilen: eines das durch eine allgemeine An
weisung zwischen den Rechnern ausgeführt werden kann, und das
andere, das durch die allgemeine Anweisung nicht ausgeführt
werden kann. Im Hinblick auf jenen Teil, der allgemein ausge
führt werden kann, wird ein einziger Satz von Objektcodes aus
gegeben, während im Hinblick auf den Teil, der nicht allge
mein ausgeführt werden kann, mehrere Sätze von Objektcodes
entsprechend den Arten der Rechner ausgegeben werden. Der Com
pilierer dient dazu, ein Programm zum Aufzweigen auf Objekt
codes entsprechend der Art des Rechners, der gerade läuft,
einzusetzen, und zwar unmittelbar vor jenem Teil, der nicht
ausgeführt werden kann. Dieser Prozeß hat jedoch den Fehler,
daß das Volumen der Objektcodes vergrößert wird, und daß es
erforderlich ist, neuerdings den Compilierer vorzubereiten.
Der in den o. g. offengelegten japanischen Patentanmel
dungen Nr. 1 23 552/1987 und 1 23 553/1987 offenbarte Mehrfach-
Rechner ist dazu eingerichtet, das Auftreten des außergewöhn
lichen Zustandes zu benutzen, um mit dem ungleichmäßigen Mehr
fach-Rechner zurechtzukommen, aber die Probleme in einem Mehr
fach-Rechner mit gleichartigen Rechnern, wie sie nachfolgend
beschrieben werden, können nicht gelöst werden.
In einem Echtzeit-System, wie einer chemischen Anlage,
einem Verkehrssystem, einer Regelung für elektrischen Strom
oder dgl. wird vorher in das System ein empfindliches Rück
gewinnungsprogramm als Maßnahme gegen einen Fehler in Abhän
gigkeit von der angestrebten Zuverlässigkeit eingebaut. Insbe
sondere wird der Fehler eines Rechners, der einen ernsten Ein
fluß auf ein System ausübt, streng überwacht. Ein Grundkon
zept, um die Zuverlässigkeit eines solchen Systems sicherzu
stellen, ist es, den Einflußbereich des Fehlers zu lokalisie
ren. Bei dem oben beschriebenen herkömmlichen Mehrfach-Rechner
wurde jedoch eine solche Sache nicht stets in Betracht gezo
gen.
Selbst bei einem Mehrfach-Rechner ist es erwünscht, eine
vorliegende Software zu benutzen, die für die Verwendung in
einem Einzel-Rechner entwickelt wurde, ohne daß diese irgend
welche Anpassung erfordert. Unter den Umständen der Mehrfach-
Programmierung kann es beim Zugriff zu gemeinsamen Daten zwi
schen mehreren Prozessen zu einer Konkurrenzsituation kommen,
wie in der Technik bekannt ist. Um dieses Problem zu lösen,
ist es im allgemeinen notwendig, zum Zeitpunkt des Zugangs zu
den allgemeinen Daten eine Exlusivregelung beispielsweise
durch einen Signal- bzw. Zuweisemechanismus (semaphore
mechanism) zu bewirken. Es tritt jedoch im Hinblick auf den
Betrieb oberhalb und vor dem Signalmechanismus ein Problem
auf, wobei häufig Mittel vorgesehen waren, um einen Vorrang
des Prozesses zu veranlassen, um gleichmäßig zu sein oder um
eine Unterbrechung zu behindern, indem man eine Unterbre
chungsmaske für einen Rechner modifiziert, der eine kürzere
Verarbeitungszeit aufweist als jene des Signalmechanismus.
Diese Anordnungen beruhen auf der Tatsache, daß, vom mikrosko
pischen Blickpunkt aus gesehen, ein einziger Rechner notwendi
gerweise einen Prozeß als eine Folge von Vorgängen ausführt.
Tatsächlich umfassen viele Softwares keine Einrichtungen, um
die Exklusivsteuerung gemeinsamer Daten zu bewirken. Dement
sprechend ist, wenn eine vorliegende Software, so wie sie ist,
in einem Mehrfach-Rechner verarbeitet wird, ein Normalbetrieb
nicht notwendigerweise sichergestellt.
Es liegt auch ein Problem in der Architektur eines
Systems. D. h., zum Zeitpunkt des Starts eines Mehrfach-Rech
ners ist es erforderlich, die Bearbeitung eines Systemelements
(resource) auszuführen, welches nur in einem einzigen System
vorliegt, beispielsweise die Ingangsetzung eines gemeinsamen
Speichers, das Eingeben eines Programms für das Betriebssystem
oder dgl. Wenn eine solche Verarbeitung durch mehrere Rechner
ausgeführt wird, dann die Verarbeitung unnötig kompli
ziert. Es wird dementsprechend notwendig, Schritte vorzuneh
men, die Bearbeitung vorher durch nur einen einzigen Rechner
auszuführen und dann die anderen Rechner zu starten, um ein
für den Rechner eigentümliches Systemelement in Gang zu set
zen. Ein ähnlicher Umstand liegt auch zum Zeitpunkt des Anhal
tens des Systems vor. Der Vorgang beim Anhalten eines einzel
nen Rechners kann den Zugang zu einem Hardware-Systemelement,
etwa einem Register, erfordern, das nur für den genannten
Rechner zugänglich ist.
Bei einem Mehrfach-Rechner war es herkömmliche Praxis,
jeden einzelnen Rechner mit einem Pufferspeicher zu versehen,
damit der Rechner seine maximale Leistung aufweist. Wenn
jedoch eine Änderung eines arbeitenden Rechners während der
Ausführung eines Prozesses stattfindet ("Prozeßverschiebung"
(process migration) genannt), dann wird es unmöglich, auf den
Pufferspeicher zurückzugreifen, der unmittelbar vorher be
nutzt wurde, was dazu führt, daß ein Fehltreffer (mis-hit)
eines Pufferspeichers in dem neuerlich betriebenen Rechner
auftritt. Ferner wird es erforderlich, die Ungültigmachung
(invalidation) des Pufferspeichers auszuführen, der unmittel
bar vorher betrieben wurde. Dementsprechend wird, verglichen
mit jenem Fall, in dem die Verarbeitung durch einen Einzel
rechner ausgeführt wird, die Bearbeitung durch einen Mehrfach-
Rechner dazu führen, daß die Leistung im Zusammenhang mit dem
Prozeß ziemlich abnimmt.
Zusätzlich offenbart die offengelegte japanische Patent
anmeldung Nr. 2 51 867/1987 einen Mehrfach-Rechner, in welchem
ein selbst in einem Hauptspeicher gespeichertes Programm
Rechner-Identifizierungscodes aufweist, die für eine Einheit
eines Anweisungscodes gelten, und jedesmal, wenn der Anwei
sungscode aus dem Speicher abgelesen wird, wird der Rechner
zum Ausführen dieser Anweisung entsprechend dem Rechner-Iden
tifizierungscode bestimmt. Dieser Mehrfach-Rechner erfordert
die Modifizierung des Programms, in dem der Rechner-Identifi
zierungscode jeder der Anweisungen des Programms hinzugefügt
wird. Das bedeutet, daß es unmöglich ist, eine vorliegende
Software so zu benutzen, wie sie ist. Ferner ist es notwendig,
die Hardware wie etwa die Wortlänge des Hauptspeichers, einen
Anweisungsdecoder usw. zu modifizieren. Es wird ferner ver
merkt, daß es unmöglich ist, eine dynamische Änderung des
Rechner-Identifizierungscodes vorzunehmen und es schwierig
ist, die Anzahl von Rechnern usw. zu ändern.
Angesichts des Vorangehenden ist es ein Ziel der vorlie
genden Erfindung, ein Prozeß-Planungsverfahren, einen Mehr
fach-Rechner und ein Verfahren vorzusehen, um diesen zu be
nutzen, wobei ein spezieller Prozeß sicher vom vorbestimmten
Rechner nicht nur in einem funktionell gleichartigen Mehr
fach-Rechner, sondern auch in einem funktionell ungleicharti
gen Mehrfach-Rechner durchgeführt werden kann.
Es ist ein anderes Ziel der vorliegenden Erfindung, ein
Prozeß-Planungsverfahren, einen Mehrfach-Rechner und ein Ver
fahren zu dessen Benutzung vorzusehen, wobei die vorliegende
Software für einen Einzel-Rechner ohne jede Modifizierung ver
wendet werden kann.
Es ist ein noch weiteres Ziel der vorliegenden Erfindung,
ein Prozeß-Planungsverfahren und einen Mehrfach-Rechner vorzu
sehen, in welchem mehrere Rechner wirksam benutzt werden kön
nen, während man die System-Verschiebung (system migration)
verhindert.
Es ist ein weiteres Ziel der vorliegenden Erfindung, ein
Planungsverfahren vorzusehen, welches in einem Mehrfach-Rech
ner wirksam die Prozesse den einzelnen Rechnern zuordnet,
wobei dieser unterschiedliche Rechner aufweist, die voll oder
teilweise unterschiedliche Anweisungssätze aufweisen, ohne daß
man einen Compilator verwendet, um eine Anzahl von Objektcode-
Sätzen zu erzeugen.
Es ist ein noch weiteres Ziel der vorliegenden Erfindung,
ein Prozeß-Planungsverfahren vorzusehen, bei welchem ein Rech
ner, der imstande ist, bestimmte Prozesse rasch auszuführen,
bevorzugt solchen Prozessen in einem Mehrfach-Rechner zuge
ordnet werden kann, der solche Rechner wie etwa Vektorrechner
aufweist, die imstande sind, einen bestimmten Prozeß rasch
auszuführen, und andere Rechner, die diesen Prozeß weniger
rasch ausführen.
Es ist ein noch anderes Ziel der vorliegenden Erfindung,
ein Prozeß-Planungsverfahren vorzusehen, bei welchem ein Rech
ner, der imstande ist, bestimmte Prozesse rasch auszuführen,
bevorzugt solchen Prozessen zugewiesen werden kann, und ein
Rechner, der nicht imstande ist, bestimmte Prozesse auszufüh
ren, einem solchen Prozeß nicht zugeordnet werden kann.
In einem Mehrfach-Rechner, der mehrere Rechner und einen
gemeinsamen Speicher aufweist, in den sich die Anzahl von
Rechnern teilt, um Programm und Daten abzuspeichern, ist ein
Prozeß-Planungsverfahren gemäß der vorliegenden Erfindung vor
gesehen, bei welchem ein Prozeßplaner jeden der Rechner jedem
der Prozesse zuordnet, mit den folgenden Schritten:
- - Vorsehen einer Prozeßführungstabelle (process manage ment table) zum Leiten eines jeden Prozesses,
- - Einbringen einer Rechner-Zuordnungsinformation für jeden der Prozesse in die Prozeßführungstabelle, wobei die Rechner-Zuordnungsinformation einen Rechner bezeichnet, dem es gestattet ist, jeden der Prozesse auszuführen,
- - Betreiben des Prozeßplaners (process scheduler), um Bezug auf die Prozeßführungstabelle für einen Prozeß zu neh men, der für die nächste Durchführung ausgewählt ist, und
- - Ausführen des Prozesses durch jenen Rechner, der diesem aufgrund der Prozeßführungsinformation für den Prozeß zuge teilt ist.
Gemäß einem anderen Gesichtspunkt der vorliegenden Erfin
dung ist ein Prozeß-Planungsverfahren vorgesehen, um jeden der
Rechner jedem Prozeß in einem Mehrfach-Rechner zuzuteilen, der
eine Anzahl von Rechnern und einen gemeinsamen Speicher auf
weist, in den sich die Rechner teilen, mit den folgenden
Schritten:
- - Abspeichern der Rechner-Zuteilungsinformation im ge meinsamen Speicher, um einen solchen Rechner zu bezeichnen, dem es gestattet ist, den Prozeß für jeden der Prozesse aus zuführen,
- - Herstellen eines Rückgriffs auf die Rechner-Zuteilungs information für den Prozeß, wenn man den zur Ausführung anste henden Prozeß dem Rechner zuordnet, und
- - Bestimmen, ob die Zuordnung des Prozesses zum Rechner in Abhängigkeit von der Rechner-Zuordnungsinformation zu lässig ist oder nicht.
Es kann gemäß einer anderen Lösung die Rechner-Zutei
lungsinformation zum Bezeichnen eines Rechners, dem es ge
stattet ist, einen Prozeß für jeden der Prozesse auszuführen,
durch die Prozeß-Zuteilungsinformation zum Bezeichnen eines
Prozesses ersetzt werden, dem es gestattet ist, von dem Rech
ner für jeden der Rechner ausgeführt zu werden.
Gemäß einem weiteren Gesichtspunkt der vorliegenden Erfin
dung ist ein Prozeß-Planungsverfahren vorgesehen, welches die
folgenden Schritte aufweist:
- - eine Vorab-Zuordnung zwischen jedem der Prozesse und jedem der Rechner, dem es gestattet ist, die zugeordneten Prozesse auszuführen, und
- - Bestimmen, welche Zuordnung eines freien Rechners zu einem Prozeß auf der Grundlage der vorherigen Zuordnung zu lässig ist, wenn man einen freien Rechner einem zur Ausführung anstehenden Prozeß zuteilt.
Die Rechner-Zuteilungsinformation kann einen Code für
einen allgemeinen Zweck umfassen, um anzuzeigen, daß es dem
Prozeß gestattet ist, von jedem der Rechner ausgeführt zu wer
den, oder irgendeinen anderen Code, um anzuzeigen, daß es dem
Prozeß gestattet ist, von anderen Rechnern als einem speziel
len Rechner ausgeführt zu werden.
Die Rechner-Zuteilungsinformation kann auch dieselbe An
zahl von Merkern (flags) wie jene der Arten von Rechnern um
fassen (beispielsweise ein Bit für jede Art von Rechner), die
im System für jeden Prozeß enthalten sind. Jede der Anzahl von
Merkern für jeden Prozeß entspricht jedem der Rechnertypen, so
daß er anzeigt, ob der Prozeß durch diese Art eines Rechners
ausführbar ist oder nicht. Die Prozesse, die zur Ausführung
anstehen, sind in einer Wartereihe angeordnet, die von jedem
Rechner her zugänglich ist. Die einzelnen Rechner, die gerade
leerlaufen oder für die erneute Planung bereit sind, suchen
die Merker der Prozesse in der Wartereihe ab, wobei sie mit
deren obersten Abschnitt beginnen, und greifen zur Ausführung
jenen Prozeß auf, der von diesem Rechner selbst ausgeführt
werden kann. Dies räumt die ungleichmäßige Verteilung der Last
unter derselben Art von Rechnern aus.
Ferner kann jeder der Prozesse mit einer Vorrang-Infor
mationstabelle (priority information table) versehen sein.
Diese Tabelle hat eine Ganzzahlanordnung einer Größe, die der
Zahl von Arten der Rechner entspricht, die im System enthalten
sind. Jede ganze Zahl der Anordnung entspricht jeder Art von
Rechner und bezeichnet den Vorrang, den der Prozeß für diese
Art Rechner hat. In diesem Zusammenhang wird ein Prozeß mit
höherem Vorrang jenem Rechner zugeteilt, der den Prozeß rasch
ausführen kann. Wenn ein vorbestimmter Mindestvorrang zuge
teilt wird, dann ist der Prozeß durch die zugeordnete Art
Rechner nicht durchführbar. Der Prozeß mit der oben erwähnten
Tabelle ist, wenn er zur Ausführung bereit ist, in der Warte
reihe angeordnet, die von jedem Rechner her zugänglich ist.
Die einzelnen Rechner, die gerade leerlaufen oder zur Planung
frei sind, suchen die Prozesse in der Wartereihe ab und grei
fen den Prozeß zur Ausführung heraus, der den höchsten Vorrang
aufweist unter den Prozessen, die vom Rechner ausgeführt wer
den können.
Gemäß dem Planungsverfahren der vorliegenden Erfindung
wird die Zuteilung von den Rechnern auf die Prozesse in einem
Mehrfach-Rechner wirksam erreicht, der solche Rechner auf
weist, die imstande sind, einen bestimmten Prozeß rasch aus
zuführen, oder Rechner mit unterschiedlichen Anweisungsgrup
pen.
Es ist aus dem Vorangehenden ersichtlich, daß gemäß dem
Planungsverfahren für einen Mehrfach-Rechner, der eine Anzahl
von Rechnern aufweist, zusätzlich zur Zuteilung jenes Pro
zesses, der nur durch einen speziellen Rechner ausgeführt wer
den kann, zu diesem Rechner auch die Zuteilung des Prozesses,
der durch jeden aus der Anzahl der Rechner ausführbar ist, auf
einen speziellen, von diesen ausgewählten Rechner begrenzt
werden kann.
Somit wird gemäß einer solchen Anordnung ein bezeichnen
der Vorteil erreicht, wonach es möglich ist, vom selben Rech
ner eine Gruppe von Prozessen durchzuführen, die die Exklusiv
steuerung hiervon erfordert, wobei eine normale Ausführung
selbst dann möglich ist, wenn man vorliegende Prozesse be
nutzt, die für herkömmliche Einzelrechner eingerichtet sind,
bei welchen keine Exklusivsteuerung für den gemeinsamen Spei
cher in Betracht gezogen ist, und zwar ohne deren Modifizie
rung. Dies bedeutet nicht, daß keine Verwendung anderer Rech
ner in Betracht gezogen wird, aber der andere Rechner als die
genannte Gruppe von Rechnern ist durch jeden der Rechner (oder
andere als die spezifizierten Rechner) ohne irgendeine Ein
schränkung ausführbar, wobei die wirksame Nutzung der Funktio
nen des Mehrfach-Rechners ermöglicht wird.
Gemäß der vorliegenden Erfindung wird ein noch anderer
Vorteil dahingehend erreicht, daß der Rechner zur Ausführung
eines Programms beschränkt ist, und zwar auf der Grundlage des
Zuverlässigkeitsranges für das Programm, so daß ein Fehler des
Rechners, der für Rechner-unabhängige Prozesse (off-line pro
cessing) verantwortlich ist, wie etwa die Entwicklung eines
Programms, das keine höhere Zuverlässigkeit erfordert, nicht
zu einem Systemzusammenbruch führen kann. In anderen Worten,
die Lokalisierung von Fehlern des Systems kann realisiert wer
den.
Wenn ferner der Mehrfach-Rechner danach trachtet, eine
Software zu betreiben, die eine Gruppe von Programmen umfaßt,
bei denen keine normale Exklusivsteuerung bewirkt ist, ist es
möglich, die normale Wirkung des Systems ohne Modifizierung
der Programme sicherzustellen, indem man einfach die Gruppe
von Programmen durch nur spezielle Rechner betreibt.
Das Verfahren des Zuteilens des speziellen Rechners weist
zusätzlich zu der ständigen und festliegenden Zuteilung des
Rechners eine Zuteilung auf, durch welche ein spezieller Rech
ner in dem Zeitraum vom Anfang bis zum Ende der Durchführung
eines einzigen Prozesses betrieben wird und selbst infolge der
Unterbrechung oder der Wiederaufnahme des Prozesses nicht er
setzt werden kann. Mit anderen Worten, gemäß dieses Zutei
lungsverfahrens zum zeitweisen Festlegen des Rechners kann,
weil die Ausführung des Prozesses in Gang gesetzt ist, der
Rechner, der den Prozeß ausführt, nicht durch einen anderen
Rechner inmitten der Ausführung ersetzt werden, so daß es mög
lich ist, die Pufferspeicher-Störsignalmenge (cache hit rate)
des Systems abzusenken, das den Pufferspeicher verwendet. Da
andererseits diese Zuteilungsmethode nicht ständig den Rech
ner für die Ausführung festlegt, ist die wirksame Nutzung meh
rerer Rechner nicht nennenswert behindert.
Das Zuteilungsverfahren zum ständigen Festlegen eines
speziellen Rechners oder zum zeitweisen Festlegen (dynamische
Änderung) eines Prozesses umfaßt verschiedenartige Methoden,
wie etwa das Einführen einer Kontroll-Betriebsart, wie oben
erwähnt, eine Beschränkung des Vorrangbereichs für einen Pro
zeß, der durch jeden Rechner ausführbar ist, ein Festsetzen
des Vorrangs eines jeden Prozesses für jeden der Rechner, ein
Einführen eines Affinitätskonzepts zwischen Rechner und Prozeß
u. dgl., die in Abhängigkeit von deren Anwendung benutzt wer
den.
Nun wird die vorliegende Erfindung in Bezugnahme auf die
beigefügten Zeichnungen beschrieben, in welchen:
Fig. 1(a) und (b) eine Systemausbildung eines Mehrfach-
Rechners gemäß einem Ausführungsbeispiel der Erfindung zeigen,
Fig. 2 ein Flußdiagramm ist, das die Wirkungsweise eines
Prozeßplaners gemäß einem Ausführungsbeispiel der Erfindung
darstellt,
Fig. 3 ein Flußdiagramm ist, das die Erzeugung des Pro
zesses gemäß der vorliegenden Erfindung darstellt,
Fig. 4 ein Flußdiagramm ist, das die Einstelltätigkeit
des Betriebsrechners darstellt, wie er in einem Abschnitt der
Fig. 3 gezeigt ist,
Fig. 5 ein Flußdiagramm ist, das die Ausführung des Pro
zesses gemäß der vorliegenden Erfindung darstellt,
Fig. 6 ein Flußdiagramm ist, das die Beendigung des Pro
zesses gemäß der vorliegenden Erfindung zeigt,
Fig. 7 ein tatsächliches Ausführungsbeispiel zeigt, für
welches die Systemausbildung der Fig. 1 benutzt wurde,
Fig. 8 ein anderes Ausführungsbeispiel zeigt, für welches
die Systemausbildung der Fig. 1 benutzt wurde,
Fig. 9 und 10 ein spezielles System erläutern, das gemäß
der vorliegenden Erfindung aufgebaut ist,
Fig. 11 eine andere Systemausbildung gemäß dem zweiten
Ausführungsbeispiel der vorliegenden Erfindung zeigt,
Fig. 12(a) und (b) Flußdiagramme sind, die die Wirkungs
weise des Prozeßplaners gemäß dem zweiten Ausführungsbeispiel
der vorliegenden Erfindung darstellen,
Fig. 13 eine weitere Systemausbildung gemäß einem dritten
Ausführungsbeispiel der vorliegenden Erfindung zeigt,
Fig. 14 ein Flußdiagramm ist, das die Wirkungsweise des
Prozeßplaners gemäß dem dritten Ausführungsbeispiel der vor
liegenden Erfindung darstellt,
Fig. 15 eine Prozeßführungstabelle zeigt, die gemäß einem
vierten Ausführungsbeispiel der vorliegenden Erfindung aufge
baut ist,
Fig. 16 ein Flußdiagramm ist, das die Wirkungsweise des
Prozeßplaners nach dem vierten Ausführungsbeispiel darstellt,
Fig. 17 bis 19 das fünfte Ausführungsbeispiel gemäß der
vorliegenden Erfindung erläutern,
Fig. 20 das sechste Ausführungsbeispiel gemäß der vor
liegenden Erfindung zeigt,
Fig. 21 die Zuordnung zwischen den Rechenarten und den
Rechenart-Identifizierern im System zeigt,
Fig. 22 ein Flußdiagramm ist, das die Planungsanordnung
darstellt, die bei dem Ausführungsbeispiel verwendet wird, wie
es in Fig. 20 gezeigt ist,
Fig. 23 Zeitablaufdiagramme zeigt, die die Wirkungsweise
des Ausführungsbeispiels darstellen, wie es in Fig. 20 gezeigt
ist,
Fig. 24 eine Anordnung der Aufgabentabelle zeigt, wie sie
in Fig. 20 gezeigt ist,
Fig. 25, 26 und 27 das siebte Ausführungsbeispiel gemäß
der vorliegenden Erfindung, ein Flußdiagramm, das die benutzte
Planungseinrichtung darstellt, bzw. ein Zeitablaufdiagramm
zeigen, das die Wirkungsweise hiervon darstellt,
Fig. 28, 29 und 30 ein achtes Ausführungsbeispiel gemäß
der vorliegenden Erfindung, ein Flußdiagramm, das den benutz
ten Planer darstellt, bzw. eine Anordnung der Arbeiten-Tabelle
zeigen,
Fig. 31 und 32 das neunte Ausführungsbeispiel gemäß der
vorliegenden Erfindung, bzw. ein Strömungsdiagramm zeigen, das
den benutzten Planer darstellt,
Fig. 33 und 34 ein weiteres Ausführungsbeispiel zeigen,
das gemäß der vorliegenden Erfindung aufgebaut ist, wobei
jeder der Rechner einen örtlichen Speicher aufweist und in
Form eines Netzwerkes verschaltet ist,
Fig. 35 ein weiteres Ausführungsbeispiel gemäß der vor
liegenden Erfindung zeigt, wobei die Rechner jeweils örtliche
Speicher aufweisen, die so angeordnet sind, daß sie als ein
einziger virtueller Speicher zugänglich sind, und
die Fig. 36 und 37 die Zuordnung zwischen dem logi
schen Raum und dem physikalischen Raum zeigen, wie sie im Aus
führungsbeispiel der Fig. 35 gezeigt sind, sowie eine Adres
sen-Umwandlungstabelle für die Zuordnung der beiden Räume.
Es erfolgt nun die Beschreibung bevorzugter Ausführungs
beispiele der Erfindung.
Fig. 1(a) zeigt ein Ausführungsbeispiel der Systemausbil
dung, die in Übereinstimmung mit der vorliegenden Erfindung
aufgebaut ist und in welcher drei Rechner P 1, P 2 und P 3 durch
eine Verbindungs-Sammelleitung 4 miteinander sowie mit einem
gemeinsamen Speicher 5 verbunden sind. Die Rechner P 1, P 2 und
P 3 haben Einrichtungen 11-1, 11-2 und 11-3, um jeweils die
Rechnernummern zu definieren. Beim vorliegenden Ausführungs
beispiel sind die Rechner P 1, P 2 und P 3 mit den Rechnernummern
′1′, ′2′ bzw. ′3′ versehen. Diese Rechnernummern sind gemäß
diesem Ausführungsbeispiel durch einen Hardware-Schalter vor
gesehen. Es ist gemäß einer anderen Ausführungsform aber auch
möglich, die Rechnernummern auf eine solche Weise zuzuteilen,
daß sie in einem Hardware-Festspeicher von vorneherein gespei
chert sind, oder daß deren Einstellung bzw. Festsetzung durch
ein Programm beim Einschalten des Systems durchgeführt wird.
Die Rechner sind so angeordnet, daß sie die jeweiligen
Prozesse durchführen. Der gemeinsame Speicher 5 speichert ein
Betriebssystem 31, einen Prozeßplaner 311, der ein Teil des
Programms 31 ist, und eine Prozeßführungstabelle 32 (32-1 bis
32-3), die ein Abschnitt einer Tabelle ist, die unter dem Be
triebssystemprogramm 31 überwacht wird. Die Prozeßführungs
tabelle 32 hat zusätzlich zum Vorrang (nicht gezeigt) des Pro
zesses oder dgl. einen Rechner-Identifizierer 321 (321-1 bis
321-3) gemäß der vorliegenden Erfindung sowie eine Rechner-
Steuerbetriebsart 322 (322-1 bis 322-3), welche die dynamische
Änderung oder den festliegenden Zeitraum des Rechner-Identifi
zierers steuert.
Es muß vermerkt werden, daß, obwohl das hier offenbarte
Ausführungsbeispiel die vorliegende Prozeßführungstabelle 32
benutzt, wie oben erwähnt, auch diskrete Tabellen verwendet
werden können, in welchen die Prozeßidentifizierer zum Identi
fizieren ausführbarer Prozesse für jeden der Rechner indivi
duell gespeichert sind.
Fig. 1(a) zeigt jenen Fall, in welchem ein Prozeß 1 durch
den Rechner P 3, ein Prozeß 2 durch den Rechner P 1 und ein Pro
zeß 3 durch den Rechner P 2 ausgeführt wird. In Fig. 1 sind die
Prozesse innerhalb der jeweiligen Rechnerblöcke gezeigt, um zu
beschreiben, daß diese Prozesse gerade in den speziellen, die
sen zugeordneten Rechnern ausgeführt werden; der Zweck ist le
diglich die bessere Darstellung, und die Zeichnung zeigt nicht
die tatsächliche Lage der ausgeführten Prozesse. Bei diesem
Ausführungsbeispiel wird, weil der Rechner-Identifizierer
321-2 für den Prozeß 2 die Rechnernummer ′1′ aufweist, der
Prozeß 2 durch den Rechner P 1 ausgeführt. Bei dieser Addition
ist, weil der Rechner-Identifizierer 321-1 für den Prozeß 1
die Nummer ′-2′ aufweist, der Prozeß 1 auch durch andere Rech
ner als den Rechner 2 ausführbar. Da die Rechner 2 und 3 zu
diesem Zeitpunkt bereitgestellt sind, wird der Prozeß 2 von
den Rechnern P 3 ausgeführt. Da ferner der Rechner-Identifizie
rer 321-3 für den Prozeß 3 die Rechnernummer ′0′ aufweist, ist
dieser durch jeden Rechner ausführbar. Somit wird der Prozeß 3
vom Rechner P 2 ausgeführt, der bereitsteht. Obwohl bei diesem
Ausführungsbeispiel nur ein einziger Code für den Rechner-
Identifizierer 321 geschrieben ist, können gleichzeitig auch
mehrere Codes geschrieben sein. In einem solchen Fall sind
negative Werte nicht notwendigerweise erforderlich.
Die Prozesse 1 bis 3 entsprechen jeweils den Prozeßfüh
rungstabellen 32-1 bis 32-3, so daß jedesmal, wenn ein Prozeß
erzeugt wird, auch die entsprechende Prozeßführungstabelle er
zeugt wird. Betrachtet man die Erzeugung des Prozesses nach
dem Ingangsetzen des Systems, dann wird ein Grundprozeß, der
andere Prozesse ursächlich erzeugt, unter der Kontrolle des
Betriebssystemprogramms 31 erzeugt. Nachfolgend erzeugt der
Grundprozeß die genannten Prozesse 1 bis 3. Eine Folge dieser
Schritte wird in Verbindung mit Fig. 1(b) beschrieben.
Es wird nun Bezug auf Fig. 1(b) genommen; ein Grundpro
zeß, welcher ursächlich die anderen Prozesse erzeugt, wie oben
festgestellt, wird als "Prozeß 0" bezeichnet (dies ist in Fig. 1(a)
nicht gezeigt). Beim Ingangsetzen des Systems gibt das
Betriebssystemprogramm 31 eine spezielle Rechnernummer in den
Rechner-Identifizierer 321-0 für den Prozeß 0 ein, beruhend
auf der Information, die die Systemausbildung betrifft, die
vom Benutzer vorgewählt ist, wenn der Prozeß 0 erzeugt wird.
Dies liegt daran, daß es nach der Ingangsetzung des Systems
für einen speziellen Rechner erforderlich ist, alle die Daten
zu initialisieren. Deshalb dient im Prozeß 0 nach der Ini
tialisierung der Daten ein Systemruf, der vom Betriebssystem
für das erneute Schreiben des Prozessor-Identifizierers ge
tragen ist, dazu, ′0′ in den Rechner-Identifizierer 321-0 zu
schreiben, damit der Prozeß von irgendeinem der Rechner ausge
führt werden kann. Dann werden die Prozesse 1 bis 3 auch unter
dem Systemruf erzeugt, der vom Betriebssystem getragen ist. In
diesem Fall ist der Rechner-Identifizierer als ein Systemruf-
Parameter ausgebildet. Die Systemrufe zum Erzeugen der Pro
zesse sind in zwei Gruppen klassifiziert. Eine ist zum aus
drücklichen Bezeichnen bzw. Designieren des Rechner-Identifi
zierers und der andere ist zur automatischen Übernahme des
Rechner-Identifizierers für den vorangegangenen Prozeß.
Es wird nun auf Fig. 1(b) Bezug genommen; als erstes wird
der Prozeß 0 vom Rechner P 1 ausgeführt, um den Prozeß 1 durch
Bezeichnen von ′-2′ für den Rechner-Identifizierer zu erzeu
gen. Als Folge ist der Prozeß 1 vom Rechner P 1 oder P 3 aus
führbar. Weil der Rechner P 1 zu diesem Zeitpunkt benutzt wird,
wird der Prozeß 1 vom Rechner P 3 ausgeführt. Dann wird der
Prozeß 2 mit dem Rechner-Identifizierer ′1′ erzeugt, so daß
der Prozeß 0 in den Rechner P 2 übertragen wird und die Aus
führung des Prozesses 2 vom Rechner P 1 begonnen wird. Nachfol
gend wird der Prozeß 3 unter dem Systemruf zur Übernahme des
Rechner-Identifizierers für den vorangegangenen Prozeß er
zeugt, wobei der Rechner-Identifizierer 321-3 auf ′0′ einge
stellt wird. Fig. 1(b) zeigt einen Zustand, in welchem der
Prozeß 0 für eine Weile am gemeinsamen Speicher gehalten wird
und der Rechner P 2 freigegeben wird, um die Ausführung des
Prozesses 3 zu beginnen. Im Prinzip werden die Erzeugung der
Prozesse und das Einstellen des Rechner-Identifizierers durch
geführt, wie oben beschrieben.
Fig. 2 zeigt eine Folge von Verarbeitungsschritten für
den Prozeßplaner.
Der Prozeßplaner, der ein Teil des Betriebssystems ist,
ist von jedem der Rechner so ausführbar, daß er dem bereit
stehenden Rechner zugeordnet werden kann, der die Ausführung
des Prozesses beendet oder unterbrochen hat. Der Prozeßplaner
wählt, wenn er dem Rechner zugeteilt ist, einen nächsten
durchzuführenden Prozeß gemäß dem Prozeßvorrang aus (Schritt
311-1). Bei einem Prozeßplaner aus dem Stand der Technik wird
der ausgewählte Prozeß dem Rechner zugeteilt, der vom Planer
gegenwärtig in Betrieb gehalten wird (Schritt 311-3), und dann
wird die Bearbeitung fertiggestellt. Im Gegensatz hierzu wird
gemäß dem Prozeßplaner der vorliegenden Erfindung der Wert des
Rechner-Identifizierers 321 in der Prozeßführungstabelle 32
für den gewählten Prozeß überprüft (Schritt 311-2). Wenn der
Wert ′0′ ist, erfolgt die Anzeige, daß der Prozeß von jedem
Rechner durchführbar ist. Dann wird der Schritt 311-3 durchge
führt. Wenn andererseits der Rechner-Identifizierer 321 einen
positiven Wert aufweist, der anzeigt, das der Prozeß nur durch
einen solchen Rechner durchführbar ist, der eine Rechnernummer
aufweist, die dem Rechner-Identifizierer entspricht, dann wird
die Prozeßnummer des laufenden Rechners, bei dem der Planer
gegenwärtig im Betrieb ist, geprüft, ob sie tatsächlich mit
dem Wert des Rechner-Identifizierers 321 übereinstimmt
(Schritt 311-4). In diesem Zusammenhang gibt es eine Vielzahl
von Rechner-Identifizierern, die zu diesem Zeitpunkt geprüft
werden müssen, und der Planer macht eine solche Prüfung im
Hinblick auf jeden der Rechner-Identifizierer, und wenn eine
Übereinstimmung zwischen der Rechnernummer und irgendeinem
dieser Rechner-Identifizierer ermittelt wird, wird ein "Über
einstimmungssignal" erzeugt, wobei der Schritt 311-3 erzeugt
wird. Wenn jedoch keine Übereinstimmung festgestellt wird, was
anzeigt, daß der Prozeß nicht vom laufenden Rechner ausführbar
ist, bei welchem der Planer gerade in Betrieb ist, geht der
Planer zurück auf den Schritt 311-1, um einen Prozeß zu wäh
len, der den nächsthöheren Vorrang aufweist. Im Gegensatz
hierzu wird, wenn der Rechner-Identifizierer 321 irgendeinen
negativen Wert im Schritt 312-2 aufweist, der anzeigt, daß der
Prozeß nur durch andere Rechner ausführbar ist als jenen Rech
ner, der eine Rechnernummer aufweist, die im Wert gleich, aber
im Vorzeichen entgegengesetzt ist zu diesem Rechner-Identifi
zierer, dann die Rechnernummer des laufenden Rechners, bei
welchem sich der Planer im Betrieb befindet, überprüft, ob sie
tatsächlich mit dem Absolutwert des Rechner-Identifizierers
321 übereinstimmt (311-5). In diesem Zusammenhang macht, wenn
zu diesem Zeitpunkt mehrere Rechner-Identifizierer vorliegen,
der Planer eine solche Überprüfung im Hinblick auf jede der
Rechner-Identifizierer, und wenn eine Übereinstimmung zwischen
der Rechnernummer und irgendeinem dieser Rechner-Identifizie
rer ermittelt wird, wird ein Übereinstimmungssignal erzeugt;
wenn jedoch keine Übereinstimmung erhalten wird, dann läuft
der Planer zum Schritt 311-3 weiter. Wenn das Übereinstim
mungssignal erzeugt wird, das anzeigt, daß der Prozeß nicht
durch jenen Rechner durchführbar ist, bei welchem sich der
Planer im Betrieb befindet, dann kehrt der Planer zum Schritt
311-1 zurück, um einen Prozeß auszuwählen, der den nächsthöhe
ren Vorrang aufweist. In diesem Zusammenhang wird, wenn ein
Rechner mehrere Rechnernummern aufweist, die Bearbeitung, wie
oben beschrieben, für jede der Rechnernummer wiederholt, bevor
man den nächsten Prozeß wählt.
Das Verfahren zum Einstellen des Rechner-Identifizierers
321 wird allgemein in die folgenden drei Arten der Verfahren
1, 2 und 3 aufgeteilt:
Das Verfahren 1 ist es, den Rechner-Identifizierer durch
einen Systemruf für das Betriebssystem durch den Grundprozeß
einzustellen (hier als "Vaterprozeß" bezeichnet), der den an
deren Prozeß verursacht. Dieses Verfahren umfaßt zwei Fälle:
Der eine ist es, ausdrücklich den Rechner-Identifizierer durch
den Systemruf einzustellen, und ein anderer ist es, implizit
den Rechner-Identifizierer für den Vaterprozeß zu übernehmen
oder den Rechner-Identifizierer auf ′0′ einzustellen, der ein
Code für einen allgemeinen Zweck ist (general purpose code).
Im letztgenannten Fall wird entweder der Schritt, implizit zu
übernehmen, oder der Schritt des Einstellens im Hinblick auf
die Bequemlichkeit für jedes System ausgewählt.
Es ist das Verfahren 2, den Rechner-Identifizierer durch
einen Systemruf für das Betriebssystem vom Prozeß selbst ein
zustellen.
Die Verfahren 1 und 2 sind bereits unter Bezugnahme auf
Fig. 1(b) beschrieben.
Das Verfahren 3 ist ein solches Verfahren, daß zum Zeit
punkt der Erzeugung eines Prozesses ein Code, dessen Prozeß
durch jeden Rechner ausführbar ist (nämlich ein Code für all
gemeine Zwecke) gespeichert wird und zum Zeitpunkt seiner Aus
führung durch irgendeinen Rechner der Rechner-Identifizierer
auf den Wert der Rechnernummer eingestellt wird, dann wird er
nur durch diesen Rechner ausgeführt, und ferner wird am Ende
der Ausführung der Rechner-Identifizierer auf den genannten
Code für den allgemeinen Zweck wieder zurückgestellt, dessen
Prozeß durch jeden Rechner ausführbar ist, wobei sicherge
stellt ist, daß die nächste Ausführung des Prozesses durch
jeden Rechner möglich ist.
Um das Verfahren 3 zu realisieren, ist die Rechner-Kon
trollbetriebsart 322 (322-0, 322-1, 322-2 und 322-3) in der
Prozeßführungstabelle 32 (32-0, 32-1, 32-2 und 32-3) vorge
sehen. Die Rechner-Kontrollbetriebsart umfaßt zwei Betriebs
arten: eine Betriebsart, in welche der Rechner nicht festge
legt ist, und eine andere Betriebsart, in welcher der Rechner
zeitweise in einem Zeitraum vom Beginn bis zum Ende der Durch
führung der Rechner bzw. Prozesse festgelegt ist. In diesem
Zusammenhang wird die Betriebsart, in welchem der Rechner
nicht festgelegt ist, mit ′0′ bezeichnet und die Betriebsart,
in welcher der Rechner zeitweise festgelegt ist, wird als ′1′
definiert. Eine dritte Betriebsart, in welcher, wenn der Pro
zeß erst einmal erzeugt ist, der Rechner ständig festgelegt
ist, kann als ′2′ definiert werden. Bei der letztgenannten
Betriebsart wird, nur wenn der Prozeß zuerst erzeugt ist, die
Prozeßführungstabelle erzeugt und wird selbst am Ende des Pro
zesses nicht freigegeben. Deshalb wird, wenn der Prozeß ein
zweites Mal erzeugt wird, die vorausgegangene Prozeßführungs
tabelle wiederum benutzt, mit dem Ergebnis, daß der Rechner-
Identifizierer, wenn er erst einmal eingestellt ist, ständig
benutzt wird.
Gemäß Verfahren 1 und 2 wird die Rechner-Kontroll
betriebsart automatisch auf ′0′ eingestellt, während es im
Verfahren 3 erforderlich ist, daß zum Zeitpunkt der Erzeugung
des Prozesses der Rechner-Identifizierer wie auch die Rechner-
Kontrollbetriebsart zugeteilt werden. Dies ist der Grund,
warum der Systemruf vom Betriebssystem getragen wird. Das Ver
fahren 3 wird unten unter Bezug auf die Zeichnungen beschrie
ben.
Fig. 3 zeigt die Schritte der Erzeugung eines Prozesses
gemäß Verfahren 3. Das Betriebssystem empfängt über den
Systemruf die Rechner-Betriebsart und den Rechner-Identifizie
rer, die in der Zeichnung mit "mode" bzw. "procid" bezeichnet
sind. Wenn der Systemruf ausgeht, dann liefert das Betriebs
system die Prozeßführungstabelle 32 für den zu erzeugenden
Prozeß (Schritt 12-1), führt dann die herkömmliche Prozeßer
zeugung durch (Schritt 12-2) und führt schließlich die Ein
stellung der Recheninformation für den Prozeß durch (Schritt
12-3).
Die Einstellung der Recheninformation (Schritt 12-3) wird
auf eine solche Weise durchgeführt, daß, wie durch eine
Schlußfolge 312 in Fig. 4 gezeigt, die bezeichnete Rechner-
Kontrollbetriebsart überprüft wird, ob sie den Wert ′2′ hat
(Schritt 312-0). Wenn nicht, wird der Wert "mode" in die Rech
ner-Kontrollbetriebsart der Prozeßführungstabelle 32 eingege
ben (Schritt 312-2), und irgendein Wert von "procid" wird in
den Rechner-Identifizierer 321 eingegeben (Schritt 312-3).
Wenn andererseits der Schritt 312-0 der Rechner-Kontrollbe
triebsart einen Wert von ′2′ aufweist, dann wird die Rechner-
Kontrollbetriebsart 322 der Prozeßführungstabelle 32 über
prüft, um zu bestimmen, ob sie bereits einen Wert von ′2′ für
ihren Prozeß aufweist (Schritt 312-1). Falls es so ist, wird
die Bearbeitungsfolge in Fig. 4 beendet, falls nicht, geht sie
weiter auf die Schritte 312-2 und 312-3, in welchen die be
stimmten Werte von "mode" und "procid" eingegeben werden. Der
so erzeugte Prozeß wird vom Prozeßplaner ausgewählt und wird
durch irgendeinen der Rechner in Abhängigkeit vom Rechner-
Identifizierer 321 ausgeführt. Die Ausführung des Prozesses
ist in Fig. 5 gezeigt.
Fig. 5 zeigt die Schritte zur Ausführung des Prozesses,
worin ein Abschnitt des Flußdiagramms, der von einer gestri
chelten Linie umrundet ist, jenen Abschnitt darstellt, der
gemäß der vorliegenden Erfindung hinzugefügt wurde. Als erstes
wird eine Adresse der Prozeßführungstabelle 32 für den auszu
führenden Prozeß bestimmt (Schritt 313-1), und die Rechner-
Kontrollbetriebsart 322 der Prozeßführungstabelle wird in
ihrem Wert überprüft (Schritt 313-2). Wenn der Wert ′0′ ist,
was anzeigt, daß der Rechner nicht festgelegt ist, wird der
Code ′0′ für den allgemeinen Zweck in den Rechner-Identifizie
rer 321 der Prozeßführungstabelle eingegeben (Schritt 313-4).
Wenn aber der genannte Wert ′1′ ist, was anzeigt, daß der
Rechner während des Zeitraums vom Beginn bis zum Ende der
Durchführung festgelegt ist, dann wird die Rechnernummer 11
des Rechners, die vom Planer bestimmt ist, in den Rechner-
Identifizierer 321 der Prozeßführungstabelle eingegeben
(Schritt 313-3). Wenn der Wert ′2′ ist, was anzeigt, daß der
Rechner ständig festgelegt ist, findet keine Auswirkung statt.
Nachfolgend wird das Benutzerprogramm gestartet, um ausgeführt
zu werden (Schritt 313-5).
Fig. 6 zeigt ein Beispiel der Beendigung eines Prozesses
gemäß dem Verfahren 3 zum Einstellen des Rechner-Identifizie
rers. In diesem Beispiel wird als erstes eine Adresse der Pro
zeßführungstabelle 32 für den zu beendenden Prozeß bestimmt
(Schritt 314-1), und die Rechnerbetriebsart 322 der Prozeß
führungstabelle wird in ihrem Wert überprüft (Schritt 314-2).
Wenn dieser Wert ′1′ ist, was anzeigt, daß der Rechner während
des Zeitraums von Beginn bis Ende der Prozeßdurchführung fest
gelegt ist, dann wird der Code für allgemeinen Zweck (Wert
′0′) in den Rechner-Identifizierer 321 der Prozeßführungsta
belle eingegeben (314-3). Wenn der Wert ′0′ oder ′2′ ist, was
anzeigt, das hier keine Modifizierung erforderlich ist, dann
findet keine Tätigkeit statt. Nachfolgend wird das herkömm
liche Beendigungsvorgehen des Prozesses durchgeführt (Schritt
314-4).
Wie oben beschrieben, ist, wenn die Rechner-Kontrollbe
triebsart ′2′, worin der Rechner ständig festgelegt ist, zur
Zeit der Prozeßerzeugung eingestellt ist, es aus Fig. 5 er
sichtlich, daß keine Modifizierung zum Zeitpunkt der Prozeß
durchführung stattfindet, und daß ferner beim Beendigungsvor
gehen des in Fig. 6 gezeigten Prozesses wegen der Tatsache,
daß der Entscheidungsschritt 314-2 zur Antwort ′anders als 1′
führt, der Rechner-Identifizierer fortfährt, den Wert beizube
halten, der zum Zeitpunkt der Prozeßerzeugung eingestellt war.
Zusätzlich wird die Prozeßführungstabelle bewahrt, so daß
sowohl die Rechner-Kontrollbetriebsart als auch der Rechner-
Identifizierer, die festgesetzt wurden, ebenfalls bis zur
nächsten Erzeugung des Prozesses bewahrt werden. Bei der näch
sten Erzeugung des Prozesses wird die Prozeßführungstabelle,
die vorher benutzt war, wieder aufgespürt, und wenn es sich
herausstellt, daß die Rechner-Kontrollbetriebsart auf ′2′
festgesetzt war, wird der Rechner-Identifizierer nicht neu
geschrieben, so daß er bewahrt wird. Somit kann der Prozeß mit
einer Rechner-Kontrollbetriebsart, die auf ′2′ eingestellt
ist, ständig nur von jenem Rechner ausgeführt werden, der zu
geteilt wurde, es sei denn, die Kontrollbetriebsart wird
infolge einer Anforderung des Benutzers modifiziert.
Vorteilhafte Wirkungen des Verfahrens zum Einstellen des
Rechners, der in Betrieb genommen werden soll, wenn er gestar
tet wird auf die obige Weise, sind die folgenden: Das Verfah
ren 1 ist dahingehend von beträchtlicher Wirkung, daß es viele
Probleme aus dem Stand der Technik überwindet, die die Zuver
lässigkeit des Echtzeitsystems, die Anwendbarkeit existieren
der Software und die Systemarchitektur sowie die Systeminiti
ierung u. dgl. betreffen; das Verfahren 2 löst die Probleme,
die die Zuverlässigkeit des Echtzeitsystems und die System-
Architektur sowie auch die System-Initiierung u. dgl. be
treffen; und Verfahren 3 ist nützlich, um die Abnahme der
Leitungsfähigkeit infolge der Prozeßwanderung zu verhindern.
Nun wird der Grund, warum die Prozeßwanderung gemäß dem
Verfahren 3 verhindert werden kann, kurz beschrieben. Wenn der
Prozeß, der durch irgendeinen Rechner ausführbar ist, durch
einen einzigen der Rechner ausgeführt wird, dann kann die
Prozeßausführung für eine Zeit lang infolge der Wartezeit für
den Zugriff zu IO-Einheiten (Eingangs-Ausgangseinheiten)
unterbrochen werden, so daß der Rechner für einen anderen
Betrieb freigesetzt wird. In diesem Zusammenhang muß vermerkt
werden, daß bei der Anordnung aus dem Stand der Technik beim
Zeitpunkt der Betriebswiederaufnahme der Prozeß nicht notwen
digerweise demselben Rechner zugeteilt zu werden braucht, der
vorher den Prozeß ausgeführt hat. Deshalb ist es möglich, daß
der Prozeß einem unterschiedlichen Rechner zugeteilt wird, und
die Prozeßwanderung stattfinden kann. Gemäß dem Verfahren 3
jedoch wird zum Zeitpunkt der Prozeßerzeugung der Prozeßiden
tifizierer, der vom Benutzer eingestellt wird, wie im Schritt
312-3 der Fig. 4 gezeigt, und die Rechnernummer 11, die im
Rechner-Identifizierer beim Beginn der Ausführung eingestellt
ist, wie im Schritt 313-3 der Fig. 5 gezeigt, im Wert voll
bewahrt, selbst wenn eine Unterbrechung der Ausführung des
Prozesses nachfolgend stattfindet, und zwar bis zu jenem Zeit
punkt, bei welchem der Prozeß fertiggestellt wird, wie in Fig. 6
gezeigt. Somit wird beim Planen des Prozesses zum Zeitpunkt
der Betriebswiederaufnahme nach einer Unterbrechung der Aus
führung (Fig. 2) die spezielle Rechnernummer, die in dem Rech
ner-Identifizierer 321 eingestellt ist, so benutzt, daß der
Prozeß zuverlässig nach der Wiederaufnahme der Ausführung von
jenem Rechner ausgeführt wird, der die genannte Rechnernummer
aufweist. Aus diesem Grund findet keine Prozeßwanderung statt.
Ferner wird nach Fertigstellung der Ausführung des Prozesses
der Rechner-Identifizierer auf ′0′ eingestellt, wie im Schritt
314-3 der Fig. 6 gezeigt, und dementsprechend ist die Zutei
lung des Prozesses zum nächsten Zeitpunkt nicht auf denselben
Rechner beschränkt.
Fig. 7 zeigt eine Modifizierung des Ausführungsbeispiels
gemäß der vorliegenden Erfindung, wobei es mehreren Rechnern
ermöglicht ist, dieselbe Rechnernummer aufzuweisen. Die Bear
beitung des Planers 311 wird auf dieselbe Weise durchgeführt
wie jene, die in Fig. 2 gezeigt ist. Die Rechner-Identifizie
rer 321 der Prozesse 2 und 3 haben denselben Wert ′1′ und die
Rechner P 1 und P 2 haben ebenfalls dieselbe Rechnernummer ′1′,
so daß jeder der Prozesse 2 und 3 von dem Rechner P 1 oder P 2
ausführbar ist. Diese Ausbildung ermöglicht eine flexible
Rechnerzuteilung, ohne daß man das Betriebssystem ändert, und
zwar auf solche Weise, daß beispielsweise Belastungen auto
matisch zwischen den Rechnern P 1 und P 2 ausgeglichen werden,
und daß es möglich ist, daß eine getrennte Arbeit dem Rechner
P 3 zugeteilt wird.
Fig. 8 zeigt eine andere Abänderung des Ausführungsbei
spiels, wobei es einer Anzahl von Rechnern gestattet ist,
dieselbe Rechnernummer zu tragen, wie im Fall der Fig. 7, und
wobei der Rechner-Identifizierer 321-1 des Verfahrens 1 auf
′-1′ eingestellt ist, so daß das Verfahren von den Rechnern P 1
und P 2 mit der Rechnernummer ′1′ nicht ausführbar ist. Eine
solche Ausbildung hat ihre Anwendung dort, wo die Rechner P 1
und P 2 für die Rechnersteuerung vorgesehen sind und der Prozeß
1 ein Versuchsprogramm ist, das in Entwicklung steht, so daß
es erwünscht ist, daß der Betrieb nur durch andere Rechner als
die Rechner P 1 und P 2 durchgeführt wird, um niemals die Rech
nersteuerung zu beeinträchtigen.
Das Ausführungsbeispiel, das in Fig. 8 gezeigt ist, lie
fert wie im Fall der Fig. 7 die vorteilhafte Wirkung, daß eine
flexible Rechnerzuteilung realisiert wird, ohen daß man das
Betriebssystem ändert.
Gemäß einer anderen Ausgestaltung kann die Rechnernummer
11 auch einen Code für einen allgemeinen Zweck aufweisen
(beispielsweise ′0′), so daß der Rechner mit dem Code für den
allgemeinen Zweck jeden der Prozesse durchführen kann. In
diesem Fall kann jeder Rechner mit dem Code für den allgemei
nen Zweck jeden der Prozesse ausführen, ungeachtet des Inhalts
des Rechner-Identifizierers für jeden Prozeß.
Nun wird unter Bezugnahme auf die Fig. 9 und 10 die
Zuteilung der Prozesse zu jedem der Rechner anhand eines Bei
spiels eines Anlagenkontrollsystems gemäß der vorliegenden Er
findung beschrieben. Fig. 9 zeigt eine Systemausbildung, in
welcher eine Anlagenkontrolleinrichtung PC, Endstellen- bzw.
Terminal-Einheiten T 1 und T 2 sowie ein Datenspeicher für die
Rechnersteuerung (on-line file) OF mit dem Mehrfachrechner
verbunden sind, der in Fig. 1 gezeigt ist, und Fig. 10 zeigt
ein Beispiel, das in diesem System die Zuordnung zwischen den
Prozessen und den Rechnern darstellt.
Unter Bezugnahme auf Fig. 10 werden nun die folgenden
fünf Prozesse in Betracht gezogen: Der Steuerprozeß 91 für den
Terminal T 1 zum Steuern der Terminaleinheit T 1, den Prozeß 92
zum Steuern des Terminals T 2 zum Steuern der Terminaleinheit
T 2, ein Sammelprozeß 93 für statistische Informationen zum
Sammeln und Eingeben der statistischen Information in die
Datensammlung für die Rechnersteuerung OF, der Anlagen-Kon
trollprozeß 94 zum Steuern der Anlagenkontrollvorrichtung PC
und ein Fehlerüberwachungsprozeß 95, der das Auftreten eines
Systemfehlerzustands überwacht. Die Rechner P 1, P 2 und P 3, die
in Fig. 10 gezeigt sind, entsprechen jeweils den Rechnern P 1,
P 2 und P 3 in Fig. 9. Eine Markierung ′O′ bedeutet, daß der
Prozeß jener Zuteilung unterzogen wird, daß der Prozeß vom be
zeichneten Rechner ausgeführt werden muß, eine Markierung ′X′
bedeutet, daß der Prozeß der Zuordnung unterzogen wird, daß
der Prozeß durch andere Rechner als den bezeichneten ausge
führt werden soll, und keine Markierung bedeutet, daß der Pro
zeß jener Zuteilung unterzogen wird, daß der Prozeß von ir
gendeinem Rechner durchgeführt werden soll.
Das in Fig. 9 gezeigte System hat Hauptaufgaben, wie etwa
die Terminal-Kontrolle und die Anlagenkontrolle, so daß die
Prozesse auf eine solche Weise verteilt werden, daß der Prozeß
91 zur Kontrolle des Terminals T 1 dem Rechner P 1 zugeteilt
wird, der Prozeß 92 zur Kontrolle des Terminals T 2 dem Rechner
P 2 zugeteilt wird, und der Prozeß 94 zur Anlagenkontrolle dem
Rechner P 3 zugeteilt wird, wobei der gegenseitige störende
Eingriff verhindert wird. Der statistische Datensammelprozeß
93 ist ein solcher Prozeß, der in den leeren Zwischenzeiten
zwischen den Operationen der Rechner ausgeführt werden kann.
Es wird andererseits für die Rechner P 3, die für die Anlagen
kontrolltätigkeit verwendet werden, bevorzugt, daß die Ausfüh
rung anderer Tätigkeiten soweit wie möglich vermieden werden
sollte, um sicherzustellen, daß die Kontrolltätigkeit inner
halb des vorbestimmten Zeitraums beendet wird. Angesichts des
Obigen wird ein statistischer Datensammelprozeß 93 jenen Rech
nern zugeteilt, die anders sind als der Rechner P 3. Dem Aus
fall-Überwachungsprozeß 95 ist es gestattet, von allen Rech
nern ausgeführt zu werden, inklusive auch den Rechner P 3, um
in gewünschter Weise die Bedingungen bzw. Zustände aller Rech
ner zu überwachen. Ferner bestimmt der Ausfall-Überwachungs
prozeß 95 selbst den nächsten, zu betreibenden Rechner, um der
Reihenfolge nach die Rechner zu überwachen.
Es ist aus dem Vorangehenden ersichtlich, daß die Zutei
lung der Prozesse zu den bestimmten Rechnern, wie oben be
schrieben, den wirkungsvollen Betrieb des Anlagen-Kontroll
systems in seiner optimalen Weise ermöglicht.
Ein zweites Ausführungsbeispiel gemäß der vorliegenden
Erfindung wird unten beschrieben.
Fig. 11 zeigt eine Ausbildung eines Mehrfach-Rechners
gemäß diesem Ausführungsbeispiel. In dieser Anordnung sind
Einrichtungen 210 (210-1, 210-2 und 210-3) sowie 211 (211-1,
211-2 und 211-3) zum Halten der oberen und unteren Grenzen des
Vorranges für jenen Prozeß, der von jedem Rechner ausführbar
ist, für jeden der Rechner vorgesehen. Die Vorrang-Halteein
richtung kann durch spezielle Register in jedem Rechner auf
gebaut sein oder kann dadurch erreicht werden, daß man spe
zielle Adressen im gemeinsamen Speicher für diesen Zweck zu
teilt. Zusätzlich hält die Prozeßführungstabelle 32 einen Vor
rang (PR) 212 (212-1, 212-2 und 212-3), der einen Ausführungs
vorrang für jeden Prozeß darstellt. In diesem Ausführungsbei
spiel stellt der untere Wert den höheren Vorrang dar. Der Vor
rang wird dynamisch oder statisch bestimmt, aber das Verfahren
der Bestimmung des Vorranges berührt nicht die vorliegende Er
findung. In diesem Beispiel wird der Betrieb der Zuteilung der
Rechner P 1 bis P 3 zu den Prozessen, die zur Ausführung anste
hen, durch den Prozeßplaner 215 ausgeführt. Die verbleibenden
Abschnitte der Fig. 11 sind identisch mit jenen, die in Fig. 2
gezeigt sind.
Fig. 12(a) zeigt ein Flußdiagramm zum Darstellen der Vor
gehensweise des Planers 215. Um den Vorrang des Prozesses zu
erhalten, der von dem Rechner ausführbar ist, bei welchem sich
der Planer in Betrieb befindet, werden die untere Grenze (LPR)
und die obere Grenze (HPR) des Vorranges von der Vorranghalte
einrichtung 210 und 211 des Rechners abgelesen (Schritt
215-1). Dann wird der höchste Vorrang 212 (der im Wert klein
ste) unter den Prozessen, die zur Ausführung anstehen, ausge
wählt (Schritt 215-2). Wenn der ausgewählte Vorrang des Pro
zesses in solche Vorranggrenzen fällt, daß der Vorrang durch
den zugeordneten Rechner ausführbar ist (Schritt 215-3), dann
wird der ausgewählte Prozeß dem zugeordneten Rechner zuge
teilt (Schritt 215-5). Ansonsten wird jener Prozeß gewählt,
der den nächsthöheren Vorrang aufweist (Schritt 215-4).
Die Wirkungsweise des Planers wird mittels eines Bei
spiels beschrieben. Es wird auf Fig. 11 Bezug genommen; es
wird davon ausgegangen, daß der Planer 215 vom Rechner P 3 be
trieben wird und daß die Prozesse 1 bis 4 durch Durchführung
anstehen. Dann vergegenwärtigt sich der Planer 215, daß der
Vorrang für den Rechner P 3 zwischen ′50′ und ′100′ festgesetzt
ist. Der Prozeß 3, der die höchste Priorität aufweist (′25′),
wird unter den zur Ausführung anstehenden Prozessen ausge
wählt, aber der ausgewählte Vorrang fällt nicht in die Vor
ranggrenzen, die der Rechner P 3 ausführen kann, worauf nach
folgend die Auswahl des Prozesses 1 mit dem nächsthöheren
Vorrang (′40′) folgt. Schließlich wird der Prozeß 4 (Vorrang
wert ′55′) ausgewählt und der Planer 215 teilt den Rechnern P 3
den Prozeß 4 zu.
Gemäß diesem Ausführungsbeispiel kann die Gelegenheit zur
Ausführung des Prozesses selbst dann zuverlässig vorgesehen
werden, wenn der Prozeß 2 oder 4 einen niedrigeren Vorrang
aufweisen, wobei das Auftreten jenes Problems verhindert wird,
daß, wenn eine Anzahl von Prozessen mit höheren Vorrang er
zeugt werden, keine Gelegenheit vorliegt, um die Prozesse mit
niedrigerem Vorrang durchzuführen. Zusätzlich ist es infolge
der Anordnung zum Ausräumen des Überlappens der Vorrangberei
che, innerhalb deren ein Prozeß ausführbar ist, durch zwei
oder mehr Rechner möglich, die Zuordnung zwischen den Prozes
sen und den Rechnern festzulegen.
Fig. 12(b) zeigt ein anderes Flußdiagramm, das die Wir
kungsweise des Planers 215 im einzelnen darstellt. In diesem
Beispiel werden die Schritte 215-6 bis 215-8 statt der Schrit
te 215-2 bis 215-4 in Fig. 12(a) so benutzt, daß eine Überprü
fung vorgenommen wird, um zu bestimmen, ob hier ein Prozeß zur
Ausführung ansteht, wobei man mit dem Prozeß beginnt, der die
niedrigste Vorranggrenze (d. h. den höchsten Vorrang) aufweist.
In diesem Fall wird dasselbe Ergebnis wie jenes in Fig. 12(a)
erreicht.
Ein drittes Ausführungsbeispiel des Mehrfachrechners, der
erfindungsgemäß aufgebaut ist, wird nun nachfolgend unter Bezug
auf Fig. 13 beschrieben. Dieser Rechner ist so aufgebaut, daß
der Vorrang eines jenen Prozesses in der Prozeßführungstabelle
32 individuell für jeden der Rechner festgesetzt werden kann,
statt gemeinsam für alle Rechner festgesetzt zu werden. Des
halb speichert die Prozeßführungstabelle 32 den Vorrang 231,
232 und 233, die jeweils den Ausführungsvorgang eines jeden
Rechners P 1 bis P 3 für jeden Prozeß darstellen.
In diesem Beispiel kann auch ein Verfahren zum Bestimmen
des Vorranges selbst wahlweise gewählt werden, und die Zutei
lung der Prozesse, die zur Ausführung anstehen, zu irgendei
nem der Rechner P 1 bis P 3 wird durch den Planer 234 ausge
führt. Die verbleibenden Abschnitte der Fig. 13 sind identisch
mit jenen, die in Fig. 1 gezeigt sind.
Fig. 14 zeigt ein detailliertes Flußdiagramm, das die
Wirkungsweise des Planers 234 darstellt. Der Planer 234 er
hält zunächst die Rechnernummer des Rechners, bei welchem der
Planer selbst betrieben wird (Schritt 234-1). Dann wird jener
Prozeß ausgewählt, der dem höchsten Positionsvorrang entspre
chend dieser Rechnernummer in jeder Prozeßführungstabelle 32
aufweist (234-2). Dieser Prozeß wird diesem Rechner zugeordnet
(Schritt 234-3).
Die Wirkungsweise des Planers wird unten beschrieben.
Es wird davon ausgegangen, daß in Fig. 13 der Planer 234
am Rechner P 3 betrieben wird und die Prozesse 1 bis 4 für die
Durchführung anstehen. Der Planer 234 erhält als erstes die
Rechnernummer und bestätigt, daß diese beim Rechner P 3 betrie
ben wird. Dann erreicht der Rechner 234 wieder die Vorränge
231-1 bis 231-4 in der Prozeßführungstabelle 32 entsprechend
dem Rechner P 3, wählt dann den nächsten Prozeß 3 mit dem höch
sten Vorrang (Mindestwert ′60′) und teilt den zugeordneten
Rechner diesem zu. Wenn man davon ausgeht, daß es ohne Bedeu
tung ist, welcher Rechner gewählt wird, dann ist der Prozeß
mit dem höchsten Vorrang unter den Prozessen 1 bis 4 der
Prozeß 1, der den Vorrang ′20′ hat. Dieser Vorrang 231-1 ist
jedoch der Vorrang des Rechners P 1, der so ignoriert wird, es
sei denn, der Planer 234 wird am Rechner P 1 betrieben.
Gemäß diesem Ausführungsbeispiel ist es möglich, einen
höheren Vorrang des Rechners für jeden Prozeß anzusetzen,
wobei ausschließlich jeder Prozeß näherungsweise einem einzi
gen der Rechner zugeteilt wird. Es muß jedoch vermerkt werden,
daß der Stillstand des Rechners ni 46239 00070 552 001000280000000200012000285914612800040 0002004007998 00004 46120cht notwendigerweise den zu
geordneten Prozeß unausführbar macht, sondern er kann durch
andere Rechner ausgeführt werden, mit dem hierfür verringerten
Vorrang.
Ein viertes Ausführungsbeispiel gemäß der vorliegenden
Erfindung, in dem ein Mehrfach-Rechner auf dieselbe Weise wie
in Fig. 1 gezeigt aufgebaut ist, wird unten beschrieben.
Fig. 15 zeigt eine Anordnung der Prozeßführungstabelle 32
entsprechend jedem Prozeß in diesem Ausführungsbeispiel. Wie
oben beschrieben, ist der Prozeß-Identifizierer "pid" 320 eine
solche Nummer, die jedem Prozeß im System einmalig erteilt
wird. Der Rechner-Identifizierer "procid" 321 stellt einen
Rechner dar, der für diesen Prozeß erforderlich ist. Genauer
gesagt, wenn "procid" = 0, dann ist es jedem Rechner gestat
tet, den Prozeß auszuführen, wenn "procid" = n (n ist eine
natürliche Zahl), dann ist es dem Rechner mit der Rechnernum
mer n gestattet, den Prozeß auszuführen, und wenn "procid" =
-n, dann ist es jedem anderen Rechner als jenem, der die Rech
nernummer n aufweist, gestattet, den Prozeß auszuführen. Die
Rechnerbetriebsart "mode" 322 definiert, wie oben beschrieben,
die dynamische Modifikation oder den Festlegungszeitraum (Gül
tigmachungszeitraum) für den Rechner-Identifizierer. Genauer
gesagt, wenn "mode" = 0, dann wird der Rechner-Identifizierer
stets angesehen als "procid" = 0. In anderen Worten, zum Zeit
punkt der Prozeßerzeugung ist "procid" auf ′0′ festgesetzt.
Wenn "mode" = 1, dann wird der Rechner-Identifizierer "procid"
nur in jenem Zeitraum zwischen dem Beginn und Ende der Ausfüh
rung des zugeordneten Prozesses festgelegt. D. h., zum Zeit
punkt der Prozeßausführung wird jeder geeignete Wert von
"procid" gesetzt. Wenn zusätzlich "mode" = 2, dann wird
"procid" weder zur Startzeit noch zur Endzeit der Ausführung
beendet. Das "procid" wird nämlich, wenn es erst einmal fest
gesetzt ist, nicht geändert, es sei denn, es wird eine neue
Einstellung des Rechners vorgenommen, wie in Fig. 4 gezeigt.
Ferner wird das Konzept der Rechneraffinität Paf (nach
folgend im einzelnen beschrieben) so eingeführt, daß dann,
wenn "mode" = 3, nur der positive Wert der Rechneraffinität
Paf den Rechneridentifizierer "procid" gültig macht, bzw. ihm
einen Wert verleiht, und wenn dieser Wert negativ ist, was
anzeigt, daß es wiederholt stattgefunden hat, daß es über be
stimmte Zeiten hinweg das Ergebnis der Bestimmung des Rechner-
Identifizierers war, daß der gewählte Rechner zurückgewiesen
wird, dann wird der Rechner-Identifizierer "procid" als ′0′
angesehen, wobei der Rechner-Identifizierer des Prozesses die
zugeordnete Rechnernummer ändert. Der Vorrang Pr 323 stellt,
wie oben beschrieben, die Ausführungspriorität des Prozesses
dar, und der kleinere Wert stellt den höheren Vorrang dar. Ein
Planfragezähler Src 324 bezeichnet die Nummer der Zählung, so
daß der zur Ausführung anstehende Prozeß als nächster auszu
führender Prozeß ausgewählt ist. Ein Planfrageschwellenwert
Sth 325 bezeichnet einen oberen Wert von "Src". Die Rechner
affinität Paf wird aus dem Planfragezähler Src der Planfrage
schwelle Sth auf die folgende Weise errechnet:
Rechneraffinität Paf = Sth - Src
Obwohl bei diesem Ausführungsbeispiel der Wert von "Src"
und "Sth" auf die oben festgestellte Weise definiert sind,
kann auch eine andere Definition vorgenommen werden. Es kann
beispielsweise "Src" als ein Zeitraum definiert werden, wäh
renddessen der Prozeß zur Ausführung ansteht, und "Sth" kann
als obere Grenze hierfür definiert werden. Es kann aber auch
"Src" als Datenmenge für den Prozeß definiert werden, der im
Pufferspeicher des Rechners verbleibt, der durch "procid" be
zeichnet ist, und "Sth" kann als untere Grenze hierfür defi
niert werden. Ferner kann "Src" als Datenmenge für den Prozeß
definiert werden, die im Speicher verbleibt, und "Sth" kann
als untere Grenze hierfür definiert werden.
Fig. 16 zeigt ein Flußdiagramm, das die Bearbeitung des
Planers in diesem Ausführungsbeispiel darstellt.
Nachdem man die Rechnernummer P # des Rechners erhalten
hat, an welchem der Planer betrieben wird (Stufe 261-1), wird
der Prozeß mit dem höchsten Vorrang unter den zur Ausführung
anstehenden Prozessen ausgewählt (Schritt 261-2), und dann
werden der Rechner-Identifizierer procid und die Rechnerkon
trollbetriebsart "mode" von der Prozeßführungstabelle für den
gewählten Prozeß abgeleitet (Schritt 261-3). Dann wird der
Rechner-Identifizierer "procid" überprüft (Schritt 261-4).
Dieser Schritt ist identisch dem Schritt 311-2, der in Fig. 2
gezeigt ist. Zu diesem Zeitpunkt wird, wenn der gewählte Rech
ner zurückgewiesen wird, und "mode" = 3 vorliegt (Schritt
261-6), nach Ändern von "Src" um einen Schritt (Schritt 261-7)
die Rechneraffinität Paf überprüft (Schritt 261-8). Wenn die
Rechneraffinität Paf negativ wird, dann wird die zugeordnete
Rechnernummer P # als neuer Rechner-Identifizierer "procid"
herangezogen (Schritt 261-9), und nachdem der Planfragezähler
Src in Gang gesetzt wurde (auf ′0′ zurückgesetzt), wird der
Prozeß dem Rechner zugeteilt (Schritt 261-5). Wenn im Schritt
261-8 der Wert von "Paf" nicht negativ ist, dann wird der Pro
zeß mit nächsthöherem Vorrang gewählt (Schritt 261-10) und
dieselbe Operation wie oben beschrieben wird wiederholt. Nach
Fertigstellung der Überprüfung all der zur Ausführung anste
henden Prozesse wird die Auswahl des Prozesses mit dem höch
sten Vorrang wieder aufgenommen.
Nun wird der Betrieb des Planers zur Zeit "mode" = 3 be
schrieben. Der Betrieb des Planers "mode" = 0, 1 und 2 erfolgt
auf dieselbe Weise wie bei dem oben erwähnten Ausführungsbei
spiel.
Es wird davon ausgegangen, daß nur ein einziger Prozeß
zur Ausführung ansteht, die Prozeßüberwachungstabelle 32 die
Werte aufweist, wie sie in Fig. 1(a) gezeigt sind, und der
Prozeßplaner mit dem Rechner P 3 betrieben wird; es ist dann
die Entscheidung des Rechner-Identifizierers "procid" (Schritt
261-4) negativ, so daß der Planfragezähler Src einen Schritt
durchführt, so daß er ′1′ ist, und die Rechneraffinität Paf
wird errechnet (Schritt 261-8). Zu diesem Zeitpunkt ist der
Wert von "Paf" positiv, so daß der Prozeß mit dem nächsthöhe
ren Vorrang ausgewählt wird (Schritt 261-10). Weil aber nur
ein einziger Prozeß zur Ausführung in diesem Beispiel ansteht,
wird derselbe Prozeß wiedergewählt und dieselbe Operation wird
wiederholt. Schließlich wird bei der sechsten Auswahl des Pro
zesses die Rechneraffinität Paf negativ. Dann wird der Rech
ner-Identifizierer "procid" so eingestellt, daß er ′3′ beträgt
und der Prozeß wird dem Rechner zugeteilt. Wenn die Planfrage
schwelle Sth zunimmt, dann wird der Ausgangswert der Rechner
affinität Paf höher, so daß sich die Anzahl von Malen, bei
denen die Zuordnung des Prozesses zu einem anderen Rechner ab
gelehnt wird, erhöht.
In anderen Worten, je größer die Planfrageschwelle, umso
größer ist die Rechneraffinität, die zwischen dem Prozeß und
dem entsprechenden Rechner definiert ist. Während die Zuord
nung des Prozesses zu anderen Rechnern als dem angestrebten
Rechner wiederholt abgelehnt wird, kann der angestrebte Rech
ner freigesetzt werden, so daß er bereit ist. Dann wird der
Prozeß unmittelbar dem angestrebten Rechner unter der Prozeß
planung mit diesem Rechner zugeteilt. Es muß vermerkt werden,
daß, obwohl diese neue Kontrollbetriebsart gemeinsam mit der
oben beschriebenen Kontrollbetriebsart verwendet werden kann,
diese neue Kontrollbetriebsart unabhängig verwendet werden
kann.
Gemäß der neuen Kontrollbetriebsart kann ein Prozeß von
dem Rechner, der einmal hierfür bestimmt wurde, mit einer
höheren Wahrscheinlichkeit ausgeführt werden, indem man die
Rechneraffinität auf einen höheren Wert ansetzt. Wenn somit
der Rechner mit einem Pufferspeicher versehen ist, der eine
große Menge von hierin gespeicherten Daten aufweist, kann ein
beträchtlicher Vorteil dadurch erzielt werden, daß eine uner
wünschte Prozeßwanderung unterdrückt wird und eine "Treffer
rate" des Pufferspeichers erhöht wird. Gemeinsam hiermit kann
die Begrenzung der Rechnerzuteilung infolge des Erreichens
eines bestimmten Zustandes verringert werden, wobei eine unbe
absichtigte Verschlechterung der Betriebsfähigkeit des Rech
ners verhindert wird.
Ein fünftes Ausführungsbeispiel der vorliegenden Erfin
dung wird unten beschrieben, wobei die Anzahl der Rechner, die
vom Rechner-Identifizierer bezeichnet ist, sich von der Anzahl
tatsächlicher Rechner unterscheidet, die tatsächlich inner
halb des Mehrfach-Rechners betrieben werden können.
Im allgemeinen ist beschrieben, daß die Bestimmung des
Rechners vom Prozeß (der Software) hier nicht abhängt von der
Anzahl tatsächlicher Rechner. Deshalb kann, wenn man Bezug auf
Fig. 19 nimmt, der Rechner-Identifizierer, der vom Prozeß be
zeichnet wird, als logischer Rechner-Identifizierer 290-1 de
finiert werden, und der Rechner-Identifizierer, der der Rech
nernummer entspricht, wird als physikalischer Rechner-Iden
tifizierer 290-2 bezeichnet. Eine Zuordnungstabelle 290 ist
vorgesehen, die dazu dient, diese beiden Rechner-Identifizie
rer einander zuzuordnen. Diese Zuordnungstabelle 290 ist beim
gemeinsamen Speicher 5 ausgebildet, wenn man den Mehrfach-
Rechner in Gang setzt. Im allgemeinen ist die Nummer des Wer
tes des logischen Rechner-Identifizierers größer als jene des
physikalischen Rechner-Identifizierers, so daß ein Wert des
physikalischen Rechner-Identifizierers mehreren Wertes des
logischen Rechner-Identifizierers zugeordnet wird. Bei dem in
Fig. 19 gezeigten Beispiel umfaßt der logische Rechner-Identi
fizierer die Werte ′0′ bis ′9′ (′0′ meint einen Code für den
allgemeinen Zweck), während der physikalische Rechner-Identi
fizierer Werte von ′0′ bis ′3′ umfaßt, weil nur drei Rechner
tatsächlich vorliegen. Somit werden der Wert der physikali
schen Rechner-Identifizierer, die den Werten ′4′ bis ′9′ des
logischen Rechner-Identifizierers zugeordnet sind, gleichzei
tig auch den anderen Werten des logischen Rechner-Identifizie
rers zugeordnet.
Fig. 17 ist ein detailliertes Flußdiagramm, das die Ver
wendung der Zuordnungstabelle 290 für den Betrieb des Planers
(Fig. 2 oder Fig. 16) darstellt. Wenn die Zuordnungstabelle
290 bereits vorbereitet ist (Schritt 270-1), dann wird der
Rechner-Identifizierer in der Rechenführungstabelle als logi
scher Rechner-Identifizierer aufgefaßt, und der entsprechende
physikalische Rechner-Identifizierer 290-2 wird aus der Zu
ordnungstabelle 290 entnommen (Stufe 270-2). Diese werden
nachfolgend als Rechner-Identifizierer verwendet (Schritt
270-3 und 270-4).
Fig. 18 ist ein anderes, detailliertes Flußdiagramm, wel
ches die Zuordnungstabelle 290 zum Einstellen des zu bearbei
tenden Rechners (Fig. 4) benutzt. Wenn die Zuordnungstabelle
290 bereits bereitgestellt ist (Schritt 280-1), dann wird der
bezeichnete Rechner-Identifizierer als logischer Rechner-Iden
tifizierer aufgefaßt, und der entsprechende physikalische
Rechner-Identifizierer 290-2 "(PROCID)" wird von der Zuordnungs
tabelle 290 entnommen (Schritt 280-2). Der Rechner-Identifi
zierer wird in die Prozeßführungstabelle als Rechner-Identifi
zierer 321 eingegeben. Da in diesem Fall kein Erfordernis für
den Planer vorliegt, auf die Zuordnungstabelle 290 zurückzu
greifen, wird die in Fig. 2 gezeigte Ablauffolge ohne jede
Modifizierung verwendet.
Es ist aus dem Vorangehenden ersichtlich, daß der Rech
ner-Identifizierer in zwei Typen von Rechner-Identifizierers
eingestuft wird, nämlich logische Rechner-Identifizierer, von
der Software her gesehen, und physikalische Rechner-Identifi
zierer, in Abhängigkeit von der Hardware, und daß dann die
Zuordnungstabelle 290 für die Zuordnung beider Rechner-Identi
fizierer gebildet wird, wobei man die Software ohne jeden
Zwang seitens der Hardware-Ausbildung vorbereiten kann. Wenn
somit die Anzahl von Rechnern erhöht wird, ist es lediglich
erforderlich, daß die Anzahl von Werten der tatsächlichen
Rechner-Identifizierer erhöht wird und die Zuordnungstabelle
entsprechend auf Stand gebracht wird, ohne daß irgendeine Än
derung der vorliegenden Software vorgenommen wird.
Nun wird ein sechstes Ausführungsbeispiel gemäß der vor
liegenden Erfindung beschrieben, worin die Rechner unter Ver
wendung eines Typenidentifizierers 1021 bis 1023 statt der
Rechnernummern, wie oben beschrieben, spezifiziert werden. Der
Begriff "Prozeß", wie er oben beschrieben ist, wird nachfol
gend als "Arbeit" bezeichnet. Jede der Arbeiten weist einen
ausführbaren/nicht-ausführbaren Merker auf, der darstellt, ob
die Arbeit für jeden Rechnertyp ausführbar oder nicht ausführ
bar ist. Die Arbeiten, die zur Ausführung anstehen, bilden
eine Wartereihe. Bei diesem Ausführungsbeispiel ist eine sol
che Anordnung getroffen, daß das Planerprogramm in jedem Rech
ner vorgesehen ist. Es wird näher auf Fig. 20 Bezug genommen;
alle Rechner 1011 bis 1013 sind für einen Hauptspeicher 104
über eine gemeinsame Sammelleitung 103 zugänglich. Die Rechner
1011 und 1012 sind "Typ-0-Rechner", die jeweils einen Satz
gleicher Instruktionen aufweisen, und der Rechner 1013 ist ein
"Typ-1-Rechner", der einen anderen Satz von Anweisungen auf
weist. Die Typen der Rechner werden mit den Rechnertypen-Iden
tifizierern 1021 bis 1023 identifiziert. Es ist auch mög
lich, daß dieselbe Art der Rechner unterschiedlichen Rechner
typ-Identifizierern zugeordnet sein kann, wie es im oben er
wähnten Ausführungsbeispiel der Fall ist.
Der Hauptspeicher 104 weist eine Wartereihe von Arbeiten
1061 bis 1063 auf, die hierin gespeichert sind und zur Aus
führung anstehen. Die Wartereihe wird dadurch angeordnet, daß
man die Arbeiten miteinander durch Hinweiseadressen 1561 und
1562 verbindet, die jede Arbeit aufweist. Die Wartereihe hat
an ihrem obersten Abschnitt eine Startkennung (header) 105. Es
wird davon ausgegangen, daß die Arbeiten 1064 bis 1066 sich in
der laufenden Ausführung durch die Rechner 1011 bis 1013 be
finden. Wie oben beschrieben, sind die Arbeiten 1061 bis 1063
mit ausführbaren/nicht-ausführbaren Merkern 1071 bis 1073 so
versehen, daß jeder Merker in jeder Bit-Position jedem Rech
nertyp entspricht. Wenn der Merker auf ′1′ eingestellt ist,
dann ist die Arbeit durch die entsprechende Art von Rechner
ausführbar, während dann, wenn der Merker auf ′0′ eingesetzt
ist, sie nicht ausführbar ist. Beispielsweise bezeichnet der
ausführbare/nicht-ausführbare Merker 1071 (Fig. 20), daß die
Arbeit 1061 durch Rechner des Typs 1 und des Typs 2 ausführ
bar ist, aber nicht durch einen Rechner des Typs 0.
Fig. 21 zeigt den Inhalt der Rechnertyp-Identifizierer
1021 bis 1023, die aus drei Bits bestehen, wobei lediglich ein
Bit von diesen auf ′1′ eingestellt ist. Die Rechnertyp-Identi
fizierer 1021 bis 1023 sind so angeordnet, daß die Bestimmung,
ob die Aufgabe durch ihre Art von Rechner durchführbar ist
oder nicht, durch eine logische UND-ODER-Entscheidung über
diese Rechnertyp-Identifizierer und ausführbaren/nicht-aus
führbaren Merker 1071 bis 1073 durchgeführt werden kann.
Fig. 22 ist ein Flußdiagramm des Planerprogramms (nach
folgend einfach als "Planer" bezeichnet). Gemäß diesem Aus
führungsbeispiel ist dieser Planer in jedem der Rechner 1011
bis 1013 angeordnet und wird dann aktiviert, wenn die vom
Rechner gerade durchgeführte Arbeit fertiggestellt ist und
wenn eine Zeitgeber-Unterbrechung stattfindet. Die Zeitgeber
unterbrechung für jeden Rechner findet bei einem festliegenden
Zeitintervall statt. Wenn man davon ausgeht, daß die Zeitge
ber-Unterbrechung für den Rechner 1011 nun stattgefunden hat
und der Planer gestartet wurde, dann wird im Schritt 201 der
Identifizierer 1021, der die Art des eigenen Rechners anzeigt,
wieder aufgefunden. In diesem Fall ist der abgelesene Wert
′100′. Im Schritt 202 wird dann die Arbeit 1061 gesucht, die
durch die Startkennung 105 der Wartereihe bezeichnet ist.
Nachfolgend wird im Schritt 203 die Wartereihe überprüft, um
festzustellen, ob hierin irgendeine Arbeit angeordnet ist und
ob nicht die Reihenfolge auf den Schritt 204 für den Leerbe
trieb überführt wurde. Es wird nun auf Fig. 22 Bezug genommen;
weil die Arbeit 1061, die hier angeordnet ist, eine logische
UND-ODER-Entscheidung ist, wird S des ausführbaren/nicht-aus
führbaren Merkers und des Rechnertyp-Identifizierers im
Schritt 205 abgenommen. Dies wird auf eine solche Weise er
reicht, daß die logische Addierung des ausführbaren/nicht-aus
führbaren Merkers und des Rechnertyp-Identifizierers zunächst
für jedes Bit durchgeführt wird und dann die logische ODER-
Entscheidung der Resultate, die hiervon erhalten werden,
durchgeführt wird. Wenn die logische Addierung irgendeine
Kombination zweier Bits ′1′ erzeugt, dann bezeichnet dies, daß
die Arbeit vom entsprechenden Rechner durchführbar ist. In
diesem Fall erzeugt, weil ′110′ für den ausführbaren/nicht
ausführbaren Merker 1071 und ′001′ für den Rechnertyp-Identi
fizierer 1021 steht, dann die logische Addierung für jedes Bit
′0′. Deswegen wird S = 0 abgeleitet, was anzeigt, daß die Auf
gabe 1061 vom Rechner 1011 nicht durchführbar ist. Dann läuft
die Folge bis zum Schritt 207 weiter, um die nächste Arbeit in
der Wartereihe nachzusehen. Der nachfolgende Schritt 203 be
stimmt, ob irgendeine Arbeit in der Reihe vorliegt und wenn
die Arbeit 1062 gefunden wird, dann werden die logische UND-/
ODER-Entscheidung ′S′ des Merkers 1072 für die Ausführbarkeit
oder Nichtausführbarkeit und der Rechnertyp-Identifizierer
1021 in den Schritten 205 entnommen. Zu diesem Zeitpunkt er
zeugt, weil ′001′ für den Merker 1072 und ′001′ für den Iden
tifizierer 1021 vorliegen, die logische Addition für jeden Bit
′0′. ′0′, ′1′ und das logische ODER hiervon erzeugt ′1′ was
anzeigt, daß die Aufgabe ausführbar ist. Dann wird die Aufgabe
1062 aus der Wartereihe in dem Schritt 208 entfernt. Danach
wird die Aufgabe, die vom Rechner 1011 ausgeführt war (und die
infolge der Unterbrechung des Zeitablaufs suspendiert war) in
den unteren Abschnitt der Wartereihe im Schritt 209 einge
rückt. Das Einrücken und Entfernen der Aufgabe in die Warte
reihe und aus dieser wird durch Ändern der Hinweisadresse
durchgeführt. Dann wird die aus der Wartereihe entfernte Auf
gabe 1062 im Schritt 210 ausgeführt.
Fig. 23 zeigt Zeitablaufpläne P 0, P 1 und P 2, die jeweils
ein Beispiel darstellen, in welchem Arbeiten durch jeden Rech
ner ausgeführt werden. Die Zeitablaufpläne P 0, P 1 und P 2 be
zeichnen die Zeitfolge von Operationen, die von den Rechnern
1011 bis 1013 ausgeführt werden, wobei das Planerprogramm in
folge der Zeitsteuerunterbrechungen 301 bis 309 und infolge
des Endes 350 einer Arbeit gestartet wird, und die Arbeiten
360 bis 370 werden bei den zugeordneten Rechnern durchgeführt.
Genauer gesagt, es wird davon ausgegangen, daß zuerst die
Rechner 1011 bis 1013 die Arbeiten T 3, T 4 bzw. T 5 ausführen.
Wenn die Zeitunterbrechung 301 in den Rechner 1011 eingegeben
wird, dann wird die Arbeit T 1 dem Rechner zugeteilt, wie oben
unter Bezugnahme auf Fig. 22 beschrieben. Dann wird die Zeit
unterbrechung 304 in den Rechner 1012 zur Ausführung der Ar
beit T 2 eingegeben, und die Zeitunterbrechung 307 wird in den
Rechner 1013 zur Durchführung der Arbeit T 0 eingegeben.
Infolge des Endes 350 der Arbeit T 2, die ausgeführt ist, nimmt
der Rechner 1012 wieder die Ausführung der Arbeit T 3 auf, usw.
Fig. 24 ist eine Arbeitstabelle zum Auflisten der Arbei
ten 1061 bis 1066, die in Fig. 20 gezeigt sind, welche äqui
valent ist der Prozeßführungstabelle im vorangehenden Ausfüh
rungsbeispiel. Ein Arbeitsidentifizierer 150 ist eine laufende
Nummer, die an der Arbeit vorgesehen ist, die verwendet wird,
um die Arbeit zu identifizieren, wenn an diese ein Signal ab
gegeben wird. Ein Arbeitsstatus 151 bezeichnet einen der lau
fenden Arbeitszustände, wie unten gezeigt.
Benutzerlauf:
Status, in welchem die Arbeit des Benutzerprogramms vom Rechner ausge führt wird;
Kernlauf:
Status, in welchem das Systemprogramm infolge der Tatsache ausgeführt werden muß, daß der Systemruf ohne die Unter brechung ausgeführt wird, während das Benutzerprogramm vom Rechner ausgeführt wird;
Bereit zum Start:
Status, in welchem die Arbeit bereit ist zur Durchführung, während sie war tet, einem Rechner zugeteilt zu werden. Die Arbeit befindet sich noch in der Wartereihe; und
Ruhe:
Status, der für das Auftreten bestimm ter Ereignisse wartet, wie einer Ein gang-/Ausgang-Antwort usw.
Status, in welchem die Arbeit des Benutzerprogramms vom Rechner ausge führt wird;
Kernlauf:
Status, in welchem das Systemprogramm infolge der Tatsache ausgeführt werden muß, daß der Systemruf ohne die Unter brechung ausgeführt wird, während das Benutzerprogramm vom Rechner ausgeführt wird;
Bereit zum Start:
Status, in welchem die Arbeit bereit ist zur Durchführung, während sie war tet, einem Rechner zugeteilt zu werden. Die Arbeit befindet sich noch in der Wartereihe; und
Ruhe:
Status, der für das Auftreten bestimm ter Ereignisse wartet, wie einer Ein gang-/Ausgang-Antwort usw.
Der Vorrang 152 bezeichnet einen Ausführungsvorrang für
die Arbeit, und der höhere Wert hiervon führt dazu, daß die
Arbeit von einem Rechner früher ausgeführt werden muß. Die
Wartereihe der Arbeiten, die zur Zuordnung zu den Rechnern
anstehen, ist so angeordnet, daß sie die Arbeiten in abfallen
der Reihenfolge, nach dem Vorrang geordnet, anordnet.
Ein Merker 107 für die Ausführbarkeit/Nicht-Ausführbar
keit, der auf dieselbe Weise wie die Merker 1071 bis 1073 in
Fig. 20 angeordnet ist, ist auch vorgesehen, um die vorliegende
Erfindung zu realisieren. Dieser Merker enthält die Infor
mation, die anzeigt, welche Art von Rechner den Prozeß aus
führen kann. Ein Signalfeld 153 enthält das Signal, das zwi
schen den Arbeiten informiert über die Unterbrechung der Ar
beit, Fertigstellung der Arbeit, einen Fehler, der aufgetreten
ist, u. dgl. Ein Zeitgeber bzw. Zeitfeld 108 (timer) ist ein
Feld, in welches die Zeitinformation eingegeben wird, wie etwa
die Ausführungszeit einer Aufgabe, die Ausführungszeit eines
Systems o. dgl. Eine Bereichstabelle 154 speichert eine Hin
weisadresseninformation, um auf eine Seitentabelle eines
Bereichs hinzuweisen, wo das Programm und die Daten, die mit
der Arbeit verwendet sind, gespeichert sind, sowie eine Be
messungsinformation dieses Bereichs. Ein Registerbewahrungs
bereich 155 wird verwendet, um zeitweise die Information zu
bewahren, die im Arbeitsregister vor der Unterbrechung ent
halten ist, beispielsweise, wenn eine Arbeit infolge der Zeit
geber-Unterbrechung unterbrochen wird. Nachfolgend wird in
folge der Wiederaufnahme der unterbrochenen Arbeit unter dem
Plan die Arbeit wieder ausgeführt, und zwar auf der Grundlage
der Information, die in diesem Bewahrungsbereich abgespeichert
ist. Schließlich sind die Hinweisadressen 156 und 157 solche
Hinweisadressen, die die Arbeiten in der Wartereihe positio
nieren, wie in Fig. 20 gezeigt.
Wie oben unter Bezugnahme auf Fig. 20 beschrieben, ist
das hier offenbarte Ausführungsbeispiel 2 so eingerichtet, daß
jeder der Rechner mit dem Planerprogramm versehen ist, so daß
jeder Rechner imstande ist, seine eigene Arbeitsplanung vorzu
nehmen. Es ist jedoch auch möglich, daß die Planung der Arbeit
durch einen solchen Rechner durchgeführt wird, auf den die
geringste Belastung übertragen wurde. Fig. 25 zeigt ein sieb
tes Ausführungsbeispiel der vorliegenden Erfindung, das auf
diese Weise aufgebaut ist. Die Anordnung der Fig. 25 ist iden
tisch jener der Fig. 20, mit der Ausnahme, daß der Hauptspei
cher eine Liste 110 zum Speichern der Arten von Rechnern im
System aufweist. Infolge der Initiierung des Systems liest
jeder Rechner seinen eigenen Rechnertyp-Identifizierer 1021
bis 1023 ab und trägt ihn dann in diese Liste 110 ein. Dann
ist der Planer 109 imstande, den Typ des Rechners zu identi
fizieren, der nun die Planung vornimmt.
Fig. 26 ist ein Flußdiagramm, das eine Folge von Schrit
ten für ein Planerprogramm bei diesem Ausführungsbeispiel dar
stellt, wobei die Zeitgeberunterbrechung zur Planung durch
irgendeinen Rechner durchgeführt wird, der eine niedrigere
Belastung aufweist. Es wird davon ausgegangen, daß in Fig. 25
die Zeitunterbrechung in den Rechner 1012 eingegeben wird, und
das Planerprogramm ausgeführt wird, und dann auf den ersten
Schritt 701 in Fig. 26 zugegriffen wird, um die Arbeit 1061
nachzuschlagen, die durch die Startkennung 105 der Wartereihe
bezeichnet ist. Dann wird im Schritt 702 eine Überprüfung vor
genommen, ob die Arbeit gegenwärtig vorliegt oder nicht. Wenn
hier keine Arbeit vorliegt, dann wird vom Planerprogramm auch
keine Operation bewirkt, aber wenn man davon ausgeht, daß hier
die Arbeit 1061 vorliegt, dann schreitet die Folge auf den
Schritt 703 fort. In diesem Schritt 703 wird ein leerlaufender
Rechner, wenn es einen gibt, unter den Rechnern ausgewählt,
die in die Lage versetzt wurden, die Arbeit auszuführen, und
zwar infolge von Merkern über die Ausführbarkeit/Nicht-Aus
führbarkeit (durch Überprüfen der Liste 110 im Hauptspeicher
104). Wenn hier jedoch kein solcher leerlaufender Rechner vor
liegt, dann wird das Zeitfeld 108 in Fig. 24 überprüft, um die
Bearbeitungszeit jener Arbeit zu bestimmen, die gegenwärtig
gerade ausgeführt wird, und ein Rechner wird gewählt, der die
längste Bearbeitungszeit aufweist. Genauer gesagt, im Ausfüh
rungsbeispiel der Fig. 25 sind, wegen des ′110′ des Merkers
für die Ausführbarkeit/Nicht-Ausführbarkeit, die Rechner, die
zur Ausführung der Arbeit geeignet sind, Rechner der Typen 1
und 2. In diesem Fall ist der Rechner 1013 alleine der Rech
ner, der diesen entspricht, so daß die Auswahl dieses Rechners
vorgenommen wird. Dann wird im Schritt 704 die Arbeit, die vom
Rechner durchgeführt wird, der auf diese Weise ausgewählt wur
de, unterbrochen und der Status der Arbeit wird bewahrt. Ge
nauer gesagt, der gewählte Rechner führt gerade eine Arbeit T 5
aus, so daß diese Arbeit unterbrochen wird und der Status des
Registers infolge der Unterbrechung auf den Registerbewah
rungsbereich 155 in der Arbeitstabelle von der Arbeit T 5 her
übertragen wird. Anschließend wird im Schritt 705 die unter
brochene Arbeit T 5 in die Wartereihe eingereiht. Die Lage in
der Wartereihe, in welche die Arbeit eingereiht wurde, wird so
bestimmt, daß die Arbeiten in abfallender Reihenfolge erledigt
werden, auf den Vorrang 152 bezogen, der in die Arbeitstabelle
eingetragen ist. Ferner wird die Arbeit 1061 (T 6), die im
Schritt 706 ausgewählt wurde, aus der Wartereihe entnommen und
wird durch den ausgewählten Rechner 1013 ausgeführt.
Fig. 27 zeigt Zeitablaufpläne P 0, P 1 und P 2, die jeweils
ein Beispiel darstellen, bei welchem durch jeden Rechner Ar
beiten durchgeführt werden. Die Zeitablaufpläne P 0, P 1 und P 2
bezeichnen Zeitfolgen von Operationen, die von den Rechnern
1011 bis 1013 ausgeführt werden, wobei zum Zeitpunkt der Fer
tigstellung 330 bis 332 des Planerprogramms die ausführbaren
Arbeiten durch programmabhängige Schalter (context switches)
340 bis 342 geschaltet werden. Genauer gesagt, es wird davon
ausgegangen, daß zuerst die Rechner 1011 bis 1013 die Aufgabe
T 3, das Planungsprogramm S bzw. die Aufgabe T 5 ausführen. Der
Planer S veranlaßt eine Unterbrechung der Aufgabe T 5, die vom
Rechner 1013 ausgeführt wird, mit dem textabhängigen Schalter
342 und startet stattdessen die Durchführung der Aufgabe T 0
durch diesen Rechner, wie dies unter Bezugnahme auf Fig. 26
beschrieben ist. Am Ende des Planers S nimmt der Rechner 1012
die Ausführung der Aufgabe T 4 wieder auf, bei deren Ausführung
er war. Nach dem festen Zeitraum wird die Zeitunterbrechung
310 wiederum in den Rechner eingegeben, und der Planer S wird
ausgeführt. Der Planer S dient dazu, die Aufgabe T 1 in Fig. 25
aus der Wartereihe zu nehmen. Weil ′001′ des Merkers für die
Ausführbarkeit/Nicht-Ausführbarkeit 1072 für die Aufgabe T 1
ist, können Rechner des Typs 0 verwendet werden, um die Auf
gabe durchzuführen. Obwohl die Rechner 1011 und 1012 Rechner
des Typs 0 sind, arbeiten sie jetzt gegenwärtig andere Aufga
ben aus, so daß einer von den Rechnern, der die längere Bear
beitungszeit von den Aufgaben aufweist, die auszuführen ist,
gewählt wird. Insbesondere in Fig. 27 wird davon ausgegangen,
daß der Rechner 1011 die längere Bearbeitungszeit als jene des
Rechners 1012 aufweist, und der Rechner 1011 wird für die Aus
führung der Arbeit T 1 ausgewählt. Danach und infolge der Zeit
unterbrechung zu dem festen Zeitintervall wird der Planer
durch irgendeinen anderen Rechner ausgeführt, und die Planung
der Arbeiten in der Wartereihe wird auf dieselbe Weise durch
geführt.
Fig. 28 zeigt ein achtes Ausführungsbeispiel gemäß der
vorliegenden Erfindung, worin Rechner 1011 bis 1013 unter
schiedliche Ausbildungen aufweisen, wie durch die Identifizie
rer 1021 bis 1023 jeweils angezeigt ist, und sie habe Anwei
sungssätze, die sich teilweise voneinander unterscheiden. Ein
Hauptspeicher 104 weist eine Wartereihe mit Arbeiten 1061 bis
1063 auf, die hierin angeordnet sind. Diese Arbeiten sind
jeweils mit Tabellen 1081 bis 1083 versehen, damit der Vorrang
einer jeden Art von Rechner für jede Aufgabe eingespeichert
wird. Die erste Reihe der Tabelle 1081 zeigt an, daß der Rech
ner des Typs 0, der den Rechnertyp-Identifizierer ′001′ auf
weist, den Vorrang ′0′ für die Arbeit 1061 aufweist, in ande
ren Worten, ein Rechner des Typs 0 kann diese Aufgabe nicht
ausführen. Die folgenden Reihen der Tabelle 1081 besagen, daß
der Rechner des Typs 1 den Vorrang ′10′ aufweist und der Rech
ner des Typs 2 den Vorrang ′20′.
Fig. 29 ist ein Flußdiagramm, das das Planerprogramm dar
stellt, das in dem in Fig. 28 gezeigten Ausführungsbeispiel
benutzt wird. Das Planerprogramm wird zum Zeitpunkt der Fer
tigstellung der Arbeit und beim Auftreten der Zeitunterbre
chung für die Planung ausgeführt, so wie beim Planerprogramm,
das in Fig. 22 gezeigt ist. Die Zeitgeber-Unterbrechungen wer
den in die einzelnen Rechner im festen Zeitintervall einge
bracht. Nun wird Bezug auf den Fall genommen, in welchem die
Zeitgeber-Unterbrechung in den Rechner 1103 eingebracht ist
und das Planerprogramm unter der Bedingung ausgeführt ist, wie
sie in Fig. 28 gezeigt ist. Als erstes liest im Schritt 1001
der Rechner seinen eigenen Rechnertyp-Identifizierer 1021 ab.
Der Wert des Rechnertyp-Identifizierers, der somit abgelesen
ist, ist somit ′010′. Dann wird der Schritt 1002 ausgeführt,
um zu bestimmen, ob die Arbeit mit der Startkennung 105 der
Wartereihe verbunden ist. Wenn nicht, wird die Anzeige ausge
führt, daß keine Arbeit ausgeführt werden soll, dann wird ein
Leerprozeßschritt 1003 durchgeführt. Weil in diesem Beispiel
jedoch die Arbeit 1061 angeschlossen ist, ist die Antwort des
Schrittes 1002 "JA". Deshalb wird im Schritt 1004 die Arbeit
mit dem höchsten Vorrang entsprechend dem Rechnertyp-Identi
fizierer aus den in der Wartereihe angeordneten Arbeiten aus
gewählt. Wie in Fig. 28 gezeigt, sind die Arbeiten 1061 bis
1063 in der Wartereihe mit den Vorrängen ′10′, ′0′ bzw. ′20′
angeordnet, jeweils ensprechend dem Rechneridentifizierer
′010′. Somit wird die Arbeit 1063 mit dem Vorrang ′20′ ausge
wählt. Weil der Vorrang der somit ausgewählten Arbeit nicht
′0′ ist, wird die Folgeanzeige durchgeführt, daß keine Arbeit
mit dem Typ des eigenen Rechners ausführbar ist, dann wird der
Leerbetrieb 1003 durchgeführt. Im Schritt 1006 wird die Arbeit
1063 der Wartereihe entnommen. In anderen Worten, die Hinweis
adresse 1562 wird gelöscht. Schließlich wird im Schritt 1007
die Arbeit 1063 ausgeführt.
Fig. 30 zeigt eine Arbeitstabelle 106 zum Realisieren
jene der Arbeiten, die in Fig. 28 gezeigt sind. Die Arbeits
tabelle 106 ist identisch mit jener, die in Fig. 24 gezeigt
ist, ausgenommen die Tatsache, daß der Merker 107 für die Aus
führung/Nicht-Ausführung in Fig. 24 gestrichen ist und der
Vorrang 152 in Fig. 24 ersetzt ist durch den Vorrang 158 für
jeden Rechnertyp. Deshalb wird die Information, die die Aus
führbarkeit der Arbeit betrifft, welche durch den Merker für
die Ausführbarkeit/Nicht-Ausführbarkeit ausgedrückt ist, in
diesem Ausführungsbeispiel dadurch dargestellt, ob der Vor
rang 158 ′0′ ist oder nicht.
Fig. 31 zeigt ein neuntes Ausführungsbeispiel gemäß der
vorliegenden Erfindung. Obwohl im Ausführungsbeispiel der Fig. 28
jeder Rechner ein Planerprogramm aufweist, welches dazu
eingerichtet ist, die Planung des Rechners vorzunehmen, ist im
Ausführungsbeispiel der Fig. 31 ein Hauptspeicher 104 mit
einer Liste 110 versehen, um die Typen der Rechner zu spei
chern, und jeder der Rechner führt unter Benutzung dieser
Liste die Planung so durch, wie es erforderlich ist. Zu diesem
Zweck kann nach dem Ingangsetzen des Systems jeder Rechner
seinen eigenen Rechnertyp-Identifizierer 1021 bis 1023 ablesen
und sich in die Liste 110 eintragen.
Fig. 32 ist ein Flußdiagramm, das die Wirkungsweise des
Planers gemäß der vorliegenden Erfindung darstellt. Das
Planerprogramm wird durch jeden Rechner ausgeführt, der eine
niedrige Last aufweist, die auf diesen aufgebracht ist, wenn
die Zeitsteuer-Unterbrechung für die Planung aufgenommen ist.
Es wird beispielsweise, wie in Fig. 31 gezeigt, davon ausge
gangen, daß die Zeitsteuer-Unterbrechung in den Rechner 1011
eingegeben wird und dann das Planerprogramm 109 ausgeführt
wird. In einem solchen Fall wird im Schritt 1301 die Arbeit
1061, die von der Startkennung 105 in der Wartereihe bezeich
net ist, nachgesehen. Wenn im Schritt 1032 keine unbearbeitete
Arbeit gefunden wird, wird das Planerprogramm ohne jede Wir
kun beendet. Wenn man davon ausgeht, daß eine Arbeit 1061
gefunden wird, dann geht die Folge auf den Schritt 1303 wei
ter, wo unter Bezugnahme auf die Vorrangtabelle 1081 für die
Arbeit 1061 der Rechnertyp mit dem höchsten Vorrang ausge
wählt wird. In einem solchen Fall wird der Rechnertyp-Identi
fizierer ′100′ (Typ 2) mit dem Vorrang ′20′ ausgewählt. Dann
wird im Schritt 1304 der Rechnertyp in der Liste 110 nachgese
hen, und für den Rechner 1012 wird herausgefunden, daß er
dieser Typ von Rechner ist. In diesem Zusammenhang muß ver
merkt werden, daß, obwohl Bezug nur auf einen Rechner dieses
Typs in diesem Fall genommen wurde, dann, wenn mehrere Rechner
dieses Typs vorliegen, jener Rechner mit der längsten Ausfüh
rungszeit jener Arbeit, die gerade von ihm ausgeführt wird,
ausgewählt wird. Dann wird im Schritt 1305 die Arbeit, die vom
ausgewählten Rechner ausgeführt wird, unterbrochen und der
Status der Arbeit wird bewahrt. Genauer gesagt, wegen der
Arbeit T 4, die vom Rechner 1012 ausgeführt wird, wird die
Arbeit T 4 unterbrochen und der Status des Registers bei der
Unterbrechung wird in den Registerbewahrungsbereich 155 (Fig. 30)
der Arbeitstabelle für die Arbeit 1065 (T 4) eingegeben und
dort bewahrt. Im Schritt 1306 wird die unterbrochene Arbeit T 4
in die Unterseite bzw. Rückseite der Wartereihe eingegeben.
Schließlich wird im Schritt 1307 die ausgewählte Arbeit 1061
aus der Wartereihe entnommen und wird durch den gewählten
Rechner 1012 ausgeführt.
Fig. 33 zeigt ein weiteres erfindungsgemäßes Ausführungs
beispiel, in welchem drei Rechner 1011 bis 1013 mit örtlichen
Speichern 3101 bis 3103 jeweils mit einem Netzwerk 300 verbun
den sind. Obwohl in den in Fig. 20, 25, 28 und 31 gezeigten
Ausführungsbeispielen die Wartereihe im Hauptspeicher 104 ge
speichert ist, der von allen Rechnern her zugänglich ist, wird
gemäß dem Ausführungsbeispiel der Fig. 33 die Wartereihe je
doch im örtlichen Speicher 3101 des übergeordneten Rechners
1011 gespeichert. Wenn deshalb das Erfordernis für einen ande
ren Rechner als den Rechner 1011 besteht, Zugang zur Warte
reihe für die Planung zu nehmen, dann muß der Rechner den Zu
gang zum örtlichen Speicher 3101 durch das Netzwerk 300 und
den Rechner 1011 nehmen. Die Bestimmung der Ausführbarkeit und
die Planung auf der Grundlage des Vorranges werden auf die
selbe Weise wie in den oben beschriebenen Ausführungsbeispie
len vorgenommen.
Fig. 34 zeigt ein weiteres Ausführungsbeispiel gemäß der
vorliegenden Erfindung, welches eine Modifizierung des Ausfüh
rungsbeispieles ist, das in Fig. 33 gezeigt ist. In diesem
Ausführungsbeispiel liegt kein übergeordneter Rechner vor, so
daß dieselbe Wartereihe in allen örtlichen Speichern gespei
chert ist. In anderen Worten, dieselben Arbeiten 1061 und 1062
sind mit den Startkennungen 1051 bis 1053 aller örtlichen
Speicher 3101 bis 3103 so verbunden, daß jeder Rechner so an
geordnet ist, daß er unter Bezug auf seinen eigenen örtlichen
Speicher die Planung vornimmt. Wenn irgendein Rechner wünscht,
seine Wartereihe zu aktualisieren, dann muß der Rechner die
Ermächtigung zur Aktualisierung von allen anderen Rechnern
erhalten und die Aktualisierung dann innerhalb des eigenen
örtlichen Speichers vornehmen. Zusätzlich muß, um dieselbe
Aktualisierung der Wartereihe für alle anderen Rechner durch
zuführen, die Nachricht, die die Aktualisierung betrifft, über
das Netzwerk 300 allen anderen Rechnern zugesandt werden.
Fig. 35 zeigt ein weiteres Ausführungsbeispiel der vor
liegenden Erfindung, in welchem örtliche Speicher 3101 bis
3103 im Ausführungsbeispiel, das in Fig. 34 gezeigt ist, als
ein einziger, virtueller, gemeinsamer Speicher 320 angeordnet
sind. Bei dieser Anordnung kann jeder der Rechner Zugang zu
jedem der örtlichen Speicher nehmen, und die Wartereihe, die
zur Planung verwendet wird, ist in diesem virtuellen gemein
samen Speicher 320 abgespeichert.
Fig. 36 zeigt ein Beispiel, das die Auflistung (mapping)
der logischen Adressen innerhalb des virtuellen, gemeinsamen
Speichers 320 und die physikalischen Adressen darstellt. Die
Adressenbereiche des logischen Adressenraums 500 für den vir
tuellen, gemeinsamen Speicher sind jenem der physikalischen
Adressenräume 5101 bis 5103 für die örtlichen Speicher 3101
bis 3103 wechselweise zugeordnet, wie in der Fig. 36 bezeich
net. Fig. 37 zeigt eine Adressen-Umrechnungstabelle, um die
gegenseitige Zuordnung sowohl logischer als auch physikali
scher Adressenräume zu bewirken. Es wird beispielsweise davon
ausgegangen, daß irgendein Rechner einen Zugang zu einer Seite
mit der logischen Adresse ′0′ nimmt und daß die Rechnerzahl
′ID 0′ für diese Seite gleich ist der Rechnerzahl des Rech
ners. Dann liest der Rechner die Seite bei der physikalischen
Adresse ′0′ innerhalb des eigenen Speichers ab. Wenn jedoch
die Rechnerzahl für diese Seite nicht gleich ist der Rechner
zahl des eigenen Rechners, dann sendet der Rechner, der den
Zugang genommen hat, eine Nachricht durch das Netzwerk 300,
die anfordert, daß der Rechner mit der Nummer ′ID 0′ die Seite
zur physikalischen Adresse ′0′ übertragen soll. Der Rechner,
der die Nachricht empfängt, gibt dann die angeforderte Seite
an den anfragenden Rechner in Form einer Nachricht zurück. In
diesem Ausführungsbeispiel werden die Bestimmung der Ausführ
barkeit der Arbeit und die Kontrolle auf der Grundlage des
Vorganges auf dieselbe Weise wie bei den oben beschriebenen
Ausführungsbeispielen ausgeführt.
Während die Erfindung hinsichtlich bevorzugter Ausfüh
rungsbeispiele beschrieben wurde, ist es ersichtlich, daß
verschiedenartige Änderungen vorgenommen werden können, ohne
daß man den Umfang der Erfindung verläßt.
Soweit Unklarheiten über gewählte Begriffe vorliegen,
wird ausdrücklich auf die in der Zeichnung ver
wendeten Begriffe Bezug genommen.
Insgesamt ist ein Prozeß-Planungsverfahren für einen
Vielfach-Rechner offenbart, der eine Anzahl von Rechnern auf
weist, wobei das Planungsverfahren so angeordnet ist, daß es
einen zur Durchführung anstehenden Prozeß einem eigentlichen
Rechner zuordnet. Jeder der Prozesse weist einen Rechner-Iden
tifizierer auf, um einen Rechner zu identifizieren, der den
Prozeß ausführen kann. Bei der Zuordnung eines Prozesses zu
einem bestimmten Rechner wird der Rechner-Identifizierer des
Prozesses als ein Bezug verwendet, um zu überprüfen, ob der
Prozeß vom Rechner ausführbar ist. Dieses Prozeß-Planungs
system kann nicht nur bei einem System Anwendung finden, in
dem Rechner mit verschiedenem Aufbau enthalten sind, sondern
auch bei einem System, in welchem Rechner mit dem gleichen
Aufbau enthalten sind.
Claims (49)
1. Planungsverfahren für einen Mehrfach-Rechner, der eine
Anzahl von Rechnern und einen gemeinsamen Speicher aufweist,
in den sich die Anzahl von Rechnern teilt, um Programm und
Daten abzuspeichern, wobei im Verfahren ein Prozeßplaner
irgendeinen der Rechner jedem der Prozesse zuteilt,
gekennzeichnet durch die folgenden Schritte:
- - Erstellen einer Prozeßführungstabelle zum Führen eines jeden der Prozesse,
- - Eingeben einer Rechner-Zuteilungsinformation für jeden der Prozesse in die Prozeßführungstabelle, wobei die Rechner zuteilungsinformation einen Rechner bezeichnet, dem es ge stattet ist, jeden der Prozesse auszuführen,
- - Betreiben des Prozeßplaners, um einen Rückgriff auf die Prozeßführungstabelle für einen Prozeß vorzunehmen, der für die nächste Durchführung ausgewählt ist, und
- - Durchführen des Prozesses durch jenen Rechner, der die sem auf der Grundlage der Prozeßführungsinformation für den Prozeß zugeteilt ist.
2. Prozeß-Planungsverfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß die Rechner-Zuteilungsinformation einen Code für
einen allgemeinen Zweck aufweist, der anzeigt, daß der Prozeß
durch jeden der Rechner ausführbar ist.
3. Prozeß-Planungsverfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß die Rechner-Zuteilungsinformation einen anderen
Code aufweist, der anzeigt, daß der Prozeß durch die Rechner
ausführbar ist, ein spezieller Rechner augenommen.
4. Prozeß-Planungsverfahren nach Anspruch 2, dadurch gekenn
zeichnet, daß das Verfahren die folgenden Schritte aufweist:
- - Umwandeln der Rechner-Zuteilungsinformation für den Prozeß, die den Code für den allgemeinen Zweck als Rechner- Zuteilungsinformation aufweist, in einen Code zum Bezeichnen jenes Rechners, der ausgewählt ist, um den Prozeß auszuführen, wobei die Umwandlung zur Zeit nach der Bestimmung des Rech ners, aber vor dem Beginn der Prozeßausführung durchgeführt wird, und
- - Rückumwandeln der Rechner-Zuteilungsinformation in den Code mit dem allgemeinen Zweck zur Zeit nach Ende der Prozeß durchführung.
5. Prozeß-Planungsverfahren nach Anspruch 1, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Bereitstellen eines Speicherbereichs zum Speichern von Kontrollbetriebsarten für jeden Prozeß in der Prozeßführungs tabelle, und
- - Festlegen eines Codes zur Zuteilung des Prozeß-Pla nungsverfahrens nach Anspruch 4 als eine der Kontrollbetriebs arten.
6. Prozeß-Planungsverfahren nach Anspruch 5, dadurch gekenn
zeichnet, daß ein anderer Code, der ständig die Rechner-Zu
teilungsinformation festlegt, als eine der Kontrollbetriebs
arten definiert wird und daß für den Prozeß, dem der genannte
andere Code zugeteilt ist, die Rechner-Zuteilungsinformation
während sowie unmittelbar vor und nach der Prozeßdurchführung
nicht geändert wird.
7. Prozeß-Planungsverfahren nach Anspruch 1, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Festlegen des Ausmaßes, bis zu welchem die anderen Rechner als der eine der von der Rechner-Zuordnungsinfor mation für einen Prozeß bezeichnet ist, zurückgewiesen werden, wobei das Ausmaß dem Prozeß als Wert zuzuteilen ist, der eine Affinität zwischen dem bezeichneten Rechner und dem Prozeß darstellt, und zwar für jeden der Prozesse,
- - Vergleichen des Wertes mit einem Wert, der das Ausmaß der Wartezeit eines Prozesses für dessen Ausführung darstellt, und
- - Ausführen des Prozesses durch den anderen als den durch die Rechner-Zuteilungsinformation bezeichneten Rechner gemäß dem Ergebnis des Vergleichungsschrittes.
8. Prozeß-Planungsverfahren nach Anspruch 7, dadurch gekenn
zeichnet, daß der Wert, der das Ausmaß der Wartezeit zur
Durchführung des Prozesses darstellt, entweder die Anzahl der
Male ist, die die Zuteilung des Rechners zurückgewiesen ist,
oder die Menge der Daten des Prozesses, der zur Ausführung
ansteht.
9. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
eine Anzahl numerierter Rechner und einen Hauptspeicher auf
weist, in den sich die Anzahl von Rechnern teilt, gekennzeich
net durch die folgenden Schritte:
- - Einrichten einer Prozeßführungstabelle im gemeinsamen Speicher zur Führung der Prozesse, die auf den Rechnern lau fen,
- - Speichern einer Rechner-Zuteilungsinformation zum Bezeichnen der Nummer des Rechners, dem es erlaubt ist, einen Prozeß auszuführen, im Speicher für jeden der Prozesse,
- - Betreiben des Prozeßplaners, um einen Rückgriff auf die Prozeßführungstabelle für den als nächsten auszuführenden Prozeß vorzunehmen, und
- - Ausführen des Prozesses durch jenen Rechner, dessen Nummer durch die Rechner-Zuteilungsinformation für den Prozeß bezeichnet wurde.
10. Prozeß-Planungsverfahren nach Anspruch 9, dadurch gekenn
zeichnet, daß infolge einer Überlappung die Zuteilung der
selben Nummer auf zwei oder mehr Rechner beim Numerieren der
Rechner gestattet ist.
11. Prozeß-Planungsverfahren nach Anspruch 9, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Festlegen eines Codes für einen allgemeinen Zweck als eine der Rechnernummern, und
- - Ausführen eines jeden der Prozesse auf einem solchen Rechner, der die Nummer aufweist, die durch die Rechner-Zuord nungsinformation für den Prozeß zugeteilt ist, oder der die Nummer hat, die den Code für den allgemeinen Zweck darstellt.
12. Prozeß-Planungsverfahren nach Anspruch 9, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Festlegen eines logischen Rechner-Identifizierers für die Rechner-Zuteilungsinformation, wenn man vom Prozeß her einen Rechner bezeichnet,
- - Erstellen einer Zuordnungstabelle im gemeinsamen Spei cher, um den logischen Rechner-Identifizierer und einen physi kalischen Rechner-Identifizierer, der dem tatsächlichen Rech ner entspricht, einander zuzuordnen, und
- - Umwandeln des logischen Rechner-Identifizierers in den physikalischen Rechner-Identifizierer, um die Planung vorzu nehmen.
13. Prozeß-Planungsverfahren zum Zuteilen irgendeines der
Rechner zu jedem der Prozesse in einem Vielfach-Rechner, der
eine Anzahl von Rechnern sowie einen gemeinsamen Speicher auf
weist, in den sich die Rechner teilen, gekennzeichnet durch
die folgenden Schritte:
- - Speichern einer Rechner-Zuordnungsinformation im ge meinsamen Speicher, um einen solchen Rechner zu bezeichnen, dem es ermöglicht ist, den Prozeß auszuführen, und zwar für jeden der Prozesse,
- - Herstellen eines Rückgriffs auf die Rechner-Zuteilungs information für den Prozeß, wenn man jenen Prozeß, der für die Ausführung ansteht, dem Rechner zuteilt, und
- - Bestimmen, ob die Zuteilung des Prozesses zu dem Rech ner zulässig ist oder nicht, und zwar in Abhängigkeit von der Rechner-Zuteilungsinformation.
14. Rechner-Planungsverfahren nach Anspruch 13, dadurch ge
kennzeichnet, daß für jeden der Prozesse eine Prozeß-Zutei
lungsinformation zum Bezeichnen jenes Prozesses verwendet
wird, dem es gestattet ist, von einem Rechner ausgeführt zu
werden, anstelle der Rechner-Zuteilungsinformation für jeden
der Prozesse, um den Rechner zu bezeichnen, dem es gestattet
ist, einen Prozeß auszuführen.
15. Prozeß-Planungsverfahren für ein Betriebssystem eines
Mehrfach-Rechners, gekennzeichnet durch die folgenden Schrit
te:
- - es wird vorab eine Zuordnung eines jeden der Prozesse und eines jeden Rechners durchgeführt, dem es gestattet ist, den zugeordneten Prozeß durchzuführen, und
- - es wird, wenn man einen leerlaufenden Rechner einem für die Durchführung anstehenden Prozeß zuteilt, bestimmt, ob die Zuteilung des leerlaufenden Rechners zu einem Prozeß auf der Grundlage der vorläufig erfolgten Zuordnung zulässig ist.
16. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
mehrere Rechner aufweist, gekennzeichnet durch die folgenden
Schritte:
- - Vorbestimmen des Vorrangbereiches eines Prozesses, dem es gestattet ist, von dem Rechner ausgeführt zu werden, und zwar für jeden der Anzahl von Rechnern, und
- - Auswählen des Prozesses mit dem höchsten Vorrang unter den Prozessen, die zur Ausführung anstehen, wobei die Prozesse jeweils einen Vorrang innerhalb des Bereichs aufweisen, der für einen Rechner bestimmt ist, als nächsten Prozeß, der vom Rechner auszuführen ist.
17. Prozeß-Planungsverfahren für einen Mehrfach-Rechner mit
einer Anzahl von Rechnern, gekennzeichnet durch die folgenden
Schritte:
- - Vorbestimmen eines Vorrangs für jeden Prozeß für jeden der Anzahl von Rechnern, und
- - Auswählen des Prozesses mit dem höchsten Vorrang unter den zur Ausführung anstehenden Prozessen, wobei die Prozesse jeweils einen für einen Rechner vorbestimmten Vorrang aufwei sen, als nächster Prozeß, der vom Rechner ausgeführt werden soll.
18. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
mindestens zwei Rechner aufweist und imstande ist, durch jeden
der Rechner einen speziellen Prozeß auszuführen, gekennzeich
net durch den folgenden Schritt:
- - Festlegen eines der mindestens zwei Rechner für einen solchen Rechner, der den speziellen Prozeß ausführt, so daß eine Software für einen Einzelrechner ohne jede Abwandlung be nutzt werden kann.
19. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
mindestens zwei Rechner aufweist und imstande ist, einen spe
ziellen Prozeß durch jeden der Rechner auszuführen, gekenn
zeichnet durch den folgenden Schritt:
- - Festlegen eines der mindestens zwei Rechner für einen solchen Rechner, der den speziellen Prozeß ausführt, und zwar mindestens während eines Zeitraums von Beginn bis Ende von dessen Ausführung, um die Änderung des ausführenden Rechners mitten in der Ausführung des speziellen Prozesses zu verhin dern, und wobei der Prozeß ohne jede Abänderung ausgeführt wird.
20. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
mindestens zwei Rechner aufweist und imstande ist, durch einen
speziellen Rechner verschiedenartige Prozesse durchzuführen,
gekennzeichnet durch den folgenden Schritt:
- - Begrenzen der Anzahl von Prozessen, die durch den spe ziellen Rechner aufzuführen sind, so daß die Ansprechzeit des Rechners innerhalb eines festen Zeitraums fallen kann.
21. Prozeß-Planungsverfahren für einen Vielfach-Rechner, der
mindestens zwei Rechner aufweist und imstande ist, durch einen
speziellen Rechner verschiedenartige Prozesse auszuführen, ge
kennzeichnet durch den folgenden Schritt:
- - Begrenzen der Typen von Prozessen, die durch den spe ziellen Rechner ausgeführt werden sollen, so daß eine Fehler beeinflussung des speziellen Rechners lokalisiert werden kann.
22. Mehrfach-Rechner, der zur Kontrolle durch ein einziges
Betriebssystem eingerichtet ist, gekennzeichnet durch die
folgenden Merkmale:
- - mindestens zwei Rechner, von denen jeder imstande ist, einen speziellen Prozeß auszuführen,
- - ein gemeinsamer Speicher, in den sich die mindestens zwei Rechner teilen, um ein Programm und Daten hierin zu spei chern, und
- - der gemeinsame Speicher weist einen Speicherbereich auf, um eine Rechner-Zuteilungsinformation zu speichern, die das Betriebssystem veranlaßt, es dem speziellen Prozeß zu gestatten, von einem speziellen Rechner ausgeführt zu werden, der aus den mindestens zwei Rechnern ausgewählt ist.
23. Mehrfach-Rechner, der zur Kontrolle durch ein einziges
Betriebssystem eingerichtet ist, gekennzeichnet durch die fol
genden Merkmale:
- - eine Anzahl von Rechnern,
- - ein gemeinsamer Speicher, in den sich die Anzahl von Rechnern teilt, um ein Programm und Daten hierin zu speichern, und
- - der gemeinsame Speicher enthält eine Prozeßführungs tabelle, um den Status eines jeden der Prozesse beizubehalten, und die Prozeßführungstabelle weist einen Speicherbereich auf, um eine Rechner-Zuteilungsinformation zu speichern, die für jeden der Prozesse einen oder mehrere Rechner bezeichnet, die aus der Anzahl von Rechnern ausgewählt sind, welchen es ge stattet ist, jeden der Prozesse durchzuführen.
24. Mehrfach-Rechner nach Anspruch 23, dadurch gekennzeich
net, daß die Prozeßführungstabelle ferner einen Speicherbe
reich aufweist, um Kontrollbetriebsarten zu speichern, die
eine dynamische Änderung der Rechner-Zuteilungsinformation für
jeden Prozeß kontrollieren.
25. Mehrfach-Rechner nach Anspruch 24, dadurch gekennzeich
net, daß die Kontrollbetriebsarten eine erste Betriebsart auf
weisen, in welcher der Prozeß durch jeden Rechner ausgeführt
werden kann und ein Code für allgemeinen Zweck zum Bestimmen
eines jeden Rechners als die genannte Rechner-Zuteilungsinfor
mation eingestellt ist, und eine zweite Betriebsart, in wel
cher der Prozeß nur von einem speziellen Rechner während eines
Zeitraums vom Beginn bis zum Ende der Prozeßdurchführung
durchgeführt werden kann, wobei der spezielle Rechner als
Rechner-Zuteilungsinformation vor dem Beginn der Ausführung
des Prozesses durch den speziellen Rechner bezeichnet wird und
die Rechner-Zuteilungsinformation in den Code für den allge
meinen Zweck rückumgewandelt wird, nachdem die Ausführung des
Prozesses beendet ist.
26. Mehrfach-Rechner nach Anspruch 25, dadurch gekennzeich
net, daß die Kontrollbetriebsarten eine dritte Kontrollbe
triebsart umfassen, in der die Rechner-Zuteilungsinformation
zur Bezeichnung des speziellen Rechners nach der Erzeugung des
Prozesses nicht geändert wird.
27. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er
in Anspruch 23 beschrieben ist, gekennzeichnet durch den fol
genden Schritt:
- - Einstellen derselben Rechner-Zuteilungsinformation für eine Gruppe von Prozessen, die eine Exklusivkontrolle erfor dern, für den gemeinsamen Speicher so daß die Gruppe von Prozessen von demselben Rechner ausgeführt wird.
28. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er
in Anspruch 23 bezeichnet ist, gekennzeichnet durch den
folgenden Schritt:
- - Einstellen der unterschiedlichen Rechner-Zuteilungs information für zwei Gruppen von Prozessen, die höhere und niedrigere Signifikanz aufweisen, so daß beide Gruppen von Prozessen auf den unterschiedlichen Rechnern ausgeführt wer den.
29. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er
in Anspruch 25 bezeichnet ist, gekennzeichnet durch den
folgenden Schritt:
- - Einstellen der zweiten Steuerbetriebsart auf eine sol che Weise, daß die Änderung des ausführenden Rechners mitten innerhalb der Ausführung eines einzigen Prozesses verhindert wird.
30. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er
in Anspruch 26 bezeichnet ist, gekennzeichnet durch den
folgenden Schritt:
- - Einstellen der dritten Kontrollbetriebsart für eine Gruppe von Prozessen, die eine Exklusivkontrolle erfordern, für den gemeinsamen Speicher, so daß die Gruppe von Prozessen auf demselben Rechner ausgeführt wird.
31. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er
in Anspruch 26 bezeichnet ist, gekennzeichnet durch die fol
genden Schritte:
- - Klassifizieren der Prozesse in zwei Gruppen von Pro zessen mit höherer und niedrigerer Signifikanz,
- - Einstellen der dritten Kontrollbetriebsart für beide Gruppen von Prozessen, und
- - Einstellen der unterschiedlichen Rechner-Zuteilungs information für beide Gruppen von Prozessen, so daß sie auf unterschiedlichen Rechnern ausgeführt wird.
32. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
eine Anzahl von Rechnern aufweist, von denen mindestens zwei
unterschiedliche Ausbildungen aufweisen, sowie einen Haupt
speicher, der von jedem der Rechner her zugänglich ist, wobei
die Rechner und der Hauptspeicher über eine gemeinsame Sammel
leitung verbunden sind, gekennzeichnet durch die folgenden
Schritte:
- - Versehen eines jeden Rechners mit einer Planungsein richtung für den Rechner sowie einer Erkennungseinrichtung, um einen Identifizierer zu erkennen, der einen Typ eines Rechners darstellt,
- - Einspeichern einer Wartereihe zum Anordnen von Pro zessen, die zur Ausführung anstehen, im Hauptspeicher,
- - Versehen eines jeden der Prozesse mit einer Prozeß tabelle, die einen Merker über die Ausführbarkeit/Nicht-Aus führbarkeit aufweist, um den Typ eines Rechners zu bezeichnen, der imstande ist, den Prozeß durchzuführen,
- - Betreiben der Planungseinrichtung eines Rechners, wenn der Rechner eine Prozeßplanung hierfür benötigt,
- - aufeinanderfolgendes Ablesen der Prozesse, die in der Wartereihe des Hauptspeichers angeordnet sind,
- - Vergleichen des Identifizierers des Prozessors mit dem Merker über die Ausführbarkeit/Nicht-Ausführbarkeit des abge lesenen Prozesses, und
- - Bestimmen des Prozesses, dem es als ersten durch den Rechner entsprechend dem Vergleich gestattet ist, als ein Prozeß für die Ausführung ausgeführt zu werden.
33. Prozeß-Planungsverfahren nach Anspruch 32, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei cher statt des Hauptspeichers,
- - Errichten eines Netzwerks zur Verbindung der Rechner statt der gemeinsamen Sammelleitung,
- - Speichern der Wartereihe im örtlichen Speicher eines der Rechner, der als übergeordneter Rechner bezeichnet ist, und
- - Schaffen eines Zugangs zur Wartereihe von den anderen, nicht-übergeordneten Rechnern her über das Netzwerk.
34. Prozeß-Planungsverfahren nach Anspruch 32, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei cher statt des Hauptspeichers,
- - Einrichten eines Netzwerks zur Verbindung der Rechner statt der gemeinsamen Sammelleitung,
- - Einspeichern der Reihe in die örtlichen Speicher aller Rechner, und
- - die Vornahme einer Aktualisierung der Wartereihe für alle örtlichen Speicher über das Netzwerk, wenn eine solche Aktualisierung der Wartereihe angefordert wird.
35. Prozeß-Planungsverfahren nach Anspruch 32, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei cher statt des Hauptspeichers,
- - Einrichten eines Netzwerks zum Verbinden der Rechner statt der gemeinsamen Verbindungs-Sammelleitung,
- - Versehen eines jeden Rechners mit einer Adressen-Um wandlungseinrichtung zur Zuordnung der Adressen zwischen phy sikalischen und logischen in allen örtlichen Speichern, so daß ein virtueller Signalspeicher gebildet wird, und
- - Benutzen des virtuellen Speichers als gemeinsamen Spei cher für alle die Rechner.
36. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
eine Anzahl von Rechnern aufweist, von denen mindestens zwei
unterschiedliche Ausbildungen aufweisen, sowie einen Haupt
speicher, der von jedem der Rechner her zugänglich ist, wobei
die Rechner und der Hauptspeicher über eine gemeinsame Sam
melleitung verbunden sind, gekennzeichnet durch die folgenden
Schritte:
- - Versehen einiger der Rechner mit einer Planungseinrich tung,
- - Speichern einer Wartereihe zur Anordnung von Prozessen, die zur Ausführung anstehen, und einer Identifiziererliste zur Anzeige des Typs eines jeden Prozesses im gemeinsamen Spei cher,
- - Versehen eines jeden der Prozesse mit einer Prozeß tabelle, die einen Merker für die Ausführbarkeit/Nicht-Aus führbarkeit aufweist, um den Typ eines Rechners zu bezeichnen, der imstande ist, den Prozeß auszuführen,
- - Betreiben eines der Rechner, der die Planungseinrich tung aufweist, wenn dort das Erfordernis für irgendeinen Rechner vorliegt, um die Planung vorzunehmen,
- - Unterbrechen des Prozesses, wenn er gerade vom genann ten einen Rechner durchgeführt wird, und Aktivieren der Pla nungseinrichtung,
- - aufeinanderfolgendes Ablesen der Prozesses, die in der Wartereihe des Hauptspeichers angeordnet sind,
- - Vergleichen des Merkers für die Ausführbarkeit/Nicht- Ausführbarkeit der abgelesenen Prozesse mit dem Identifizie rer, der ebenfalls von der Identifiziererliste jenes Rechners abgelesen wird, der die Planung erfordert, und
- - Bestimmen jenes Prozesses, dem es als erstem gestattet ist, durchgeführt zu werden, entsprechend der Vergleichung, als Prozeß für die Durchführung.
37. Prozeß-Planungsverfahren nach Anspruch 36, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei chers statt des Hauptspeichers,
- - Einrichten eines Netzwerks zum Anschließen der Rechner statt der gemeinsamen Verbindungsleitung,
- - Abspeichern der Wartereihe im örtlichen Speicher eines der Rechner, der als übergeordneter Rechner bezeichnet ist, und
- - Herstellen eines Zugangs zur Wartereihe von allen nicht-übergeordneten Rechnern her über das Netzwerk.
38. Prozeß-Planungsverfahren nach Anspruch 36, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei cher statt des Hauptspeichers,
- - Einrichten eines Netzwerks zum Anschließen der Rechner anstelle der gemeinsamen Verbindungsleitung,
- - Abspeichern der Wartereihe in den örtlichen Speichern aller Rechner, und
- - Vornehmen einer Aktualisierung der Wartereihe für alle örtlichen Speicher über das Netzwerk, wenn eine solche Aktua lisierung der Wartereihe gefordert wird.
39. Prozeß-Planungsverfahren nach Anspruch 36, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden der Rechner mit einem örtlichen Speicher statt des Hauptspeichers,
- - Einrichten eines Netzwerks zum Verbinden der Rechner statt der gemeinsamen Sammelleitung,
- - Versehen eines jeden Rechners mit einer Adressen-Um wandlungseinrichtung, um die Adressen zwischen physikalischen und logischen Räumen in allen örtlichen Speichern so in Zu ordnung zu bringen, daß ein einziger virtueller Speicher ge bildet wird, und
- - Benutzen des virtuellen Speichers als gemeinsamen Speicher für alle Rechner.
40. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
mehrere Rechner aufweist, von denen mindestens zwei unter
schiedliche Ausbildungen aufweisen, sowie einen Hauptspeicher,
der von jedem der Rechner her zugänglich ist, wobei die Rech
ner und der Hauptspeicher über eine gemeinsame Sammelleitung
verbunden sind, gekennzeichnet durch die folgenden Schritte:
- - Versehen eines jeden der Rechner mit einer Planungs einrichtung für den Rechner, sowie einer Erkennungseinrich tung, um einen Typ des Rechners zu erkennen,
- - Abspeichern einer Wartereihe zum Anordnen der Prozesse, die für die Durchführung anstehen, im Hauptspeicher,
- - Versehen eines jeden der Prozesse mit einer Prozeß tabelle, die eine Vorrangtabelle zum Bezeichnen des Vorranges für einen jeden Typ des Rechners beim Durchführen des Prozesses umfaßt,
- - Betreiben der Planungseinrichtung des Rechners, wenn das Erfordernis für irgendeinen Rechner vorliegt, eine Planung vorzunehmen,
- - aufeinanderfolgendes Ablesen der Prozesse, die in der Wartereihe des Hauptspeichers angeordnet sind,
- - Auswählen eines Prozesses, der den höchsten Vorrang in Bezug auf den Identifizierer des Speichers aufweist, unter Rückgriff auf die Vorrangtabelle des Prozesses, und
- - Bestimmen des somit ausgewählten Prozesses als einen Prozeß für die Ausführung.
41. Prozeß-Planungsverfahren nach Anspruch 40, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei cher statt des Hauptspeichers,
- - Einrichten eines Netzwerks zum Anschließen der Rechner statt der gemeinsamen Verbindungsleitung,
- - Einspeichern der Wartereihe im örtlichen Speicher eines der Rechner, der als übergeordneter Rechner bezeichnet ist, und
- - Herstellen eines Zugangs zur Wartereihe von den nicht übergeordneten Rechnern über das Netzwerk.
42. Prozeß-Planungsverfahren nach Anspruch 40, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei cher statt des gemeinsamen Speichers,
- - Einrichten eines Netzwerks zum Anschließen der Rechner statt der gemeinsamen Verbindungsleitung,
- - Abspeichern der Wartereihe in den örtlichen Speichern aller Rechner, und
- - Vornehmen einer Aktualisierung der Wartereihe für alle örtlichen Speicher über das Netzwerk, wenn eine solche Aktua lisierung der Wartereihe gefordert wird.
43. Prozeß-Planungsverfahren nach Anspruch 40, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden der Rechner mit einem örtlichen Speicher anstelle des Hauptspeichers,
- - Einrichten eines Netzwerks zum Anschluß der Rechner statt der gemeinsamen Sammelleitung,
- - Versehen eines jeden Rechners mit einer Adressen-Um wandlungseinrichtung, um die Adressen zwischen physikalischen und logischen Räumen in allen örtlichen Speichern in Zuordnung zu bringen, so daß ein einziger virtueller Speicher gebildet wird, und
- - Bestimmen des virtuellen Speichers als gemeinsamen Speicher für alle Rechner.
44. Prozeß-Planungsverfahren nach Anspruch 40, ferner gekenn
zeichnet durch den folgenden Schritt:
- - Eingeben eines Werts, der anzeigt, daß der Prozeß un ausführbar ist, in die Vorrangtabelle, so daß der Prozeß nicht einer solchen Art von Rechner zugeteilt wird, der dieser Wert zugeteilt ist.
45. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der
eine Anzahl von Rechnern aufweist, von denen mindestens zwei
unterschiedliche Ausbildung aufweisen, sowie einen Hauptspei
cher, der von jedem der Rechner her zugänglich ist, wobei der
Rechner und der Hauptspeicher über eine gemeinsame Sammellei
tung verbunden sind, gekennzeichnet durch die folgenden
Schritte:
- - Versehen einiger der Rechner mit einer Planungseinrich tung,
- - Speichern einer Wartereihe zur Anordnung von Prozessen, die für die Durchführung anstehen, und einer Identifizierer tabelle zum Anzeigen der Rechnertypen im Hauptspeicher,
- - Versehen eines jeden der Prozesse mit einer Prozeß tabelle, die eine Vorrangtabelle zum Bezeichnen des Vorranges für jeden Rechnertyp beim Durchführen der Prozesse umfaßt,
- - Betreiben eines der Rechner, der die Planungseinrich tung aufweist, wenn ein Erfordernis für irgendeinen Rechner vorliegt, eine Planung vorzunehmen,
- - Unterbrechen des Prozesses, wenn er gerade vom einen Rechner ausgeführt ist, und Aktivieren der Planungseinrich tung,
- - aufeinanderfolgendes Ablesen der Prozesse, die in der Wartereihe des Hauptspeichers abgespeichert sind,
- - Auswählen eines Prozesses, der den höchsten Vorrang relativ zur Identifizierungseinrichtung jenes Rechners auf weist, der die Planung anfordert, unter Rückgriff auf die Vor rangtabelle des Prozesses, und
- - Bestimmen des somit ausgewählten Prozesses als Prozeß für die Durchführung.
46. Prozeß-Planungsverfahren nach Anspruch 45, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei cher statt des Hauptspeichers,
- - Einrichten eines Netzwerks zum Anschließen der Rechner statt der gemeinsamen Sammelleitung,
- - Speichern der Wartereihe im örtlichen Speicher eines der Rechner, der als übergeordneter Rechner bestimmt ist, und
- - Herstellen eines Zugangs zur Wartereihe von den nicht übergeordneten Rechnern her über das Netzwerk.
47. Prozeß-Planungsverfahren nach Anspruch 45, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Speicher statt des Hauptspeichers,
- - Einrichten eines Netzwerks zum Anschließen der Rechner anstelle der gemeinsamen Verbindungsleitung,
- - Speichern der Wartereihe in den örtlichen Speichern aller Rechner, und
- - Herstellen einer Aktualisierung der Wartereihe für alle örtlichen Speicher über das Netzwerk, wenn eine solche Aktua lisierung der Wartereihe gefordert wird.
48. Prozeß-Planungsverfahren nach Anspruch 45, ferner gekenn
zeichnet durch die folgenden Schritte:
- - Versehen eines jeden Rechners mit einem örtlichen Spei cher statt des Hauptspeichers,
- - Einrichten eines Netzwerks zum Anschließen der Rechner anstelle der gemeinsamen Verbindungsleitung,
- - Versehen eines jeden Rechners mit einer Adressen-Um wandlungseinrichtung, um die Adressen zwischen physikalischen und logischen Räumen zwischen allen örtlichen Speichern so in Zuordnung zu bringen, daß ein einziger virtueller Speicher gebildet ist, und
- - Bestimmen des virtuellen Speichers als gemeinsamen Speicher für alle Rechner.
49. Prozeß-Planungsverfahren nach Anspruch 45, ferner gekenn
zeichnet durch den folgenden Schritt:
- - Eingeben eines Werts, der anzeigt, daß der Prozeß un ausführbar ist, in die Vorrangtabelle, so daß der Prozeß nicht einem solchen Rechnertyp zugeteilt wird, welchem der Wert zu geteilt ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1060092A JP3019317B2 (ja) | 1989-03-13 | 1989-03-13 | プロセススケジューリング方法 |
JP6221689A JPH02242434A (ja) | 1989-03-16 | 1989-03-16 | タスクのスケジューリング方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4007998A1 true DE4007998A1 (de) | 1990-09-20 |
Family
ID=26401162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4007998A Withdrawn DE4007998A1 (de) | 1989-03-13 | 1990-03-13 | Prozess-planungsverfahren und mehrfach-rechner |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4007998A1 (de) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0521265A2 (de) * | 1991-07-02 | 1993-01-07 | International Business Machines Corporation | Paralleles Datenverarbeitungssystem |
DE4414171A1 (de) * | 1994-04-22 | 1995-10-26 | Paul Bantzer | Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk |
EP0756233A1 (de) * | 1992-10-30 | 1997-01-29 | Tao Group Limited | Datenverarbeitung und Betriebssystem mit dynamischer Belastungsteilung in einem Netzwerk von verknüpften Prozessoren |
WO2001014970A2 (de) * | 1999-08-25 | 2001-03-01 | Infineon Technologies Ag | Eventscheduler und verfahren zur zerlegung von ereignisorientiertem programmcode |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0273742A2 (de) * | 1986-12-26 | 1988-07-06 | Kabushiki Kaisha Toshiba | System und Verfahren für die Zuweisungsbestimmung zwischen Auftragen und Betriebsmittel |
-
1990
- 1990-03-13 DE DE4007998A patent/DE4007998A1/de not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0273742A2 (de) * | 1986-12-26 | 1988-07-06 | Kabushiki Kaisha Toshiba | System und Verfahren für die Zuweisungsbestimmung zwischen Auftragen und Betriebsmittel |
Non-Patent Citations (3)
Title |
---|
JP 62-123 552 A. In: Patents Abstr. of Japan, 1987, Nr. 134 (P634) * |
JP 62-123 553 A. In: Patents Abstr. of Japan, 1987, Nr. 134 (P634) * |
JP 62-208 157 A. In: Patents Abstr. of Japan, 1987, Nr. 42 (P672) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0521265A2 (de) * | 1991-07-02 | 1993-01-07 | International Business Machines Corporation | Paralleles Datenverarbeitungssystem |
EP0521265A3 (en) * | 1991-07-02 | 1993-09-29 | International Business Machines Corporation | Parallel processing system |
EP0756233A1 (de) * | 1992-10-30 | 1997-01-29 | Tao Group Limited | Datenverarbeitung und Betriebssystem mit dynamischer Belastungsteilung in einem Netzwerk von verknüpften Prozessoren |
EP0756232A1 (de) * | 1992-10-30 | 1997-01-29 | Tao Group Limited | Datenverarbeitung und Betriebssystem mit dynamischer Bindung über zwei oder mehrere Prozessoren |
DE4414171A1 (de) * | 1994-04-22 | 1995-10-26 | Paul Bantzer | Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk |
WO2001014970A2 (de) * | 1999-08-25 | 2001-03-01 | Infineon Technologies Ag | Eventscheduler und verfahren zur zerlegung von ereignisorientiertem programmcode |
WO2001014970A3 (de) * | 1999-08-25 | 2002-08-01 | Infineon Technologies Ag | Eventscheduler und verfahren zur zerlegung von ereignisorientiertem programmcode |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60034170T2 (de) | Protokoll zum Koordinieren der Verteilung von gemeinsamem Speicher | |
DE3611223C2 (de) | ||
DE69229909T2 (de) | Multimediarechnerbetriebssystem und -verfahren | |
DE69229365T2 (de) | Verfahren und Anordnung zur kostenbezogenen heuristischen Befehlsreihenfolgeplanung | |
DE69028061T2 (de) | Bearbeitung von Ablaufdaten paralleler Verarbeitung | |
DE69529365T2 (de) | Brauchersteuerbare Gleichzeitigkeitsfunktionalität | |
DE68927375T2 (de) | Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem | |
DE68925646T2 (de) | Pipeline-multiprozessorsystem | |
DE10110504B4 (de) | Verfahren und Computersystem zur Verwaltung von Threads | |
DE69811790T2 (de) | Ableitung von Prozessmodellen aus Rechnungsprüfvorgängen für Systeme zur Verwaltung von Arbeitsflüssen | |
EP0771444B1 (de) | Verfahren zur steuerung von technischen vorgängen oder prozessen | |
DE60223394T2 (de) | Verfahren und vorrichtung zum einteilen von anforderungen für einen dynamischen direktzugriffsspeicherbaustein | |
DE69803860T2 (de) | Direktspeicherzugriffseinheit | |
DE69715328T2 (de) | System und Verfahren zur Parallelisierung der Durchführung von Speichertransaktionen mittels mehreren Speichermodellen | |
DE60224432T2 (de) | Dynamische und automatische speicherverwaltung | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
EP1146432A2 (de) | Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit | |
DE1499288B2 (de) | Datenverarbeitungsanlage | |
DE4011745A1 (de) | Taskverfolgungseinrichtung | |
DE102012210895A1 (de) | Vorhersage der ungeordneten Parallelverarbeitung der Befehle von Threads in einem Multithread-Prozessor | |
DE102012206301A1 (de) | Anzeigen einer Vielzahl von Kalendereinträgen | |
DE3886756T2 (de) | Betriebsmittelzugriff für Multiprozessorrechnersystem. | |
DE2054835A1 (de) | Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor | |
DE102016007651B4 (de) | Numerische Steuerung mit Funktion zur automatischen Auswahl eines Speicherungsziels für ein Bearbeitungsprogramm | |
DE69202688T2 (de) | Verfahren zum Testen und gegebenenfalls zur Bewertung von Primitiven eines Echtzeitsteuerprogrammes. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8139 | Disposal/non-payment of the annual fee |