DE19513922A1 - Verteiltes Computersystem - Google Patents
Verteiltes ComputersystemInfo
- Publication number
- DE19513922A1 DE19513922A1 DE19513922A DE19513922A DE19513922A1 DE 19513922 A1 DE19513922 A1 DE 19513922A1 DE 19513922 A DE19513922 A DE 19513922A DE 19513922 A DE19513922 A DE 19513922A DE 19513922 A1 DE19513922 A1 DE 19513922A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- processing
- computer
- priority value
- value
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Description
Die Erfindung betrifft ein verteiltes Computersystem mit
mehreren zu einem Netzwerk verschalteten Computern, um ge
meinsam mehrere Programme abzuarbeiten, und insbesondere be
trifft die Erfindung die Konfiguration und das Betriebsver
fahren eines derartigen verteilten Computersystems, bei dem
Prioritätsmaßnahmen verwendet werden, um Echtzeiteigenschaf
ten zu realisieren.
Um bei einem herkömmlichen Computersystem, das nur aus einem
einzelnen Computer besteht (wozu auch Computer mit mehreren
Prozessoren gehören) Echtzeiteigenschaften zu schaffen, wur
de eine Vorgehensweise verwendet, gemäß der die Reihenfolge
der abzuarbeitenden Programme auf Grundlage einer Priori
tätsreihenfolge der Programme gesteuert wird. Ein Beispiel
für eine derartige Steuerung der Verarbeitungsreihenfolge
unter Verwendung einer Prioritätsreihenfolge ist in "Opera
ting Systems - Design and Implementation" von A. S. Tanen
baum, Prentice-Hall, Inc. S. 82-84 (1987) beschrieben.
Auch beschreibt z. B. die Schrift JP-A-2-113362 ein Steuer
schema, bei dem ein Prioritätswert zu jeder Meldung hinzuge
fügt wird, wenn eine solche zwischen Verarbeitungsknoten
innerhalb eines verteilten Rechnersystems übertragen wird,
damit diese Meldungen in der Prioritätsreihenfolge verarbei
tet werden, ausgehend mit der Meldung höchster Priorität
(dieses System wird nachfolgend als "Stand der Technik 1"
bezeichnet).
Ein anderes herkömmliches Schema ist in der Schrift JP-A-5-35701
beschrieben. Dieses Schema spezifiziert die tolerier
bare Zeit für jede anhängige Verarbeitung, wenn eine Verar
beitungsanforderung in einem verteilten Computersystem mit
mehreren Prozessoren ausgegeben wird, es untersucht die ge
plante Verarbeitungsanhängigkeitszeit jedes Prozessors, und
es ordnet die Verarbeitungsanforderung einem Prozessor zu,
dessen geplante Verarbeitungsanhängigkeitszeit kürzer als
die tolerierbare Verarbeitungsanhängigkeitszeit ist. Wenn
kein Prozessor der Bedingung der tolerierbaren Verarbei
tungsanhängigkeitszeit genügt, wird die Verarbeitungsanfor
derung demjenigen Prozessor zugeordnet, der die kürzeste ge
plante Verarbeitungsanhängigkeitszeit aufweist. Verarbei
tungsanforderungen, die jeweiligen Prozessoren zugeordnet
sind, werden grundsätzlich von der ältesten Anforderung her
abgearbeitet (dieses System wird nachfolgend als "Stand der
Technik 2" bezeichnet).
Ferner ist es z. B. in der Schrift JP-A-5-35701 beschrieben,
daß dann, wenn Verarbeitungsanforderungen ausgegeben werden,
zu jeder solchen Anforderung eine tolerierbare Verarbei
tungsanhängigkeitszeit wie auch ein Prioritätswert hinzuge
fügt werden, ähnlich wie beim Stand der Technik 1, damit die
Verarbeitungsanforderungen nach der Zuordnung zu einem Pro
zessor vom jeweilig zugeordneten Prozessor in der Reihenfol
ge der Prioritätswerte abgearbeitet werden (dieses Verfahren
wird nachfolgend als "Stand der Technik 3" bezeichnet).
Bei einem verteilten Computersystem, in dem mehrere Compu
ter durch jeweilige ihnen zugeordnete Betriebssysteme ver
waltet werden, wird die Priorität der Programme in jedem der
Computer gesondert verwaltet. Daher kann die Priorität von
Programmen, wie sie von den jeweiligen Computern auszuführen
sind, nicht gleichmäßig im gesamten verteilten Computersy
stem verwaltet werden. Insbesondere in einem verteilten Com
putersystem mit Computern, die sich hinsichtlich der Funk
tionsfähigkeit und der Auslastung unterscheiden, kann sich
die Dringlichkeit, wie sie durch die Priorität in einem Com
puter repräsentiert wird, von der Dringlichkeit unterschei
den, wie sie von der Priorität in einem anderen Computer re
präsentiert wird. Genauer gesagt, kann dann, wenn ein Compu
ter mit hoher Leistungsfähigkeit mit einem solchen mit ge
ringer Leistungsfähigkeit verglichen wird, der erstere eine
viel schnellere Verarbeitung als der letztere ausführen, und
zwar selbst dann, wenn sie dieselbe Verarbeitung ausführen,
die einen auf null gesetzten Prioritätswert hat. Auf ähnli
che Weise unterscheiden sich bei einem stark ausgelasteten
Computer und einem wenig ausgelasteten Computer die Bedeu
tungen hinsichtlich ihrer jeweiligen Prioritätswerte vonein
ander.
Darüber hinaus können sich bei einem verteilten Computersy
stem mit mehreren verschiedenen Computern die Prioritäts
schemata selbst von einem Computer zum nächsten verschieden
sein. Z.B. ist ein Computer mit einem Prioritätswertebereich
von 0 bis 255 nicht mit einem Computer mit einem Prioritäts
wertebereich von 0 bis 127 hinsichtlich der Werte kompati
bel, die den Prioritätsrängen zugeordnet werden. Auf ähnli
che Weise kann in einem Computer, der den Prioritätswert 0
als den höchsten Rang ansieht, nicht derselbe Wert zugeord
net werden wie in einem Computer, der den Prioritätswert 255
als höchsten Rang ansieht.
Der Stand der Technik 1 überträgt einfach eine Meldung zu
sammen mit einem Prioritätswert, ohne die Unterschiede hin
sichtlich des Funktionsvermögens, der Auslastung und des
Typs verschiedener Computer in einem verteilten Computersy
stem zu berücksichtigen. Wenn eine Meldung an einen Computer
mit geringem Funktionsvermögen oder an einen stark ausgela
steten Computer geliefert wird, ist es wahrscheinlich, daß
die Verarbeitung nicht mit gewünschter Geschwindigkeit aus
geführt wird, was möglicherweise dazu führt, daß die Echt
zeiteigenschaften nicht aufrechterhalten werden können.
Ferner kann beim Stand der Technik 1, dann, wenn mehrere
Computer dazu aufgefordert werden, Programme auszuführen,
ein umgekehrter Effekt auftreten, d. h., daß eine Anforderung
mit niedrigerem Prioritätsrang schneller abgeschlossen wird
als eine Anforderung mit höherem Prioritätsrang. Es sei z. B.
angenommen, daß eine Verarbeitung A mit dem Prioritätswert 5
an einen Computer A gegeben wird, während eine Verarbeitung
B mit dem Prioritätswert 1 an einen Computer B gegeben wird
(es sei auch angenommen, daß ein höherer Prioritätsrang
durch einen kleineren Prioritätswert repräsentiert ist). In
diesem Fall sollte die Verarbeitung B schneller abgeschlos
sen werden als die Verarbeitung A, um dem ursprünglichen
Zweck zu genügen. Wenn jedoch das Funktionsvermögen des
Computers B schlechter als das des Computers A ist oder wenn
der Computer B stärker ausgelastet ist als der Computer A,
ist es möglich, daß die Verarbeitung A mit geringerer Prio
rität schneller abgeschlossen wird als die Verarbeitung B
mit höherer Priorität.
Ferner führt beim Stand der Technik 1 ein Computer, der eine
große Anzahl von Anforderungen mit höheren Prioritätsrängen
empfangen hat, zu Schwierigkeiten beim Sicherstellen von
Echtzeiteigenschaften, da keine Situation berücksichtigt
ist, bei der Verarbeitungsanforderungen auf einen einzelnen
Computer konzentriert sind, insbesondere eine Situation, bei
der Verarbeitungsanforderungen mit höheren Prioritätsrängen
auf einen einzelnen Computer konzentriert sind.
Der Stand der Technik 2 kann dazu verwendet werden, Echt
zeiteigenschaften in gewissem Ausmaß hinsichtlich einzelner
Verarbeitungsanforderungen zu gewährleisten, vorausgesetzt,
daß die geplante Verarbeitungsanhängigkeitszeit für die je
weiligen Prozessoren korrekt berechnet werden kann. Jedoch
kann dieses System keine Zeitgrenzebedingung hinsichtlich
einer Verarbeitungsanforderung mit kurzer tolerierbarer Ver
arbeitungsanhängigkeitszeit, die neu ausgegeben wird, nach
dem eine bestimmte Anzahl von Verarbeitungsanforderungen be
reits jeweiligen Prozessoren zugeordnet sind, erfüllen. Z.B.
können Situationen auftreten, bei denen ein Prozessor dazu
in der Lage war, neu ausgegebene Verarbeitungsanforderungen
vor Verarbeitungsanforderungen mit langen tolerierbaren Ver
arbeitungsanhängigkeitszeiten, wie sie bereits Prozessoren
zugeordnet waren, zu verarbeiten. Dabei könnte die Zeit
grenzebedingung für alle Verarbeitungsanforderungen erfüllt
sein, jedoch ist beim System gemäß dem Stand der Technik 2,
das Verarbeitungsanforderungen der Reihe nach zuordnet, die
Zeitgrenzebedingung gelegentlich für neu ausgegebene Verar
beitungsanforderungen nicht erfüllt. Anders gesagt, kann der
Stand der Technik 2 eine hochdringliche Verarbeitungsanfor
derung, die bei relativ stark ausgelasteter Situation ausge
geben wird, nicht unmittelbar verarbeiten. Demgemäß hat der
Stand der Technik 2 ein Problem dahingehend, daß strenge
Echtzeiteigenschaften nicht gewährleistet sind.
Der Stand der Technik 3 ist andererseits ein System, das
folgendes umfaßt: (1) Auswählen eines Prozessors, der einer
tolerierbaren Verarbeitungsanhängigkeitszeit genügt, wenn
einem Prozessor eine Verarbeitungsanforderung zugeordnet
wird; und (2) Ausführen von Verarbeitungsanforderungen in
der Reihenfolge der Prioritätswerte, wie sie zu den jeweili
gen Anforderungen in jedem Prozessor hinzugefügt sind. Beim
Stand der Technik 3 kann der Nachteil des Stands der Technik
2 in gewissem Ausmaß dadurch überwunden werden, daß einer
neu ausgegebenen Verarbeitungsanforderung mit kurzer tole
rierbarer Verarbeitungsanhängigkeitszeit ein hoher Priori
tätsrang zugeordnet wird. Da dieses System jedoch vorzugs
weise neu zugeordnete Verarbeitungsanforderungen mit hohem
Prioritätsrang verarbeitet, kann es unter Umständen der to
lerierbaren Verarbeitungsanhängigkeitszeit einer bereits zu
geordneten Verarbeitungsanforderung mit niedrigem Priori
tätsrang nicht genügen, wobei der niedrige Prioritätsrang
deswegen festgelegt wurde, da angenommen wurde, die tole
rierbare Verarbeitungsanhängigkeitszeit würde erfüllt. Es
sei z. B. eine Situation angenommen, bei der eine Verarbei
tungsanforderung A mit einer auf eine Minute gesetzten to
lerierbaren Verarbeitungsanhängigkeitszeit und einem Prio
ritätswert 5 einem Prozessor A zugeordnet wurde, wobei dies
erfolgte, da angenommen wurde, daß die tolerierbare Verar
beitungsanhängigkeitszeit erfüllt wurde, und daß eine Verar
beitungsanforderung B mit einer auf 30 Sekunden festgesetz
ten tolerierbaren Verarbeitungsanhängigkeitszeit und mit dem
Prioritätswert 1 dem Prozessor A neu zugeordnet wird. In
diesem Fall wird die Verarbeitungsanforderung B vor der Ver
arbeitungsanforderung A verarbeitet. Diese bevorzugte Aus
führung kann dazu führen, daß die tolerierbare Verarbei
tungsanhängigkeitszeit für die Verarbeitungsanforderung A,
die bereits demselben Prozessor zugeordnet war, nicht er
füllt werden kann, obwohl auch diese tolerierbare Verarbei
tungsanhängigkeitszeit sicher erfüllt werden sollte.
Auch kann beim Stand der Technik 3 dann, wenn verschiedene
Verarbeitungsanforderungen mit derselben tolerierbaren Ver
arbeitungsanhängigkeitszeit jedoch verschiedenen Prioritäts
werten mehreren Prozessoren zugeordnet werden, ein umgekehr
ter Effekt, ähnlich wie beim Stand der Technik 1, wegen ver
schiedener Auslastungen und Funktionsfähigkeiten der zuge
ordneten Prozessoren auftreten, daß also eine Verarbeitungs
anforderung mit niedrigerem Prioritätsrang schneller abge
schlossen wird als eine Verarbeitungsanforderung mit höherem
Prioritätsrang.
Der Erfindung liegt die Aufgabe zugrunde, ein verteiltes
Computersystem zu schaffen, in dem Echtheitseigenschaften
strenger eingehalten werden als bei bisherigen derartigen
Systemen.
Es ist eine andere Aufgabe der Erfindung, ein verteiltes
Computersystem zu schaffen, das Computer enthält, die sich
möglicherweise hinsichtlich des Funktionsvermögens, der Aus
lastung und des Typs unterscheiden, und das dazu in der Lage
ist, Echtzeiteigenschaften strenger dadurch einzuhalten, daß
örtliche Prioritätsschemata, wie sie in den jeweiligen Com
putern vorliegen, gleichmäßig verwaltet werden.
Die Erfindung verwendet eines der folgenden zwei Konzepte,
um die örtlichen Prioritätsschemata gleichmäßig zu verwal
ten, die in den verschiedenen Computern vorliegen, die zum
verteilten Computersystem gehören:
- (1) Verarbeitungsdringlichkeit: dies ist ein gemeinsamer Re lativwert, wie er im gesamten System dazu verwendet wird, anzuzeigen, wie schnell eine Verarbeitung abzuschließen ist; und
- (2) Verarbeitungszeitgrenze: dies ist ein absoluter Wert, der anzeigt, wie schnell eine Verarbeitung vorzugsweise ab zuschließen ist.
Nachfolgend werden Einrichtungen für die gleichmäßige Ver
waltung der örtlichen Prioritätsschemata in den jeweiligen
Computern in einem verteilten Computersystem, wie bei der
Erfindung verwendet, getrennt für den Fall beschrieben, daß
die Verarbeitungsdringlichkeit verwendet wird, und für den
Fall, daß die Verarbeitungszeitgrenze verwendet wird.
Um die vorstehend genannten Aufgaben zu lösen, ist die Er
findung gemäß einer Erscheinungsform durch eine Prioritäts
wert-Bestimmungseinrichtung zum Bestimmen des Prioritäts
werts gekennzeichnet, wie er zum Ausführen eines Programms
geeignet ist, und zwar unter Berücksichtigung der Funktions
fähigkeit und der Auslastung jedes Computers und/oder des
Dringlichkeitswerts für die vom Computer ausgeführte Verar
beitung.
Insbesondere enthält die Prioritätswert-Bestimmungseinrich
tung die folgenden fünf Einrichtungen als Komponenten, die
zusammenwirkend miteinander arbeiten, um die Verwaltung ei
nes verteilten Computersystems in solcher Weise auszuführen,
daß die vorstehend genannten Aufgaben unter Verwendung der
Verarbeitungsdringlichkeit gelöst werden:
- (1) Prioritätswert-Umsetzeinrichtung zum Ausführen einer Um setzung zwischen einem Dringlichkeitswert und einem zugehö rigen Prioritätswert für die Verarbeitung abhängig vom Funk tionsvermögen und der Auslastung eines Computers;
- (2) Prioritätswert-Änderungseinrichtung zum Ändern des Prio ritätswerts eines Programms, wodurch die Verarbeitung mit einem Prioritätswert ausgeführt wird, wie sie von der Prio ritätswert-Umsetzeinrichtung angegeben wird;
- (3) Computerauswahleinrichtung zum Bestimmen eines Computers, der zum Ausführen des Programms geeignet ist, und zwar unter Berücksichtigung des Funktionsvermögens und der Auslastung jedes Computers und/oder des Dringlichkeitswerts der von ei nem Programm ausgeführten Verarbeitung;
- (4) Programmauswahleinrichtung, die arbeitet, wenn mehrere Programme, die denselben Vorgang ausführen, vorliegen und Verarbeitung für eines dieser Programme angefordert wird, um ein Programm mit optimalen Prioritätswert aus den mehreren Programmen auszuwählen, die denselben Vorgang ausführen, und zwar unter Berücksichtigung des Funktionsvermögens und der Auslastung jedes Computers und/oder des Dringlichkeitswerts der Verarbeitung; und
- (5) Verarbeitungsverlegungseinrichtung zum Verlegen einer neu angeforderten Verarbeitung eines Programms, wie von der Programmauswahleinrichtung angezeigt.
Um die obige Aufgabe zu lösen, ist die Erfindung gemäß einer
anderen Erscheinungsform durch eine Prioritätswert-Bestim
mungseinrichtung zum Bestimmen des Prioritätswerts, wie er
zum Ausführen eines Programms geeignet ist, gekennzeichnet,
wobei das Funktionsvermögen und die Auslastung jedes Compu
ters und/oder die Zeitgrenze und die Verarbeitungsmenge der
von einem Programm ausgeführten Verarbeitung berücksichtigt
werden.
Speziell verfügt die Prioritätswert-Bestimmungseinrichtung
über die folgenden acht Einrichtungen als Komponenten, die
zusammenwirkend miteinander so arbeiten, daß sie die Verwal
tung eines verteilten Computersystems dahingehend ermögli
chen, daß die oben genannten Aufgaben unter Verwendung der
Verarbeitungszeitgrenze gelöst werden. Es ist jedoch zu be
achten, daß nicht alle folgenden acht Einrichtungen gleich
zeitig vorhanden sein müssen:
- (1) Prioritätswert-Umsetzeinrichtung zum Ausführen einer Um setzung zwischen einem Wertesatz für eine Grenze und eine Verarbeitungsmenge für die Verarbeitung und einem Priori tätswert abhängig vom Funktionsvermögen und der Auslastung eines Computers;
- (2) Prioritätswert-Änderungseinrichtung zum Ändern des Prio ritätswerts eines Programms, das von einem Computer ausge führt wird, abhängig vom Prioritätswert, wie er von der Prioritätswert-Umsetzeinrichtung angegeben wird;
- (3) Verbindungszeit-Vorhersageeinrichtung zum Vorhersagen der Verbindungszeit mit einem anderen Computer;
- (4) Computerauswahleinrichtung zum Bestimmen eines Compu ters, wie er zum Ausführen eines Programms geeignet ist, wo bei das Funktionsvermögen und die Auslastung jedes Computers und/oder ein Wertesatz einer Zeitgrenze und einer Verarbei tungsmenge für eine Verarbeitung, wie sie von einem Programm ausgeführt wird, berücksichtigt werden;
- (5) Programmauswahleinrichtung, die dann arbeitet, wenn meh rere Programme, die denselben Vorgang ausführen, vorliegen und eine Verarbeitung durch eines dieser Programme angefor dert wird, um das Programm mit optimalem Prioritätswert aus den mehreren Programmen auszuwählen, die denselben Vorgang ausführen, wobei das Funktionsvermögen und die Auslastung jedes Computers und/oder ein Wertesatz aus einer Zeitgrenze und einer Verarbeitungsmenge für die Verarbeitung berück sichtigt werden;
- (6) Verarbeitungsverlegeeinrichtung zum Verlegen einer neu angeforderten Verarbeitung für ein Programm, wie durch die Programmauswahleinrichtung angezeigt;
- (7) Verarbeitungszeit-Vorhersageeinrichtung zum Vorhersagen einer Verarbeitungszeit, wie sie für ein Programm erforder lich ist, um die gerade ausgeführte Verarbeitung abzuschlie ßen, und zwar abhängig vom Funktionsvermögen, der Ausla stung, der Verarbeitungsmenge des Computers; und
- (8) Zeitgrenze-Einstelleinrichtung, die dann arbeitet, wenn die vorhergesagte Verarbeitungszeit nicht der für die Verar beitung auferlegten Zeitgrenze genügt, um eine Zeitgrenze neu einzustellen, ausgehend von der Zeit, die ab der Anfor derung der Verarbeitung verstrichen ist, und ausgehend von der auferlegten Zeitgrenze.
Der Vorgang, wie er von der Einrichtung zum Überwinden der
oben genannten Schwierigkeiten ausgeführt wird, wird ge
trennt für den Fall, daß die Verarbeitungsdringlichkeit ver
wendet wird, und für den Fall, daß die Verarbeitungszeit
grenze verwendet wird, beschrieben.
Die Prioritätswert-Bestimmungseinrichtung bestimmt einen
Prioritätswert, wie er dazu geeignet ist, ein Programm aus
zuführen, und zwar unter Berücksichtigung des Funktionsver
mögens und der Auslastung jedes Computers und/oder des
Dringlichkeitswerts der vom Computer ausgeführten Verarbei
tung. Dies ermöglicht es, daß die Verarbeitung im wesentli
chen mit derselben Geschwindigkeit ausgeführt wird, unab
hängig von Unterschieden des Funktionsvermögens der jeweili
gen Computer, und zwar dadurch, daß einem Programm dann ein
niedriger Prioritätswert zugeordnet wird, wenn es in einem
hochleistungsfähigen Computer abgearbeitet wird, es dagegen
einen hohen Prioritätswert erhält, wenn es in einem Computer
mit geringer Leistungsfähigkeit abgearbeitet wird. Auf ähn
liche Weise kann die Verarbeitung im wesentlichen mit der
selben Geschwindigkeit unabhängig von Unterschieden der Aus
lastung jeweiliger Computer dadurch ausgeführt werden, daß
einem stark ausgelasteten Computer hohe Prioritätswerte zu
geordnet werden und einem gering ausgelasteten Computer
niedrige Prioritätswerte zugeordnet werden. Da der Priori
tätswert in jedem Computer auf Grundlage der Verarbeitungs
dringlichkeit unter Berücksichtigung des Funktionsvermögens
und der Auslastung jedes Computers bestimmt wird, ist es
möglich, einen Umkehrungseffekt zu vermeiden, bei dem eine
Verarbeitung mit geringerem Prioritätswert früher abge
schlossen wird als eine Verarbeitung mit höherem Prioritäts
wert. Anders gesagt, können strenger eingehaltene Echtzeit
eigenschaften gewährleistet werden als dies bei bekannten
Techniken der Fall ist. Die fünf Einrichtungen, die die
Prioritätswert-Bestimmungseinrichtung bilden, verfügen je
weils über die folgenden Funktionen.
Die Prioritätswert-Umsetzeinrichtung enthält eine Priori
tätswert-Entsprechungstabelle, die für eine Umsetzung zwi
schen einem Dringlichkeitswert und einem zugehörigen Priori
tätswert für die Verarbeitung verwendet wird. Der Inhalt der
Prioritätswert-Entsprechungstabelle wird abhängig von Unter
schieden des Funktionsvermögens, der Auslastung und des Typs
von Computern verändert.
Die Prioritätswert-Veränderungseinrichtung ändert den Prio
ritätswert eines Programms abhängig vom Prioritätswert, wie
er von der Prioritätswert-Umsetzeinrichtung angegeben wird.
Diese Prioritätswert-Umsetzeinrichtung gewährleistet in Zu
sammenwirkung mit der Prioritätswert-Änderungseinrichtung,
daß Verarbeitungen mit demselben Dringlichkeitswert mit im
wesentlichen derselben Geschwindigkeit von jedem Computer
ausgeführt wird, auch wenn diese verschiedene Funktionsver
mögen und Auslastungen aufweisen.
Die Computerauswahleinrichtung nimmt auf einen Computer in
formationsbereich, der aus einer Computerfunktionsvermögen-
Informationstabelle und einer Computerauslastung-Informa
tionstabelle besteht, sie wählt einen Computer aus, dem ein
Programm mit einem speziellen Dringlichkeitswert zugeordnet
wird, um die Auslastungen der Computer im System gleichmäßig
auszulasten, und sie sorgt dafür, daß der ausgewählte Compu
ter das Programm ausführt. Die Computerfunktionsvermögen-In
formationstabelle gibt die Funktionsvermögen der jeweiligen
Computer an, während die Computerauslastung-Informationsta
belle die Auslastungen der jeweiligen Computer für jeden
Dringlichkeitswert zeigt. Wenn die Auslastung eines Compu
ters schwankt, wird dieses Schwankungsausmaß in der Compu
terauslastung-Informationstabelle wiedergegeben. Dies ver
hindert, daß sich eine Anzahl von Verarbeitungen mit hohem
Dringlichkeitswert auf einen einzelnen Computer konzen
triert, wodurch es möglich ist, in den jeweiligen Computern
strenger eingehaltene Echtzeiteigenschaften zu gewährlei
sten.
Die Programmauswahleinrichtung verwendet eine Programmort-
Datenbank, die Information zu Programmen enthält, die den
selben Vorgang ausführen, um ein Programm mit einem Dring
lichkeitswert, der mit einem vorgegebenen Dringlichkeitswert
übereinstimmt, aus einer Gruppe von Programmen auszuwählen,
die denselben Vorgang ausführen. Dann wird an das ausgewähl
te Programm eine Verarbeitungsanforderung ausgegeben. Die
Programmort-Datenbank speichert Prioritätswerte oder Dring
lichkeitswerte von Programmen, die denselben Vorgang ausfüh
ren, und auch die Kennungen der Computer, auf denen diese
Programme laufen. So ist es selbst dann möglich, wenn die
oben genannte Prioritätswert-Änderungseinrichtung nicht ver
wendet wird, mehrere Programme mit verschiedenen Dringlich
keitswerten zu erstellen, das Programm mit dem geeignetsten
Dringlichkeitswert aus diesen Programmen zur Ausführung der
Verarbeitung auf zufordern, und dafür zu sorgen, daß das auf
geforderte Programm die Verarbeitung mit gewünschter Ge
schwindigkeit ausführt.
Wenn ein gerade eine Verarbeitung ausführendes Programm dazu
aufgefordert wird, eine andere Verarbeitung auszuführen,
fragt die Verarbeitungsverlegeeinrichtung aus der Programm
auswahleinrichtung die Orte der anderen Programme ab, die
denselben Vorgang wie das angeforderte Programm ausführen,
und sie verlegt die Verarbeitungsanforderung auf ein Pro
gramm, das im Ergebnis durch die Programmauswahleinrichtung
spezifiziert wurde. So kann die neu angeforderte Verarbei
tung für das aktuell laufende Programm durch ein anderes
Programm ausgeführt werden, das die Verarbeitung mit im
wesentlichen derselben Geschwindigkeit (mit demselben Dring
lichkeitswert) ausführen kann, ohne daß auf den Abschluß der
aktuell ausgeführten Verarbeitung durch das angeforderte
Programm gewartet werden muß, wodurch strenger eingehaltene
Echtzeiteigenschaften gewährleistet werden.
Die Prioritätswert-Bestimmungseinrichtung bestimmt einen
Prioritätswert, wie er für die Ausführung eines Programms
geeignet ist, und zwar unter Berücksichtigung des Funktions
vermögens und der Auslastung jedes Computers und/oder eines
Wertesatzes aus einer Zeitgrenze und einer Verarbeitungs
menge für die vom Programm ausgeführte Verarbeitung. Auf
diese Weise wird der Satz aus der Zeitgrenze und der Verar
beitungsmenge für die Verarbeitung in einen örtlichen Prio
ritätswert umgesetzt, wie er für jeden Computer definiert
ist, und zwar abhängig vom Funktionsvermögen und der Ausla
stung des Computers, und die Verarbeitung wird mit dem umge
setzten Prioritätswert ausgeführt. Dadurch ist es möglich,
eine neu angeforderte Verarbeitung mit kürzerer Zeitgrenze
auszuführen, bevor eine zuvor zugeordnete Verarbeitung mit
längerer Zeitgrenze ausgeführt wird. Auch wird, da die Zeit
grenze für die Verarbeitung in einen örtlichen Prioritäts
wert für einen Computer unter Berücksichtigung des Funk
tionsvermögens und der Auslastung des Computers umgesetzt
werden kann, dann, wenn sich die verstrichene Zeit der Zeit
grenze für die Verarbeitung nähert, wie sie bereits dem Com
puter zugeordnet ist, die Zeitgrenze für die Verarbeitung
verkürzt werden, und es wird erneut ein zugehöriger Priori
tätswert abhängig von der verkürzten Zeitgrenze für die Ver
arbeitung bestimmt, wodurch eine neu angeforderte Verarbei
tung die Ausführung der zuvor zugeordneten Verarbeitung
nicht behindert. Anders gesagt, können strenger eingehaltene
Echtzeiteigenschaften gewährleistet werden als beim Stand
der Technik. Die acht Einrichtungen, die die Prioritätswert-
Bestimmungseinrichtung bilden, haben jeweils die folgenden
Funktionen.
Die Prioritätswert-Umsetzeinrichtung enthält eine Priori
tätswert-Entsprechungstabelle, die die Entsprechung zwischen
der Zeitgrenze pro Einheitsverarbeitungsmenge und einem
Prioritätswert angibt, wie dazu verwendet, eine Umsetzung
zwischen einem Satz aus einer Zeitgrenze und einer Verarbei
tungsmenge für die Verarbeitung und einem zugehörigen Prio
ritätswert vorzunehmen. Der Inhalt der Prioritätswert-Ent
sprechungstabelle wird abhängig von Änderungen des Funk
tionsvermögens, der Auslastung und des Typs von Computern
verändert.
Die Prioritätswert-Änderungseinrichtung ändert den Priori
tätswert eines Programms abhängig von einem Prioritätswert,
wie er von der Prioritätswert-Umsetzeinrichtung angegeben
wird. Diese Prioritätswert-Umsetzeinrichtung ermöglicht in
Zusammenwirkung mit der Prioritätswert-Änderungseinrichtung,
daß eine Verarbeitung mit einem örtlichen Prioritätswert für
jeden Computer entsprechend der der Verarbeitung auferlegten
Zeitgrenze ausgeführt wird. Daher ist es möglich, eine Ver
arbeitung mit kürzerer Zeitgrenze vor einer anderen Verar
beitung mit längerer Zeitgrenze auszuführen, wodurch stren
geres Einhalten von Echtzeiteigenschaften für jede Verarbei
tung im verteilten Computersystem gewährleistet ist. Wenn
eine Verarbeitung mit langer Zeitgrenze nicht abgearbeitet
wird, um bevorzugt andere Verarbeitungen mit kurzer Zeit
grenze auszuführen, nähert sich die abgelaufene Zeit der
Zeitgrenze der Verarbeitung, die noch nicht abgearbeitet
ist. In diesem Fall wird der Prioritätswert der Verarbeitung
abhängig von der verkürzten zur Verfügung stehenden Zeit für
die Verarbeitung auf einen größeren Wert korrigiert, so daß
die Verarbeitung mit dem korrigierten Prioritätswert ausge
führt werden kann.
Die Verbindungszeit-Vorhersageeinrichtung verfügt über eine
Vorhersagezeittabelle zum Abspeichern einer Verbindungszeit
für jeden Computer, und sie gibt Information über die Zeit,
wie sie für eine Verbindung mit einem bestimmten Computer
erforderlich ist, wenn eine entsprechende Anfrage erfolgt.
Auf diese Weise kann die Zeitgrenze für die Verarbeitung ge
nauer eingestellt werden, wenn die Verbindungszeit zwischen
Computern nicht vernachlässigbar ist.
Die Computerauswahleinrichtung nimmt auf einen Computer in
formationsbereich Bezug, der aus einer Computerfunktionsver
mögen-Informationstabelle und einer Computerauslastung-In
formationstabelle besteht, sie wählt einen Computer so aus,
daß die Auslastung oder Verarbeitung mit vorgegebener Zeit
grenze pro Einheitsverarbeitungsmenge gleich auf die Compu
ter verteilt ist, und sie sorgt dafür, daß der ausgewählte
Computer ein Programm ausführt. Die Computerfunktionsvermö
gen-Informationstabelle zeigt die Funktionsvermögen der je
weiligen Computer, während die Computerauslastung-Informa
tionstabelle die Auslastungen der jeweiligen Computer für
jeden Dringlichkeitswert zeigt. Wenn sich die Auslastung ei
nes Computers ändert, wird das Änderungsausmaß in der Compu
terauslastung-Informationstabelle wiedergegeben. Dies ver
hindert, daß eine Anzahl von Verarbeitungen mit kurzer Zeit
grenze auf einen einzelnen Computer konzentriert wird, wo
durch es möglich ist, Echtzeiteigenschaften in den jeweili
gen Computern strenger einzuhalten.
Die Programmauswahleinrichtung verwendet eine Programmort-
Datenbank, die Information zu Programmen enthält, die den
selben Vorgang ausführen, um ein Programm mit einer Zeit
grenze pro Verarbeitungsmengeeinheit, die mit der spezifi
zierten übereinstimmt, aus einer Gruppe von Programmen aus
zuwählen, die denselben Vorgang ausführen. Eine Verarbei
tunganforderung wird dann an das ausgewählte Programm ausge
geben. Die Programmort-Datenbank speichert entweder Priori
tätswerte oder Dringlichkeitswerte für Programme ein, die
denselben Vorgang ausführen, und sie speichert die Kennungen
von Computern ab, auf denen diese Programme laufen. Demgemäß
ist es selbst dann, wenn die oben genannte Prioritätswert-
Änderungseinrichtung nicht verwendet wird, möglich, mehrere
Programme mit verschiedenen Zeitgrenzen bereitzustellen, das
Programm mit der am besten geeigneten Zeitgrenze, wie aus
diesen Programmen ausgewählt, zum Ausführen der Verarbeitung
aufzufordern, und dafür zu sorgen, daß das aufgeforderte
Programm die Verarbeitung mit gewünschter Geschwindigkeit
ausführt.
Wenn ein gerade eine Verarbeitung ausführendes Programm dazu
aufgefordert wird, eine andere Verarbeitung auszuführen,
fragt die Verarbeitungsverlegeeinrichtung bei der Programm
auswahleinrichtung die Orte anderer Programme ab, die den
selben Vorgang wie das angeforderte Programm ausführen, und
sie verlegt die Verarbeitungsanforderung auf ein Programm,
das im Ergebnis durch die Programmauswahleinrichtung spezi
fiziert wurde. So kann eine neue Verarbeitung, zu der das
aktuell arbeitende Programm aufgefordert wird, durch ein an
deres Programm ausgeführt werden, das die Verarbeitung mit
im wesentlichen derselben Geschwindigkeit ausführen kann,
ohne daß auf den Abschluß der aktuell ausgeführten Verarbei
tung durch das angeforderte Programm gewartet werden muß,
wodurch strengeres Einhalten von Echtzeiteigenschaften ge
währleistet ist.
Die Verarbeitungszeit-Voraussageeinrichtung berechnet die
Zeit, wie sie dazu erforderlich ist, ein Programm abzu
schließen, und zwar gestützt auf die restliche Verarbei
tungsmenge, wie vom Programm auszuführen, und gestützt auf
eine Zeitgrenze pro Einheitsverarbeitungsmenge des Pro
gramms.
Die Zeitgrenze-Einstelleinrichtung bestimmt eine neue Zeit
grenze für die Verarbeitung gestützt auf eine Zeitgrenze für
die Verarbeitung, wie beim Anfordern der Verarbeitung spezi
fiziert, und gestützt auf die Zeit, wie sie ab dem Start der
Ausführung der Verarbeitung verstrichen ist. Die Zeitgrenze-
Einstelleinrichtung bestimmt in Zusammenwirkung mit der Ver
arbeitungszeit-Voraussageeinrichtung, ob die Zeitgrenze für
die Verarbeitung erfüllt wird, wenn ein Programm mit dem ak
tuellen Prioritätswert abgearbeitet wird. Wenn erkannt wird,
daß die Zeitgrenze nicht erfüllt wird, kann eine kürzere
Zeitgrenze eingestellt werden. Unter Verwendung der neu ein
gestellten Zeitgrenze können die Prioritätswert-Umsetzein
richtung und die Prioritätswert-Änderungseinrichtung dem
Programm einen höheren Prioritätswert verleihen und die Ver
arbeitung an ein anderes Programm verlegen, das denselben
Vorgang ausführt und der neuen Zeitgrenze genügen kann, da
mit dieses Programm die Verarbeitung vornimmt. Auf diese
Weise kann die Verarbeitung so verwaltet werden, daß der ur
sprünglich vergebenen Zeitgrenze genügt wird.
Die Erfindung wird im folgenden anhand von durch Figuren
veranschaulichten Ausführungsbeispielen näher beschrieben.
Fig. 1 ist ein Diagramm, das die Konfiguration eines ver
teilten Computersystems gemäß einem ersten Ausführungsbei
spiel der Erfindung zeigt;
Fig. 2 zeigt eine Datenstruktur einer Prioritätswert-Ent
sprechungstabelle, die die Entsprechung zwischen Dringlich
keitswerten und Prioritätswerten angibt;
Fig. 3 zeigt ein anderes Beispiel zum Realisieren einer
Prioritätswert-Umsetzeinrichtung;
Fig. 4 zeigt eine Form eines Programms zum Ausgeben einer
Verarbeitungsanforderung mit einem spezifizierten Dring
lichkeitswert;
Fig. 5 ist ein Diagramm, das einen Verarbeitungsablauf zum
Ausführen von Verbindungen zum Spezifizieren eines Dring
lichkeitswerts zeigt;
Fig. 6 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Ändern des Inhalts einer Prioritätswert-Entsprechungsta
belle repräsentiert, die die Entsprechung zwischen Dring
lichkeitswerten und Prioritätswerten abhängig von sich än
derndern Auslastung angibt;
Fig. 7 zeigt, wie die Prioritätswert-Entsprechungstabelle
abhängig von einer Zunahme oder Abnahme der Auslastung ge
ändert wird;
Fig. 8 zeigt ein Programm zum Modifizieren der Prioritäts
wert-Entsprechungstabelle abhängig von einer Zunahme oder
Abnahme der Auslastung;
Fig. 9 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Ändern des Prioritätswerts eines Programms in Überein
stimmung mit einer Modifizierung der Prioritätswert-Entspre
chungstabelle zeigt;
Fig. 10 ist ein Diagramm, das ein zweites Ausführungsbei
spiel der Erfindung und einen Verarbeitungsablauf zum Aus
führen von Verbindungen zum Spezifizieren eines Dringlich
keitswerts bei diesem Ausführungsbeispiel zeigt;
Fig. 11 zeigt die Konfiguration eines dritten Ausführungs
beispiels der Erfindung;
Fig. 12 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Starten eines Programms beim dritten Ausführungsbeispiel
zeigt;
Fig. 13 zeigt Beispiele für eine Computerauslastung-Informa
tionstabelle, eine Auslastungswerttabelle und eine Ausla
stung/Funktionsvermögen-Tabelle beim dritten Ausführungsbei
spiel der Erfindung;
Fig. 14 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Verschieben eines Programms repräsentiert;
Fig. 15 zeigt andere Beispiele für die Computerauslastung-
Informationstabelle, die Auslastungswerttabelle und die Aus
lastung/Funktionsvermögen-Tabelle beim dritten Ausführungs
beispiel der Erfindung;
Fig. 16 und 17 sind Diagramme, die die Konfiguration eines
vierten bzw. fünften Ausführungsbeispiels der Erfindung
zeigen;
Fig. 18 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Auswählen eines Programms beim fünften Ausführungsbei
spiel der Erfindung veranschaulicht;
Fig. 19 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Herausfinden eines Programms mit speziellem Prioritäts
wert veranschaulicht;
Fig. 20 ist ein Diagramm, das die Konfiguration eines sech
sten Ausführungsbeispiels der Erfindung und einen Verarbei
tungsablauf zum Auswählen eines Programms beim sechsten Aus
führungsbeispiel zeigt;
Fig. 21 ist ein Diagramm, das die Konfiguration eines sieb
ten Ausführungsbeispiels der Erfindung und einen Verarbei
tungsablauf zum Verlegen einer Verarbeitungsanforderung beim
siebten Ausführungsbeispiel zeigt;
Fig. 22 ist ein Diagramm, das die Konfiguration eines achten
Ausführungsbeispiels der Erfindung zeigt;
Fig. 23 zeigt eine Datenstruktur einer Prioritätswert-Ent
sprechungstabelle, die die Entsprechung zwischen einer Zeit
grenze und einem Prioritätswert angibt;
Fig. 24 zeigt ein Programm zum Herleiten eines Prioritäts
werts aus einer vorgegebenen Zeitgrenze;
Fig. 25 zeigt eine Form eines Programms zum Ausgeben einer
Verarbeitungsanforderung mit spezifizierter Zeitgrenze;
Fig. 26 ist ein Diagramm, das einen Verarbeitungsablauf zum
Ausführen von Verbindungen zum Spezifizieren einer Zeitgren
ze beim achten Ausführungsbeispiel zeigt;
Fig. 27 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Modifizieren des Inhalts der Prioritätswert-Entspre
chungstabelle abhängig von sich ändernder Auslastung veran
schaulicht;
Fig. 28 zeigt, wie die Prioritätswert-Entsprechungstabelle
abhängig von einer Zunahme oder Abnahme der Auslastung modi
fiziert wird;
Fig. 29 ist ein Diagramm, das ein neuntes Ausführungsbei
spiel der Erfindung und einen Verarbeitungsablauf zum Aus
führen von Verbindungen zum Spezifizieren einer Zeitgrenze
unter Berücksichtigung der Verbindungszeit beim neunten Aus
führungsbeispiel zeigt;
Fig. 30 ist ein Diagramm, das die Konfiguration eines zehn
ten Ausführungsbeispiels zeigt;
Fig. 31 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Starten eines Programms beim zehnten Ausführungsbeispiel
veranschaulicht;
Fig. 32 zeigt Beispiele einer Computerauslastung-Informa
tionstabelle, einer Auslastungswerttabelle und einer Ausla
stung/Funktionsvermögen-Tabelle beim zehnten Ausführungsbei
spiel der Erfindung;
Fig. 33 ist ein Flußdiagramm, das einen Verarbeitungsablauf
zum Verschieben eines Programms beim zehnten Ausführungsbei
spiel der Erfindung veranschaulicht;
Fig. 34 zeigt andere Beispiele der Computerauslastung-Infor
mationstabelle, der Auslastungswerttabelle und der Ausla
stung/Funktionsvermögen-Tabelle beim zehnten Ausführungsbei
spiel der Erfindung;
Fig. 35 ist ein Diagramm, das die Konfiguration eines elften
Ausführungsbeispiels der Erfindung zeigt;
Fig. 36 zeigt einen Verarbeitungsablauf zum Auswählen eines
Programms beim elften Ausführungsbeispiel der Erfindung;
Fig. 37 ist ein Diagramm, das die Konfiguration eines zwölf
ten Ausführungsbeispiels der Erfindung und einen Verarbei
tungsablauf zum Auswählen eines Programms beim zwölften Aus
führungsbeispiel zeigt; und
Fig. 38 ist ein Diagramm, das die Konfiguration eines drei
zehnten Ausführungsbeispiels der Erfindung und einen Verar
beitungsablauf zum Verlegen einer Verarbeitungsanforderung
beim dreizehnten Ausführungsbeispiel zeigt.
Zunächst wird eine Reihe von Ausführungsbeispielen unter
Verwendung des Dringlichkeitskonzepts dargelegt, gefolgt von
Ausführungsbeispielen, die das Zeitgrenzekonzept verwenden.
Fig. 1 zeigt die Konfiguration eines verteilten Computersy
stems gemäß einem ersten Ausführungsbeispiel der Erfindung.
In diesem System sind mehrere Computer 100-103 mit einem
Netzwerk 110 in solcher Weise verbunden, daß Programme auf
den jeweiligen Computern in Zusammenwirkung miteinander ab
laufen. Während im System von Fig. 1 nur vier miteinander
verbundene Computer dargestellt sind, kann zum Aufbauen ei
nes Systems eine Anzahl von Computern verwendet werden, die
größer oder kleiner ist als diese Zahl. Das Netzwerk 110
kann einen Übertragungsbus, optische Fasern, ein Kreuzschie
nenschalter-Vermittlungssystem usw. enthalten. Programme auf
den jeweiligen Computern stehen über das Netzwerk 110 mit
einander in Verbindung. Einzelheiten zur internen Konfigura
tion sind nur für die Computer 100, 101 dargestellt. Jeder
der Computer umfaßt eine zentrale Verarbeitungseinheit 120,
eine Hauptspeichereinheit 121, eine Eingabe/Ausgabe-Steuer
einheit 122 usw., und empfängt und sendet Daten über einen
internen Bus 125. Diese Computer können sich hinsichtlich
des Funktionsvermögens der zentralen Verarbeitungseinheit
120 oder dergleichen voneinander unterscheiden. Die Eingabe/Ausgabe-Steuereinheit
122 in jedem Computer ist im allgemei
nen mit einer externen Speichereinheit 123 und einem Termi
nal 124 verbunden, um Daten von außen zu empfangen und nach
außen zu senden. Die Hauptspeichereinheiten 121 enthalten
Benutzerprogramme 130-136, Prioritätsschlangen 140, 141,
Scheduler 142, 143, Prioritätswert-Umsetzeinrichtungen 144,
145 und Prioritätswert-Änderungseinrichtungen 146, 147, die
alle durch die zentralen Verarbeitungseinheiten 120 der je
weiligen Computer betrieben werden. Im allgemeinen ist jeder
Computer mit seinem eigenen Betriebssystem versehen, um die
Ausführungen von Programmen und andere Bedingungen im zuge
hörigen Computer zu verwalten. Die Prioritätsschlange und
der Scheduler sind häufig in einem Teil des Betriebssystems
enthalten. In Fig. 1 ist die Beschreibung des Betriebssy
stems weggelassen. Die Anzahl von Benutzerprogrammen und die
Art ihrer Anordnung in den jeweiligen Computern können vom
Benutzer beliebig festgelegt werden.
Wenn mehrere Programme miteinander zusammenwirkend in einem
Mehrprozessor-Computersystem oder einem verteilten Computer
system, wie in Fig. 1 dargestellt, laufen, werden die Benut
zerprogramme in den jeweiligen Computern normalerweise in
ihrer Verarbeitungsreihenfolge verwaltet, wie sie durch Rei
henfolgeschlangen im Betriebssystem oder dergleichen angege
ben ist. Jedoch kann sich die Bearbeitungsdringlichkeit von
einem Benutzerprogramm zum anderen unterscheiden. Aus diesem
Grund ist jedes Benutzerprogramm mit einem örtlichen Priori
tätswert in jedem Computer in solcher Weise versehen, daß
die Benutzerprogramme abhängig vom vorgegebenen Prioritäts
wert in eine Schlange eingegeben werden, um die Reihenfolge
der Ausführung dieser Benutzerprogramme zu verwalten. Die
Prioritätsschlangen 140, 141 bilden die Schlangen für die
jeweiligen Prioritätswerte in den Computern 100, 101. Bei
dem in Fig. 1 dargestellten Ausführungsbeispiel ist angenom
men, daß der Computer 100 Prioritätswerte im Bereich von 0-
255 hat, während der Computer 101 Prioritätswerte im Bereich
von 0-127 hat. Für jeden der Prioritätswerte ist eine
Schlange gebildet, mittels der die Scheduler 142, 143 das
Programm bestimmen, das als nächstes auszuführen ist. Die
Prioritätsschlangen bestehen aus Programmstrukturen (Bei
spiele für eine Programmstruktur sind in Fig. 1 als Blöcke
160-166 dargestellt), von denen jede Information zu einem
zugehörigen Benutzerprogramm enthält. Während Programmstruk
turen für Programme D, E und F usw. in den Prioritätsschlan
gen existieren, die von den Benutzerprogrammen 130-136 ab
weichen, die in der Hauptspeichereinheit 131 liegen, liegen
diese Programme nicht in der Hauptspeichereinheit 121 son
dern in der externen Speichereinheit 123. Diese Programme D,
E, F usw. können ausgeführt werden, nachdem ihnen zugeordne
te, erforderliche Programmdaten von der externen Speicher
einheit 123 in die Hauptspeichereinheit 121 überschrieben
sind.
Um das verteilte Computersystem dazu auf zufordern, eine Ver
arbeitung auszuführen, gibt jeder Benutzer dieses verteilten
Computersystems an einen der Computer in diesem System die
Anweisung, sein Benutzerprogramm neu abzuarbeiten, oder er
gibt dem System die Anweisung, ein bereits vorhandenes Pro
gramm abzuarbeiten, wozu er Daten über eine Eingabeeinrich
tung eingibt. Jedes der Programme im verteilten Computersy
stem führt seine Verarbeitung aus, während es nach Bedarf
mit anderen Programmen in Verbindung steht, und es liefert
die Ergebnisse an den Benutzer zurück, oder es zeigt sie auf
dem Terminal eines der Computer an. Anders gesagt, ent
spricht das Eingeben von Information in ein verteiltes Com
putersystem dem Eingeben eines Programms in ein verteiltes
Computersystem oder dem Eingeben von Daten für ein Programm
über eine Eingabeeinrichtung wie ein Terminal oder derglei
chen. Auch entspricht die Ausgabe aus dem verteilten Compu
tersystem der Ausgabe von Ergebnissen eines Programms, wie
vom verteilten Computersystem ausgeführt, als Anzeige auf
einem Schirm eines Terminals oder dergleichen.
Die Scheduler 142, 143 bestimmen jeweils das als nächstes
auszuführende Programm abhängig vom Inhalt der jeweiligen
Prioritätsschlangen 140 bzw. 141. Bei diesem Ausführungsbei
spiel beinhaltet die Prioritätsschlange 140 des Computers
100 ein Programm A (Benutzerprogramm 130) in einer Schlange
für den Wert 0, und Programme B (Benutzerprogramm 131) und
C (Benutzerprogramm 132) in einer Schlange für den Wert 1.
In dieser Situation werden dann, wenn der Scheduler 142 so
ausgebildet ist, daß er Programme ausgehend von einem sol
chen mit kleinstem Prioritätswert ausführt, die Programme in
der Reihenfolge A, B, C, D, E, F, . . . ausgeführt, abhängig
von der so ausgebildeten Prioritätsschlange. Die Prioritäts
schlangen 140, 141 und die Scheduler 142, 143 bilden norma
lerweise einen Teil des Betriebssystems eines jeweiligen
Computers. Die Vorgehensweise, wie die Reihenfolge zur Aus
führung von Programmen bestimmt wird, kann sich von der oben
angegebenen unterscheiden, und zwar abhängig vom Typ des
verwendeten Betriebssystems. Das Ausführungsbeispiel wird
nachfolgend unter der Annahme beschrieben, daß ein kleinerer
Prioritätswert höhere Priorität anzeigt (d. h., daß ein Pro
gramm mit kleinerem Prioritätswert früher ausgeführt wird).
Wie oben angegeben, können Programme mit verschiedenen
Dringlichkeiten auf gleichmäßige Weise in ein und demselben
Computer verwaltet werden, wenn jedem Programm ein Priori
tätswert angesichts der Ausführungsreihenfolge für Programme
zugeordnet wird. Jedoch sind die örtlichen Prioritätsschema
ta nicht miteinander verträglich, und zwar wenn es um Compu
ter mit verschiedenen Funktionsvermögen, Auslastungen und
Typen geht. Um mit dieser Schwierigkeit fertig zu werden,
führt dieses Ausführungsbeispiel die "Dringlichkeit" ein,
bei der es sich um ein gemeinsames Konzept im gesamten ver
teilten Computersystem handelt, um ein globales Prioritäts
schema für das gesamte verteilte Computersystem einschließ
lich mehrerer Computer mit voneinander verschiedenen Funk
tionsvermögen, Auslastungen und Typen gleichmäßig zu verwal
ten. Die Dringlichkeit kann als globales Prioritätsschema
angesehen werden, das auf das gesamte verteilte Computersy
stem anwendbar ist. Bei diesem Ausführungsbeispiel ist an
genommen, daß die Dringlichkeit in einem Bereich 0-31 spe
zifiziert werden kann. Einrichtungen bei diesem Ausführungs
beispiel, die zum Einführen der Dringlichkeit dienen, sind
die Prioritätswert-Umsetzeinrichtungen 144, 145 und der
Prioritätswert-Änderungseinrichtungen 146, 147. Die Be
schreibung des Ausführungsbeispiels geht nachfolgend unter
der Annahme weiter, daß ein kleinerer Dringlichkeitswert ei
nen höheren Dringlichkeitswert repräsentiert, ähnlich wie
dies für den Prioritätswert angenommen ist.
Die Prioritätswert-Umsetzeinrichtungen 144, 145 sind Ein
richtungen zum Umsetzen des Dringlichkeitswerts, bei dem es
sich um einen gemeinsamen Datenwert im verteilten Computer
system handelt, in einen örtlichen Prioritätswert, bei dem
es sich um einen Datenwert handelt, wie er jedem Computer zu
eigen ist und umgekehrt. Bei diesem Ausführungsbeispiel sind
die Prioritätswert-Umsetzeinrichtungen 144, 145 mit Priori
tätswert-Entsprechungstabellen 150, 151 versehen, die die
Entsprechung zwischen dem Dringlichkeitswert (UR) und dem
örtlichen Prioritätswert (PRI) in jedem Computer angeben.
Aus Fig. 1 ist erkennbar, daß der Dringlichkeitswert im Com
puter 100 dem Prioritätswert 0 oder 1 entspricht, und daß
der Dringlichkeitswert 1 den Prioritätswerten 2-4 ent
spricht, wohingegen im Computer 101, der schlechteres Funk
tionsvermögen als der Computer 100 hat, der Dringlichkeits
wert dem Prioritätswert 0 entspricht, während der Dringlich
keitswert 1 dem Prioritätswert 1 entspricht. Auf diese Weise
ist im Computer 101 demselben Dringlichkeitswert ein höherer
Prioritätswert zugeordnet als im Computer 100. Dies stellt
sicher, daß ein Programm mit derselben Dringlichkeit in den
beiden Computern 100, 101 mit verschiedenen Funktionsvermö
gen im wesentlichen mit derselben Geschwindigkeit ausgeführt
werden kann. Die Inhalte der Prioritätswert-Entsprechungsta
bellen 150, 151 können abhängig von den Auslastungswerten
der jeweiligen Computer so modifiziert werden, daß derselbe
Dringlichkeitswert in einem stark ausgelasteten Computer ei
nem höheren Prioritätswert entspricht als in einem schwach
ausgelasteten Computer. Die Prioritätswert-Umsetzeinrich
tungen 144, 145 benutzen die jeweiligen Prioritätswert-Ent
sprechungstabellen 150, 151, um einen vorgegebenen Dring
lichkeitswert in einen entsprechenden Prioritätswert für die
zugeordneten Computer 100, 101 umzusetzen, und um einen
Prioritätswert in einen entsprechenden Dringlichkeitswert
umzusetzen.
Während die Prioritätswert-Entsprechungstabellen 150, 151
auf Grundlage der in Fig. 1 dargestellten Feldstrukturen er
zeugt werden können, kann ein Dringlichkeitswert mehreren
Prioritätswerten entsprechen, so daß die Umsetzung von einem
Dringlichkeitswert in einen Prioritätswert oder mehrere
nicht auf wirkungsvolle Weise ausgeführt werden kann. Fig. 2
zeigt ein Beispiel für eine in der Sprache C geschriebene
Datenstruktur für die Prioritätswert-Entsprechungstabelle
150, die dazu dient, die Umsetzung zwischen Dringlichkeits
werten und Prioritätswerten wirkungsvoll auszuführen. Um die
Umsetzung zwischen Dringlichkeitswerten und Prioritätswerten
zu erleichtern, besteht die Prioritätswert-Entsprechungsta
belle aus einer Kombination zweier Felder. In dieser Priori
tätswert-Entsprechungstabelle 150 kann, da ein Prioritäts
wert in eindeutiger Weise in einen entsprechenden Dringlich
keitswert umgesetzt werden kann, ein Feld 170 verwendet wer
den. Da jedoch ein Dringlichkeitswert in mehrere entspre
chende Prioritätswerte umgesetzt werden kann, ist zum Ab
speichern des kleinsten Prioritätswerts und des größten
Prioritätswerts für jeden Dringlichkeitswert eine andere Da
tenstruktur verwendet (Feld 171). Ein Wert, wie er von jedem
Feldelement angegeben wird, ist in einer Datenstruktur 172
dargestellt. Wenn diese Datenstruktur verwendet wird, kann
die Umsetzung zwischen einem Dringlichkeitswert u und einem
Prioritätswert p auf die folgende Weise erfolgen:
- (1) Umsetzung von einem Prioritätswert in einen Dringlich keitswert: u-to_urgency [p].
- (2) Umsetzung von einem Dringlichkeitswert in einem Priori
tätswert:
p-to_ any integer value between priority [u]
.start and topriority [u]. end
Bei diesem Ausführungsbeispiel ist die Beziehung zwischen
einem Dringlichkeitswert und einem Prioritätswert auf eine
Einfach-Mehrfach-Beziehung fixiert. Daher kann, während die
Umsetzung von einem Prioritätswert in einen Dringlichkeits
wert durch ein einfaches Feld realisiert ist, die Entspre
chung zwischen einem Dringlichkeitswert und einem Priori
tätswert in einer Einfach-Mehrfach-Beziehung oder einer
Mehrfach-Mehrfach-Beziehung wiedergegeben sein, wenn der Be
reich der Dringlichkeitswerte größer ist als der bei diesem
Ausführungsbeispiel dargestellte Bereich. Wenn eine Mehr
fach-Mehrfach-Beziehung verwendet wird, muß das Feld 170 in
eine ähnliche Struktur umgewandelt werden, wie sie das Feld
171 aufweist. Bei einer Einfach-Mehrfach-Beziehung kann eine
Prioritätswert-Entsprechungstabelle für diesen Fall dadurch
realisiert werden, daß das Feld 170 durch das Feld 171 er
setzt wird. Es ist zu beachten, daß zum Ändern des Bereichs
der Prioritätswerte oder des Bereichs der Dringlichkeitswer
te die Anzahlen der Elemente in den Feldern 170, 171 verän
dert werden müssen.
Während beim in den Fig. 1 und 2 dargestellten Beispiel die
Prioritätswert-Entsprechungstabellen 150, 151 dazu verwendet
werden, einen Dringlichkeitswert in einen Prioritätswert um
zusetzen, und umgekehrt, kann die Umsetzung auch ohne Ver
wendung derartiger Prioritätswert-Entsprechungstabellen aus
geführt werden. Fig. 3 zeigt den Inhalt einer Prioritäts
wert-Umsetzeinrichtung 144, die keine Prioritätswert-Ent
sprechungstabelle verwendet. Der Ablauf ist in der Sprache C
geschrieben. Ein Block 180 entspricht einem Umsetzablauf von
einem Dringlichkeitswert in einen Prioritätswert, und ein
Block 181 entspricht einem Umsetzablauf von einem Priori
tätswert in einen Dringlichkeitswert. Während dieses Ausfüh
rungsbeispiel so ausgewählt ist, daß optimale Gleichung eine
solche verwendet wird, die ausdrückt, daß ein Prioritätswert
proportional zum Quadrat eines Dringlichkeitswerts ist, ist
es auch möglich, empirisch eine optimale Beziehung für jeden
Computer im verteilten Computersystem herzuleiten und die
hergeleitete Beziehung in Form einer Gleichung erster Ord
nung oder einer Gleichung höherer Ordnung wiederzugeben.
Dieses Ausführungsbeispiel verwendet das Computerfunktions
vermögen pro Einheitsauslastung als Proportionalitätskoeffi
zient. Auch ist es bei diesem Ausführungsbeispiel geschickt,
daß eine Auslastung durch eine Anzahl von Programmen in der
Prioritätsschlange (die Anzahl ausführbarer Programme) und
das Computerfunktionsvermögen, d. h. das CPU(zentrale Verar
beitungseinheit)-Funktionsvermögen in der Einheit von 10
MIPS (1 MIPS repräsentiert das Funktionsvermögen einer CPU,
die dazu in der Lage ist, eine Million Anweisungen pro Se
kunde auszuführen) repräsentiert ist. Unter Verwendung die
ses Umsetzablaufs- kann ein niedrigerer Prioritätsrang (ein
höherer Prioritätswert) für denselben Dringlichkeitswert
eingestellt werden, wenn das CPU-Funktionsvermögen pro Pro
gramm höher ist, während ein höherer Prioritätsrang (ein
kleinerer Prioritätswert) für denselben Dringlichkeitswert
eingestellt werden kann, wenn das CPU-Funktionsvermögen pro
Programm kleiner ist.
Die Prioritätsrang-Änderungseinrichtungen 146, 147 in Fig. 1
ändern jeweils den Prioritätsrang jedes Programms abhängig
von einem örtlichen Prioritätsschema im zugehörigen Computer
100, 101, wie durch die Prioritätsrang-Umsetzeinrichtungen
144 bzw. 145 berechnet. Z.B. verfügt in Fig. 1 ein Programm
J (Benutzerprogramm 133) über einen Dringlichkeitswert 1 und
einen Prioritätswert 4. Wenn angenommen wird, daß sich der
Dringlichkeitswert dieses Programms J von 1 auf 0 ändert,
setzt die Prioritätswert-Umsetzeinrichtung 144 den geänder
ten Dringlichkeitswert in einen entsprechenden Prioritäts
wert um, um den neuen Prioritätswert 0 (oder 1) zu erhalten.
Die Prioritätswert-Änderungseinrichtung 146 verwendet diesen
Wert, um den Prioritätswert des Benutzerprogramms auf 0 zu
ändern. Gleichzeitig wird eine Programmstruktur 163 für das
Programm J in die Schlange für den Wert 0 verlegt.
Die Prioritätswert-Umsetzeinrichtungen 144, 145 sowie die
Prioritätswert-Änderungseinrichtungen 146, 147 sind beide
Dienstprogramme, die in Zusammenwirkung mit einem Teil der
jeweiligen Betriebssysteme oder allen arbeiten. Um diese Ab
läufe, wie solche Dienstprogramme, aufzubauen, ist es erfor
derlich, eine solche Form zu verwenden, daß die Prioritäts
rang-Änderungseinrichtungen 146, 147 die jeweiligen Be
triebssysteme dazu auffordern, den Prioritätswert eines Pro
gramms zu ändern. Jedes der aufgeforderten Betriebssysteme
ändert dann den Prioritätswert eines Programms und verlegt
die Programmstruktur auf eine Schlange für den geänderten
Prioritätswert.
Nachfolgend wird ein Verfahren zum Anfordern von Verarbei
tung für Computer gestützt auf die Dringlichkeit erläutert,
wobei der Prioritätswert-Umsetzablauf und der Prioritäts
wert-Änderungsablauf verwendet werden, wie sie bei diesem
Ausführungsbeispiel beschrieben sind. Um eine Verarbeitung
zwischen Computern in einem verteilten Computer-Echtzeitsy
stem anzufordern, kann die Systemarchitektur dadurch verein
facht werden, daß ein Dringlichkeitswert angegeben wird, wie
er für eine spezielle Verarbeitung gewünscht ist. Um diese
Vorgehensweise zu verwenden, ermöglicht es die Erfindung,
einem anfordernden Programm, einen Dringlichkeitswert zu
spezifizieren, wenn es eine Verarbeitung anfordert. Fig. 4
zeigt ein Beispiel für ein Verfahren zum Spezifizieren eines
Dringlichkeitswerts, geschrieben in der Sprache C, wobei ein
Block 190 ein Verfahren zum Spezifizieren eines Dringlich
keitswerts im ersten Argument einer Verarbeitungsanforderung
repräsentiert, während ein Block 191 ein Verfahren zum Spe
zifizieren eines Dringlichkeitswerts im letzten Argument ei
ner Verarbeitungsanforderung repräsentiert. Übrigens muß das
anfordernde Programm nicht direkt angeben, wie ein Dring
lichkeitswert zu spezifizieren ist, sondern statt dessen
können ein Compiler oder Übersetzer dazu verwendet werden,
eine Übersetzung in die Formen vorzunehmen, wie sie durch
die Blöcke 190, 191 repräsentiert sind.
Fig. 5 zeigt schematisch einen Verarbeitungsablauf zum Aus
geben einer Verarbeitungsanforderung unter Verwendung des
oben angegebenen Spezifizierverfahrens für den Dringlich
keitswert. Elemente 100, 101, 110, 130-136, 140-147, 150-151
sowie 160-161 in Fig. 5 stimmen mit Elementen über
ein, wie sie in Fig. 1 mit denselben Bezugszahlen gekenn
zeichnet sind. Eine Veranschaulichung der Computer 102, 103
und Einzelheiten innerhalb der Computer sind in Fig. 5 weg
gelassen. Dieses Ausführungsbeispiel zeigt einen Ablauf, wie
er ausgeführt wird, wenn ein Benutzerprogramm 133 eine Ver
arbeitungsanforderung an ein anderes Benutzerprogramm 136
ausgibt. Verbindungen, wie sie durch Pfeile 200-206 reprä
sentiert sind, beschreiben den Ablauf der Verarbeitungs
schritte. In Fig. 5 ist angenommen, daß Daten, die jeweils
an einen eine Verbindung kennzeichnenden Pfeil geschrieben
sind, wichtige Daten angeben, wie sie über diese Verbindung
übertragen werden. Das Benutzerprogramm 133 hat den Priori
tätswert 4 (Programmstruktur 163) in der Prioritätsschlange
140. Zunächst fordert das Benutzerprogramm 133 eine Umset
zung von seinem Prioritätswert (4) in einen entsprechenden
Dringlichkeitswert durch die Prioritätswert-Umsetzeinrich
tung 144 auf (Verbindung 200). In Fig. 5 liefert die Priori
tätswert-Umsetzeinrichtung 144, da der Prioritätswert (PRI)
4 im Computer 100 dem Dringlichkeitswert (UR) 1 entspricht,
als Umsetzergebnis den Dringlichkeitswert 1 an das Benutzer
programm 133 zurück (Verbindung 201). Dann fordert das Be
nutzerprogramm 133 das Benutzerprogramm 136 im Computer 101
dazu auf, eine Verarbeitung unter Verwendung des empfangenen
Dringlichkeitswerts 1 gemäß der Dringlichkeitswert-Spezifi
zierform 190 oder 191 auszuführen (Verbindung 202). Der Com
puter 101 muß, wenn er die Information zum Spezifizieren des
Dringlichkeitswerts 1 empfängt, diesen Dringlichkeitswerts 1
in sein örtliches Prioritätsschema umsetzen und das Benut
zerprogramm 136 mit demjenigen Prioritätswert ausführen, der
sich aus der Umsetzung ergibt. Das Benutzerprogramm 136 for
dert die Prioritätswert-Änderungseinrichtung 147 dazu auf,
den spezifizierten Dringlichkeitswert 1 in einen entspre
chenden Prioritätswert umzusetzen (Verbindung 203). Die
Prioritätswert-Änderungseinrichtung 147 fordert die Priori
tätswert-Umsetzeinrichtung 145 dazu auf, den Dringlichkeits
wert 1 in einen entsprechenden Prioritätswert im Computer 101
umzusetzen (Verbindung 204). In Fig. 5 entspricht der Dring
lichkeitswert 1 im Computer 101 dem Prioritätswert 1. Die
Prioritätswert-Umsetzeinrichtung 145 versorgt die Priori
täts-Änderungseinrichtung 147 mit dem Prioritätswert 1 als
Umsetzergebnis, um darüber zu informieren, daß das Benutzer
programm 136 mit dem Prioritätswert 1 ausgeführt werden muß
(Verbindung 205). Schließlich verlegt die Prioritätswert-Än
derungseinrichtung 147 eine Programmstruktur 166 (entspre
chend dem Benutzerprogramm 136), das nun mit einer Schlange
für den Prioritätswert 4 verbunden ist, auf eine Schlange
für den Prioritätswert 1 innerhalb der Prioritätsschlange
141 (Verbindung 206).
Auf diese Weise können die örtlichen Prioritätswerte, wie
sie einem anfordernden Programm und einem angeforderten Pro
gramm, die in verschiedenen Computern liegen, zugehörige
sind, gleichmäßig mittels des Dringlichkeitswerts verwaltet
werden, der das gemeinsame Konzept im gesamten verteilten
Computersystem ist. Wenn das eine Verarbeitung anfordernde
Programm vorab seinen eigenen Dringlichkeitswert erkannt
hat, ist keine Umsetzung vom örtlichen Prioritätswert im
Computer auf den gemeinsamen Dringlichkeitswert erforderlich
(Verbindungen 200, 201). Es ist auch möglich, eine Verarbei
tungsanforderung mit einem Dringlichkeitswert auszugeben,
der sich vom eigenen Dringlichkeitswert unterscheidet, und
zwar einfach dadurch, daß direkt ein gewünschter Dringlich
keitswert spezifiziert wird.
Während die in Fig. 1 dargestellten Prioritätswert-Entspre
chungstabellen 150, 151 jeweils Zuordnungen angesichts des
Funktionsvermögens der zugehörigen Computer 100 oder 101
vornehmen, hängt die Zeit für eine vollständige Verarbeitung
tatsächlich von der Auslastung jedes Computers ab. Daher mo
difiziert dieses Ausführungsbeispiel die Prioritätswert-Ent
sprechungstabellen 150, 151 jedesmal dann, wenn die Ausla
stung eines zugehörigen Computers verändert wird. Fig. 6
zeigt einen Verarbeitungsablauf 210 zum Verändern des In
halts einer Prioritätswert-Entsprechungstabelle.
Bei diesem Ausführungsbeispiel wird der Inhalt einer Priori
tätswert-Entsprechungstabelle modifiziert, wenn die Ausla
stung eines Computers (die Anzahl ausführbarer Programme) um
einen vorgegebenen Wert erhöht oder verringert wird. Der Un
terschied der Auslastung gemäß der vorigen Prioritätswert-
Entsprechungstabelle und gemäß der modifizierten Prioritäts
wert-Entsprechungstabelle wird als "gesamte Auslastungsände
rung" bezeichnet. Wenn sich die Auslastung ändert, wird die
aktuelle Auslastungsänderung zur Gesamtauslastungsänderung
addiert (Schritt 211). Dann wird ermittelt, ob die sich er
gebende Gesamtauslastungsänderung größer als ein vorgegebe
ner positiver Wert (Schritt 212) oder kleiner als ein vorge
gebener negativer Wert (Schritt 213) wird. Wenn die Gesamt
auslastungsänderung größer als der vorgegebene positive Wert
ist, bedeutet dies, daß die Auslastung um den vorgegebenen
Wert zugenommen hat, so daß eine Auslastungsgrenze in der
Prioritätswert-Entsprechungstabelle nach oben verschoben
wird (Schritt 214). Umgekehrt bedeutet es, wenn die Gesamt
auslastungsänderung kleiner als der negative vorgegebene
Wert ist, daß die Auslastung um den vorgegebenen Wert abge
nommen hat, wodurch die Dringlichkeitsgrenze in der Priori
tätswert-Entsprechungstabelle nach unten verschoben wird
(Schritt 215). Wenn die Inhalte der Prioritätswert-Entspre
chungstabellen verändert werden, wird die Gesamtauslastungs
änderung in einem abschließenden Schritt auf null gesetzt
(Schritt 216). Dann wird die Gesamtauslastungsänderung er
neut ausgehend von null aufsummiert.
Die Bedeutung, wie sie dem Verschieben der Dringlichkeits
grenze in der Prioritätswert-Entsprechungstabelle nach oben
oder unten im Schritt 214 bzw. im Schritt 213 innewohnt,
wird unter Bezugnahme auf Fig. 7 erläutert. Wenn ein Anstieg
der Auslastung eine Verschiebung der Dringlichkeitsgrenze in
der Prioritätswert-Entsprechungstabelle 150 nach oben her
vorruft, wird eine modifizierte Prioritätswert-Entspre
chungstabelle 220 hergeleitet. Aus der Tabelle 220 ist es
erkennbar, daß einem Programm mit demselben Dringlichkeits
wert ein höherer Prioritätswert zugeordnet werden kann, als
es in der Prioritätswert-Entsprechungstabelle 150 vor der
Veränderung der Fall war. Umgekehrt wird dann, wenn eine
Verringerung der Auslastung eine Verschiebung der Dringlich
keitsgrenze nach unten hervorruft, eine modifizierte Priori
tätswert-Entsprechungstabelle 221 hergeleitet, wodurch einem
Programm mit demselben Dringlichkeitswert ein niedrigerer
Prioritätswert zugeordnet wird. Dadurch, daß die Dringlich
keitsgrenze auf diese Weise nach oben oder unten verschoben
wird, kann selbst dann, wenn ein Programm mit demselben
Dringlichkeitswert durch Computer mit demselben Funktions
vermögen (oder vom selben Computer) zu verarbeiten ist, das
Programm mit höherem Prioritätswert ausgeführt werden, wenn
der Computer stark ausgelastet ist, und mit niedrigerem
Prioritätswert, wenn der Computer schwach ausgelastet ist.
Auf diese Weise kann eine gleichmäßige Prioritätsverwaltung
erzielt werden, wobei ferner Auslastungsänderungen in jedem
Computer im verteilten Computersystem berücksichtigt werden.
Während bei diesem Ausführungsbeispiel die Dringlichkeits
grenze um einen Prioritätswert nach oben oder unten ver
schoben wird, kann das Ausmaß der Verschiebung abhängig vom
Ausmaß der Auslastungsänderung verändert werden.
Nachfolgend wird ein Ablauf zum Verschieben der Dringlich
keitsgrenze nach oben oder unten erläutert, wenn die Priori
tätswert-Entsprechungstabelle verwendet wird, wie sie durch
die in Fig. 2 dargestellten Datenstrukturen 170 und 171 de
finiert ist. Fig. 8 zeigt Beispiele für den Ablauf, ge
schrieben in der Sprache C. Ein Block 230 repräsentiert den
Ablauf zum Verschieben der Dringlichkeitsgrenze nach oben.
Da "to_riority [u].end" und "to_riority [u+1].start" in
der Datenstruktur 171 die untere Dringlichkeitsgrenze für
den Dringlichkeitswert u angeben, werden diese Parameter
verringert, um die Dringlichkeitsgrenze nach oben zu ver
schieben (Aussagen 240, 241). Die Prioritätswert-Entspre
chungstabelle beinhaltet einen Bereich, in dem sich der
Dringlichkeitswert, wie vom Prioritätswert aus gesehen, we
gen der Verschiebung der Dringlichkeitsgrenze ändert. Z.B.
ändert sich in Fig. 7 der dem Prioritätswert 1 entsprechende
Dringlichkeitswert von 0 auf 1, und zwar wegen der Verschie
bung der Dringlichkeitsgrenze nach oben. Aus diesem Grund
muß der Inhalt des Felds 170 zum Umsetzen des Prioritäts
werts in den Dringlichkeitswert abhängig von der Änderung
des Dringlichkeitswerts modifiziert werden. Wenn die Dring
lichkeitsgrenze nach oben geschoben wird, ist "to_riority
[u+1].start" der Bereich, in dem sich der Dringlichkeits
werts ändert, wie er vom Prioritätswert aus gesehen wird.
Daher wird der Wert von "to_urgency [to_priority [u+1].
start]" zur Korrektur erhöht (Aussage 242).
Es ist hier zu beachten, daß eine Änderung der Prioritäts
wert-Entsprechungstabelle zu einer Änderung des Dringlich
keitswerts führen kann, wie er für ein Programm eingestellt
ist, das bereits in der Prioritätsschlange vorliegt. Z.B.
bewirkt in Fig. 7 ein nach oben Verschieben der Dringlich
keitsgrenze eine Änderung des Dringlichkeitswerts eines Pro
gramms mit dem Dringlichkeitswert 0 und dem Prioritätswert 1
von 0 auf 1. Im Ergebnis hat dieses Programm den Dringlich
keitswert 1 und den Prioritätswert 1 als Attribute. Bei die
sem Ausführungsbeispiel kann, da dieses Programm so korri
giert wird, daß es den Dringlichkeitswert 0 aufweist, ein in
der später beschriebenen Fig. 9 dargestellter Ablauf inner
halb der Prioritätswert-Änderungseinrichtungen 146, 147 ver
wendet werden. Der Ablauf von Fig. 9 arbeitet so, daß er den
Prioritätswert eines Programms ändert, dessen Dringlich
keitswert aufgrund einer Änderung der Prioritätswert-Ent
sprechungstabelle geändert wird, so daß das Programm densel
ben Dringlichkeitswert beibehält, den es vor dem Ändern der
Prioritätswert-Entsprechungstabelle hatte. Bei oben genann
ten Beispiel wird dann, wenn der Prioritätswert aller Pro
gramme mit dem Prioritätswert 1 um 1 verringert wird, so daß
diese Programme den Prioritätswert 0 haben, der Dringlich
keitswert dieser Programme auf den Wert (Dringlichkeitswert
0) korrigiert, den sie vor der Änderung der Prioritätswert-Entsprechungstabelle
hatten. Eine Aussage 243 ist eine Funk
tion zum Aufrufen des in Fig. 9 dargestellten Verarbeitungs
ablaufs aus den Prioritätswert-Umsetzeinrichtungen 144, 145.
In der Aussage 243 ist angenommen, daß der Name der in Fig.
9 dargestellten Funktion "change_all_priority" ist und daß
zu spezifizierende Argumente "to_riority [u+1].start" sind,
wobei es sich um einen Bereich handelt, in dem sich die Ent
sprechung zwischen dem Dringlichkeitswert und dem Priori
tätswert geändert hat, mit einem Anstieg des Prioritätswerts
(es ist zu beachten, daß in einer Aussage 243 das Inkrement
des Prioritätswerts -1 ist, so daß eine Verringerung des
Prioritätswerts vorgegeben ist).
Fig. 9 zeigt unter den Funktionen, die in den Prioritäts
wert-Änderungseinrichtungen 146, 147 vorliegen, einen Verar
beitungsablauf 250 zum Ändern des Prioritätswerts aller Pro
gramme mit einem speziellen Prioritätswert auf einen anderen
Wert. Zunächst ruft der Ablauf 250 eine einem speziellen
Prioritätswert entsprechende Schlange aus der Prioritäts
schlange 140 oder 141 ab (Schritt 251) und untersucht dann,
ob die Schlange leer ist oder nicht (Schritt 252). Wenn die
Schlange nicht leer ist, wird die Programmstruktur in der
Schlange abgerufen (Schritt 253) und der Prioritätswert der
Programme wird um einen vorgegebenen Wert inkrementiert
(Schritt 254). Wenn der angegebene Wert negativ ist, wird
der Prioritätswert verringert. Es ist zu beachten, daß bei
diesem Beispiel ein verringerter Prioritätswert einen höhe
ren Prioritätsrang bedeutet. Dann wird die abgerufene Pro
grammstruktur an eine Schlange verlegt, die dem Prioritäts
wert entspricht, der um den vorgegebenen Wert erhöht ist
(Schritt 255). Wenn ein negativer Wert addiert wird, ver
ringert sich der entsprechende Prioritätswert. So wird die
von der Aussage 243 angeforderte Prioritätswertänderung aus
geführt, wodurch der Prioritätswert von Programmen so geän
dert werden kann, daß derselbe Dringlichkeitswert aufrecht
erhalten bleibt.
Ähnlich wie im vorstehend genannten Fall repräsentiert ein
Block 231 in Fig. 8 einen Ablauf zum Verschieben der Dring
lichkeitsgrenze nach unten. Diese Verschiebung nach unten
wird dadurch erhöht, daß "to_riority [u].end" und "to_prio
rity [u+1].start" in der Datenstruktur 171 erhöht werden
(Aussagen 244, 245). Wenn die Dringlichkeitsgrenze nach un
ten verschoben wird, ist ein Bereich, in dem der Dringlich
keitswert sich so ändert, wie vom Prioritätswert aus gese
hen, "to_priority [u].end". Daher wird der Wert von "to_ur
gency [to_priority [u].end]" zur Korrektur herabgesetzt
(Aussage 246). Der Prioritätswert von Programmen kann durch
eine Aussage 247 geändert werden, wie im Fall des Ablaufs
230. In diesem Fall werden "to_priority [u].end", wobei es
sich um einen Bereich handelt, in dem sich die Entsprechung
zwischen dem Dringlichkeitswert und dem Prioritätswert geän
dert hat, und das Inkrement für den Prioritätswert (= 1) als
Argumente spezifiziert.
Unter Bezugnahme auf die Fig. 1-9 wurden die Konfigura
tion, der Betrieb und Abläufe beim ersten Ausführungsbei
spiel beschrieben. Das erste Ausführungsbeispiel verwendet
das Konzept der Dringlichkeit, um es einem verteilten Compu
tersystem zu ermöglichen, örtliche Prioritätsschemata mehre
rer Computer gleichmäßig zu verwalten, die sich hinsichtlich
des Funktionsvermögens, der Auslastung und des Typs vonein
ander unterscheiden. Wenn der Dringlichkeitswert für diese
Computer vorgegeben wird, ist es zu erwarten, daß eine ange
forderte Verarbeitung mit im wesentlichen derselben Ge
schwindigkeit in jedem dieser Computer abgeschlossen wird.
Auch ist es möglich, da der Dringlichkeitswert unter Berück
sichtigung des Funktionsvermögens und der Auslastung von
Computern in einen Prioritätswert umgesetzt wird, einen Um
kehreffekt zu vermeiden, bei dem eine Verarbeitung mit nied
rigerem Dringlichkeitswert vor einer Verarbeitung mit höhe
rein Dringlichkeitswert abgeschlossen wird, und zwar selbst
dann, wenn sie auf verschiedenen Computern abgearbeitet wer
den. Zusammengefaßt gesagt, gewährleistet das erste Ausfüh
rungsbeispiel dank des Konzepts der Dringlichkeit eine
strengere Einhaltung von Echtzeiteigenschaften in einem ver
teilten Computersystem.
Ferner kann bei diesem Ausführungsbeispiel, da die Inhalte
der Prioritätswert-Entsprechungstabellen und der Prioritäts
schlangen modifiziert werden können (wie in Verbindung mit
den Fig. 6-9) beschrieben, das Prioritätsschema abhängig
von sich dynamisch ändernden Auslastungen jeweiliger Compu
ter verwaltet werden.
Ferner kann zusätzlich zu den oben genannten zwei Hauptef
fekten dann, wenn eine Verarbeitung bei zwei oder mehr Com
putern angefordert wird, der Dringlichkeitswert für die Ver
arbeitung abhängig von der Wichtigkeit spezifiziert werden.
Außerdem ist es nicht erforderlich, das Funktionsvermögen,
die Auslastung und den Typ zusammenwirkender Computer zu
kennen, um den Dringlichkeitswert für eine Verarbeitung an
zugeben.
Während beim ersten Ausführungsbeispiel die Auslastung eines
Computers durch die Anzahl ausführbarer Programme repräsen
tiert ist, kann die Auslastung durch die Summe der Verarbei
tungsmengen ausführbarer Programme und die vorausgesagte
Verarbeitungszeit repräsentiert sein. Der letztgenannte Weg
führt zu genaueren Auslastungsberechnungen für die jeweili
gen Computer, wodurch strenger eingehaltene Echtzeiteigen
schaften gewährleistet werden. Ferner kann, während der
Prioritätswert unter Berücksichtigung sowohl der Auslastung
als auch des Funktionsvermögens jedes Computers bestimmt
wird, die Bestimmung nur gestützt auf eine dieser Angaben
erfolgen. Insbesondere dann, wenn ein verteiltes Computersy
stem aus jeweils denselben Computern besteht, muß nur die
Auslastung berücksichtigt werden. Auf diese Weise kann die
Umsetzung zwischen Dringlichkeitswerten und Prioritätswerten
auf wirkungsvolle Weise ausgeführt werden.
Nachfolgend wird die Konfiguration eines verteilten Compu
tersystems gemäß einem zweiten Ausführungsbeispiel der Er
findung unter Bezugnahme auf Fig. 10 erläutert. Das in Fig.
10 dargestellte zweite Ausführungsbeispiel zeichnet sich
durch eine Prioritätswert-Umsetzeinrichtung 260 zum Verwal
ten der Prioritätswerte aller Computer in einem verteilten
Computersystem aus. Die Elemente 100, 101, 110, 130-136,
140-143, 146, 147 sowie 160-166 sind mit denen iden
tisch, die in Fig. 1 mit denselben Bezugszahlen bezeichnet
sind. In Fig. 10 sind Veranschaulichungen der Computer 102,
103 und Einzelheiten innerhalb der Computer weggelassen. Die
Prioritätswert-Umsetzeinrichtung 260 verfügt über eine Prio
ritätswert-Entsprechungstabelle 270 zum Angeben der Entspre
chung zwischen Prioritätswerten und Dringlichkeitswerten für
alle Computer. Die Datenstruktur der Prioritätswert-Entspre
chungstabelle 270 ist dergestalt, daß die in Fig. 2 darge
stellten Datenstrukturen 170, 171 für die Anzahl von Compu
tern im verteilten Computersystem vorbereitet sind. Daher
werden Modifizierungen an der Prioritätswert-Entsprechungs
tabelle 270 und entsprechende Änderungen der Prioritätswerte
von Programmen mit denselben Abläufen ausgeführt, wie sie
unter Bezugnahme auf die Fig. 6-9 erläutert wurden.
Fig. 10 beinhaltet auch eine Veranschaulichung eines Kon
zepts eines Verarbeitungsablaufs zum Anfordern einer Verar
beitung mit spezifiziertem Dringlichkeitswert. Bei diesem
Ausführungsbeispiel ist angenommen, daß der Verarbeitungsab
lauf Schritte repräsentiert, wie sie ausgeführt werden, wenn
ein Benutzerprogramm 133 im Computer 100 eine Verarbeitungs
anforderung an ein Benutzerprogramm 136 im Computer 101 aus
gibt, wie es bei Fig. 5 der Fall ist. Zunächst fordert das
Benutzerprogramm 133 die Prioritätswert-Umsetzeinrichtung
260 dazu auf, den Prioritätswert in einen entsprechenden
Dringlichkeitswert umzusetzen (Verbindung 280). Wenn das Be
nutzerprogramm 133 und die Prioritätswert-Umsetzeinrichtung
260 in voneinander verschiedenen Computern vorhanden sind,
ist die Verbindung 280 eine solche zwischen verschiedenen
Computern. Da die Prioritätswert-Entsprechungstabelle 270
anzeigt, daß der Prioritätswert 4 im Computer 100 dem Dring
lichkeitswert 1 entspricht, liefert die Prioritätswert-Um
setzeinrichtung 260 den Dringlichkeitswert 1 an das Benut
zerprogramm 133 zurück (Verbindung 281). Das Benutzerpro
gramm 133 gibt als nächstes eine Verarbeitungsanforderung an
das Benutzerprogramm 136 aus, wobei es den empfangenen
Dringlichkeitswert 1 verwendet (Verbindung 282). Der Compu
ter 101 setzt dann, wenn er die Information zum Spezifizie
ren des Dringlichkeitswerts 1 empfängt, diesen Dringlich
keitswert 1 im Computer 101 in einen örtlichen Prioritäts
wert um, und er weist das Benutzerprogramm 136 an, die ange
forderte Verarbeitung mit dem hergeleiteten Prioritätswert
auszuführen. Das Benutzerprogramm 136 fordert die Priori
tätswert-Änderungseinrichtung 147 dazu auf, den spezifizier
ten Dringlichkeitswert 1 in einen entsprechenden Prioritäts
wert zu ändern (Verbindung 283). Die Prioritätswert-Ände
rungseinrichtung 147 fordert die Prioritätswert-Umsetzein
richtung 260 dazu auf, den spezifizierten Dringlichkeitswert
1 in einen entsprechenden Prioritätswert umzusetzen (Verbin
dung 284). Bei diesem Ausführungsbeispiel entspricht der
Dringlichkeitswert 1 im Computer 101 dem Prioritätswert 1.
Die Prioritätswert-Umsetzeinrichtung 260 liefert den Priori
tätswert 1 als Umsetzungsergebnis an die Prioritätswert-Än
derungseinrichtung 147 zurück, um darüber zu informieren,
daß das Benutzerprogramm 136 mit dem Prioritätswert 1 ausge
führt werden muß (Verbindung 285). Da das Benutzerprogramm
136 und die Prioritätswert-Umsetzeinrichtung 260 in vonein
ander verschiedenen Computern liegen, sind die Verbindungen
284, 285 solche zwischen verschiedenen Computern. Schließ
lich verlegt die Prioritätswert-Änderungseinrichtung 147 ei
ne Programmstruktur 166 in einer Prioritätsschlange 141 in
eine Schlange für den Prioritätswert 1 (Verbindung 286).
Es ist zu beachten, daß dann, wenn das Verarbeitungsanfor
derungsprogramm zuvor seinen eigenen Dringlichkeitswert er
kannt hat, eine Umsetzung vom örtlichen Prioritätswert im
Computer, in dem das Programm liegt, auf einen gemeinsamen
Dringlichkeitswert (Verbindungen 280, 281) nicht erforder
lich ist, wie im Fall von Fig. 5. Es ist auch möglich, daß
ein Programm eine Verarbeitungsanforderung mit einem Dring
lichkeitswert ausgibt, der sich vom eigenen Dringlichkeits
wert unterscheidet, und zwar einfach durch direktes Spezifi
zieren eines speziellen Dringlichkeitswerts.
Das vorstehend erläuterte zweite Ausführungsbeispiel ent
spricht der Prioritätswert-Umsetzeinrichtung beim ersten
Ausführungsbeispiel, wie es in Verbindung mit den Fig. 1-9
beschrieben wurde, mit einer gemeinsamen Anordnung in einem
einzelnen Computer, weswegen der Vorteil besteht, daß die
Prioritätswert-Entsprechungstabelle extrem einfach verwaltet
werden kann, zusätzlich zu den Wirkungen, die beim ersten
Ausführungsbeispiel vorliegen. Die Konfiguration des zweiten
Ausführungsbeispiels ist für ein Konzept geeignet, bei dem
ein Computer mit hohem Funktionsvermögen und hoher Zuverläs
sigkeit in einem verteilten Computersystem vorhanden ist, um
das gesamte System zu verwalten, so daß die Verarbeitungs
einrichtungen, die mit der Prioritätswertverwaltung in Be
ziehung stehen, gemeinsam in diesem Computer liegen.
Nachfolgend wird ein drittes Ausführungsbeispiel der Erfin
dung beschrieben. Innerhalb eines verteilten Computersystems
ist die Aufteilung derselben Menge an Programmen auf jewei
lige Computer zum gleichen Auslasten derselben auch von Nut
zen, um Echtzeiteigenschafte 99999 00070 552 001000280000000200012000285919988800040 0002019513922 00004 99880n sicherzustellen. Wenn jedoch
die gleiche Anzahl von Programmen auf alle zur Verfügung
stehenden Computer verteilt wird, kann nicht gesagt werden,
daß die Computermittel wirkungsvoll genutzt sind, und zwar
wenn eilige Programme in einem Computer konzentriert sind
und einfache Programme als Ergebnis der Auslastungsvertei
lung in einem anderen Computer konzentriert sind. Auch führt
die Konzentration eiliger Programme in einem Computer zu ei
ner Verzögerung der Verarbeitung im Computer, wodurch keine
Echtzeiteigenschaften sichergestellt werden können. Die Er
findung erzielt jedoch eine Auslastungsverteilung abhängig
von der Wichtigkeit jedes Programms, und zwar unter Verwen
dung der Dringlichkeit. Fig. 1 zeigt den Aufbau eines ver
teilten Computersystems gemäß einem dritten Ausführungsbei
spiel zum Ausführen einer solchen Auslastungsverteilung. Die
Elemente 100-103, 110, 130-136, 140-143, 146, 147 so
wie 160-166 in Fig. 11 sind mit denjenigen Elementen iden
tisch, die in Fig. 1 mit denselben Bezugszahlen gekennzeich
net sind, während eine Prioritätswert-Umsetzeinrichtung 260
und eine Prioritätswert-Entsprechungstabelle 270 mit den in
Fig. 10 dargestellten identisch sind. Die Betriebsabläufe in
diesen Elementen in Fig. 11 sind ebenfalls ähnlich zu denen
der Gegenstücke in den Fig. 1 und 10. Ein Benutzerprogramm
137 wie auch Benutzerprogramme 130-136 liegen in der
Hauptspeichereinheit eines Computers 101, so daß das Benut
zerprogramm 137 durch eine Programmstruktur 167 in einer
Prioritätsschlange 140 verwaltet wird.
Programmausführungs- und Verschiebeeinrichtungen 290, 291,
die dazu dienen, ein Programm zu starten bzw. ein Programm
vom zugehörigen Computer zu einem anderen zu verschieben,
sind normalerweise als Funktionen der Betriebssysteme der
jeweiligen Computer vorhanden. Der Start eines Programms
beinhaltet das Erzeugen einer Programmstruktur für das neu
auszuführende Programm und das Einschreiben der Programm
struktur in die Prioritätsschlange 140 oder 141, wodurch das
Programm in einen ausführbaren Zustand gebracht wird. Das
Verschieben eines Programms beinhaltet das Verlegen eines
Programms in einem ausführbaren Zustand in einem Computer in
einen anderen Computer und das Überführen des verlegten
Programms in ausführbaren Zustand im Zielcomputer. Diese
Funktion wird auch als "Prozeßverlegung" bezeichnet, die
häufig als Funktion eines verteilten Betriebssystems vor
handen ist.
Ein Computerinformationsbereich 300 besteht aus einer Compu
terauslastung-Informationstabelle 302 und einer Computer
funktionsvermögen-Informationstabelle 304. Die Computeraus
lastung-Informationstabelle 302 beinhaltet Auslastungswerte
für jeweilige Computer, d. h. die Anzahl von Programmen, wie
sie von den jeweiligen Computern für jeden Dringlichkeits
wert auszuführen sind. Z.B. ist es aus Fig. 11 erkennbar,
daß gemäß der aktuellen Auslastung der Computer 100 drei
Programme mit dem Dringlichkeitswert 0, acht Programme mit
dem Dringlichkeitswert 1, sieben Programme mit dem Dring
lichkeitswert 2 usw. beinhaltet, während gemäß der aktuellen
Auslastung der Computer 101 ein Programm mit dem Dringlich
keitswert 0, ein Programm mit dem Dringlichkeitswert 1, zwei
Programme mit dem Dringlichkeitswert 2 usw. beinhaltet. Die
Computerfunktionsvermögen-Informationstabelle 304 speichert
Angaben zu den Funktionsvermögen der jeweiligen Computer.
Bei diesem Ausführungsbeispiel ist das Funktionsvermögen
durch einen Zahlenwert gekennzeichnet, wobei z. B. 10 MIPS
dem Wert 1 entsprechen. Das Funktionsvermögens des Computers
100 ist 10, und das Funktionsvermögen des Computers 101 ist
gemäß dieser Wertezuordnung 3. Die Programmausführungsein
richtung 209 und die Programmverschiebeeinrichtung 291 geben
nach dem Starten oder Verschieben eines Programms Änderungen
wieder, wie sie wegen ihrer Abläufe möglicherweise für die
Computerauslastung-Informationstabelle 302 vorliegen. Da
durch kann die Computerauslastung-Informationstabelle 302
jederzeit den Auslastungszustand des gesamten verteilten
Computersystems korrekt angeben.
Eine Programmverschiebung-Bestimmungseinrichtung 292 be
stimmt aus der Computerauslastung-Informationstabelle 302 im
Computerinformationsbereich 300, ob die jeweiligen Computer
abhängig von ihren Funktionsvermögen gleich ausgelastet
sind. Wenn die Auslastung nicht gleichmäßig verteilt ist,
bestimmt die Einrichtung 292, ein Programm zu verschieben,
um gleiche Verteilung der Auslastung zu erzielen. Bei diesem
Ausführungsbeispiel ist angenommen, daß die Programmver
schiebe-Bestimmungseinrichtung 292 periodisch, also mit re
gelmäßigen Intervallen, gestartet wird. Eine Computeraus
wahleinrichtung 294 bestimmt, welcher Computer der Ausfüh
rung eines neu angeforderten Programms zugeordnet werden
soll und welcher Computer als Ziel für ein zu verschiebendes
Programm auszuwählen ist, was unter Bezugnahme auf die Com
puterauslastung-Informationstabelle 302 und die Computer
funktionsvermögen-Informationstabelle 304 im Computerinfor
mationsbereich 300 erfolgt.
Der Betrieb dieses Ausführungsbeispiels wird unter Bezugnah
me auf die Fig. 11-15 beschrieben. Zunächst wird der Vor
gang erläutert, wenn ein Programm neu gestartet wird. Wenn
ein Benutzer einen Befehl zum Spezifizieren eines Dateina
mens eines ausführbaren Programms und dessen Dringlichkeits
wert eingibt, analysiert das Betriebssystem den Befehl, und
es fordert die Programmausführungseinrichtung 290 oder die
Programmverschiebeeinrichtung 291 im Betriebssystem dazu
auf, das Programm zu starten, wodurch das Starten des Pro
gramms ermöglicht ist. Hier wird der Fall erläutert, daß ein
Befehl zum Starten eines Programms mit dem Dringlichkeits
wert 1 in den Computer 100 eingegeben wird und die Programm
ausführungs- und Verschiebeeinrichtung 290 darauf anspre
chend einen Vorgang ausführt, wie er dem Start eines Pro
gramms zugeordnet ist.
Unter Bezugnahme auf das Flußdiagramm der Fig. 12 wird ein
Verarbeitungsablauf 310 zum Starten eines Programms erläu
tert. Zunächst fordert die Programmausführungs- und Ver
schiebeeinrichtung 290 die Computerauswahleinrichtung 294
dazu auf, einen Auslastung/Funktionsvermögen-Wert im Be
reich des Dringlichkeitswerts 0 bis zum Wert auszurechnen,
wie er für das zu startende Programm vorgegeben ist, und
zwar für alle Computer im verteilten Computersystem (Schritt
311). Der Auslastung/Funktionsvermögen-Wert wird dadurch
berechnet, daß der Wert für die Auslastung eines Computers
durch den Wert für dessen Funktionsvermögen geteilt wird.
Bei diesem Ausführungsbeispiel wird die Anzahl der in der
Prioritätsschlange in einem Computer eingetragenen aus führ
baren Programme als Auslastungswert für den Computer verwen
det. Die Berechnung wird dadurch ausgeführt, daß die in der
Computerauslastung-Informationstabelle 302 und der Computer
funktionsvermögen-Informationstabelle 304 im Computerinfor
mationsbereich 300 abgespeicherten Werte ausgelesen werden.
Fig. 13 zeigt die Auslastungsinformation, die Auslastungs
werte und die Auslastung/Funktionsvermögen-Werte für die
jeweiligen Computer, die sich in dem in Fig. 11 dargestell
ten Zustand befinden. Die Computerauslastung-Informations
tabelle 302 gibt die Anzahl ausführbarer Programme für jeden
Dringlichkeitswert an. Die Auslastungswerttabelle 306 gibt
die Anzahl ausführbarer Programme in jedem Bereich vom
Dringlichkeitswert 0 bis zu einem speziellen Dringlichkeits
wert (1, 2, 3, . . . 31) an, und die Auslastungs/Funkionsver
mögen-Wertetabelle 308 speichert Auslastung/Funktionsvermö
gen-Werte ab, die dadurch gewonnen wurden, daß die Ausla
stungswerte durch die jeweiligen Werte für das Computerfunk
tionsvermögen geteilt wurden. Da die Erörterung nun für ei
nen Fall abläuft, bei dem ein neu zu startendes Programm den
Dringlichkeitswert 1 hat, wird der Auslastung/Funktionsver
mögen-Wert für den Bereich 0-1 der Dringlichkeitswerte zu
1,10 für den Computer 100 und zu 0,67 für den Computer 101
berechnet.
Es wird erneut auf Fig. 12 Bezug genommen, gemäß der die
Computerauswahleinrichtung 294 als nächstes denjenigen Com
puter mit dem kleinsten Auslastung/Funktionsvermögen-Wert
als Computer auswählt, der der Ausführung des zu startenden
Programms zugeordnet wird (Schritt 312). Obwohl in Fig. 13
die Auslastung/Funktionsvermögen-Werte für mit 102 und hö
heren Bezugszahlen gekennzeichnete Computer weggelassen ist,
sei angenommen, daß der Auslastung/Funktionsvermögen-Wert
für den Computer 101, der 0,67 ist, der kleinste Wert ist,
weswegen dieser Computer 101 ausgewählt wird. Schließlich
führt die Programmausführungs- und Verschiebeeinrichtung 290
einen Vorgang aus, der den ausgewählten Computer dazu an
weist, das Programm zu starten (Schritt 313). Dieser Vorgang
erfolgt auf solche Weise, daß die Programmausführungs- und
Verschiebeeinrichtung des Computers, der mit dem Programm
start begonnen hat, die Programmausführungs- und Verschiebe
einrichtung des ausgewählten Computers dazu auffordert, das
Programm in ausführbaren Zustand zu bringen. Bei diesem Bei
spiel fordert die Programmausführungs- und Verschiebeein
richtung 291 des Computers 100 die Programmausführungs- und
Verschiebeeinrichtung 191 im Computer 101 dazu auf, das Pro
gramm in ausführbaren Zustand zu bringen.
Nachfolgend erfolgt eine Erläuterung hinsichtlich des Be
triebs zum Verschieben eines ausführbaren Programms. Bei
diesem Ausführungsbeispiel wird die Programmverschiebe-Be
stimmungseinrichtung 292 periodisch gestartet, um zu über
prüfen, ob die Auslastung gleichmäßig auf die jeweiligen
Computer abhängig von ihren Funktionsvermögen verteilt ist.
Wenn die Verteilung nicht gleichmäßig erfolgt ist, bestimmt
die Programmverschiebe-Bestimmungseinrichtung 292 die Ver
schiebung eines Programms, um zu einer gleichmäßigen Vertei
lung der Auslastung zu kommen, und dann fordert sie die Pro
grammausführungs- und Verschiebeeinrichtung 290 dazu auf,
ein Programm zu verschieben. Die Programmausführungs- und
Verschiebeeinrichtung 290 fordert ihrerseits die Computer
auswahleinrichtung 294 dazu auf, einen Zielcomputer auszu
wählen, und sie führt einen Vorgang aus, der der Verschie
bung eines Programms zugeordnet ist, und zwar in Zusammen
wirkung mit der Programmausführungs- und Verschiebeeinrich
tung des ausgewählten Zielcomputers. Bei diesem Ausführungs
beispiel wird der oben genannte Auslastung/Funktionsvermö
gen-Wert dazu verwendet, zu bestimmen, ob die Auslastungen
der jeweiligen Computer unter Berücksichtigung ihrer Funk
tionsvermögen gleich verteilt sind.
Unter Bezugnahme auf das Flußdiagramm von Fig. 14 wird ein
Verarbeitungsablauf 320 zum Verschieben eines Programms er
läutert. Zunächst setzt die Programmverschiebe-Bestimmungs
einrichtung 292 eine Variable n, die den Bereich für den
Dringlichkeitswert kennzeichnet, auf den Wert 0 (Schritt
321). Dann werden die Auslastung/Funktionsvermögen-Werte im
Bereich der Dringlichkeitswerte 0-n für die jeweiligen
Computer berechnet (Schritt 322). Wie oben beschrieben, sind
die Auslastung/Funktionsvermögen-Werte, wie sie für den in
Fig. 11 dargestellten Zustand berechnet werden, diejenigen,
die als Auslastung/Funktionsvermögen-Werte in der Tabelle
308 in Fig. 11 dargestellt sind. Danach wird die Differenz D
zwischen dem größten Auslastung/Funktionsvermögen-Wert und
dem kleinsten Auslastung/Funktionsvermögen-Wert für alle
Computer innerhalb des spezifizierten Bereichs der Dring
lichkeitswerte berechnet (Verarbeitung 323). Obwohl die Aus
lastung/Funktionsvermögen-Werte für die mit der Bezugszahl
102 und höheren Bezugszahlen gekennzeichneten Computer in
Fig. 13 weggelassen sind, wird angenommen, daß der Last/Funktionsvermögen-Wert
für den Computer 101, der 0,33 ist,
der größte ist, und daß der Last/Funktionsvermögen-Wert für
den Computer 100, der 0,30 ist, der kleinste ist, wenn n den
Wert 0 hat, und demgemäß wird die Differenz D zu 0,03 be
rechnet. Dann wird ermittelt, ob dieser Differenzwert D ei
nen Schwellenwert Dt überschreitet (Schritt 324). Bei diesem
Ausführungsbeispiel ist angenommen, daß der Schwellenwert Dt
auf 0,3 gesetzt ist. Wenn der Differenzwert D den Schwellen
wert Dt übersteigt, geht der Ablauf zu einem Schritt 325
weiter, andernfalls zu einem Schritt 328. Da bei diesem Bei
spiel die Differenz D den Schwellenwert Dt nicht übersteigt,
wenn n null ist, geht der Ablauf zum Schritt 328 weiter, in
dem n um eins inkrementiert wird. Danach wird ermittelt, ob
n den Wert 31 übersteigt (Schritt 329). Der Ablauf wird be
endet, wenn n den Wert 31 überschreitet, oder er springt auf
den Schritt 322 zurück, wenn dies nicht der Fall ist.
Da n nun auf eins gesetzt ist, kehrt der Ablauf zum Schritt
322 zurück, in dem die Auslastung/Funktionsvermögen-Werte
für die jeweiligen Computer berechnet werden, und dann wird
wieder der Differenzwert D im Schritt 323 berechnet. Obwohl
die Auslastung/Funktionsvermögen-Werte der mit 102 und den
anschließenden Bezugszahlen gekennzeichneten Computer in
Fig. 13 weggelassen sind, ist angenommen, daß der Ausla
stung/Funktionsvermögen-Wert des Computers 100 mit 1,10 der
größte Wert ist und der Auslastung/Funktionsvermögen-Wert
des Computers 101 von 0,67 der kleinste ist, wenn n den Wert
eins hat, weswegen die Differenz D zu 0,34 berechnet wird.
Daher überschreitet die Differenz D den Schwellenwert Dt,
wenn n den Wert eins hat. Wenn die Differenz D den Schwel
lenwert Dt überschreitet, entspricht dies der Ermittlung,
daß die Auslastung nicht gleichmäßig verteilt ist, so daß
ein zu verschiebendes Programm bestimmt wird (Schritt 325).
Bei diesem Ausführungsbeispiel wird das als letztes aus zu
führende Programm, d. h. dasjenige, das in der Prioritäts
schlange als letztes steht, aus den ausführbaren Programmen
für den Dringlichkeitswert n im Computer mit dem größten
Auslastung-Funktionsvermögen-Wert ausgewählt. Wie es in Fig.
11 dargestellt ist, wird dieses Programm K zur Verschiebung
ausgewählt, da der dem Dringlichkeitswert 1 des Computers
100 entsprechende Prioritätswertbereich 2-4 ist und das
als letztes auszuführende Programm das Programm K ist (Pro
grammstruktur 167).
Wenn das zu verschiebende Programm bestimmt ist, fordert die
Programmverschiebe-Bestimmungseinrichtung 292 die Programm
ausführungs- und Verschiebeeinrichtung des Computers, der
das zu verschiebende Programm enthält, dazu auf, den Vorgang
der Verschiebung des ausgewählten Programms auszuführen. Bei
diesem Beispiel führt die Programmausführungs- und Verschie
beeinrichtung 290 des Computers 100 den Programmverschiebe
vorgang aus. Zunächst fordert die Programmausführungs- und
Verschiebeeinrichtung 290 die Computerauswahleinrichtung 294
dazu auf, einen Zielcomputer auszuwählen, an den das Pro
gramm zu verschieben ist (Schritt 326 in Fig. 14). Ein als
Ziel ausgewählter Computer ist bei diesem Ausführungsbei
spiel derjenige Computer mit dem kleinsten Auslastung/Funk
tionsvermögen-Wert. Daher wird der Computer 101 mit dem
kleinsten Auslastung/Funktionsvermögen-Wert, wenn n den Wert
eins hat, als Ziel für das Programm ausgewählt.
Wenn das Ziel bestimmt ist, führt die Programmausführungs-
und Verschiebeeinrichtung den Programmverschiebevorgang aus
(Schritt 327). Bei diesem Ausführungsbeispiel führt die Pro
grammausführungs- und Verschiebeeinrichtung 290 des Compu
ters 100 den Programmverschiebevorgang in Zusammenwirkung
mit der Programmausführungs- und Verschiebeeinrichtung 291
des Computers 101 aus, der das Ziel für das Programm K ist.
Normalerweise ist die Programmausführungs- und Verschiebe
einrichtung durch das Betriebssystem gebildet. Um ein Pro
gramm zu verschieben, ist der folgende Vorgang erforderlich,
um das Programm ausführbar zu machen, wenn der Zielcomputer
101 über keine ausführbare Datei für das zu verschiebende
Programm verfügt. Vom Computer 100 wird eine ausführbare Da
tei auf den Computer 101 verlegt, die Programmstruktur des
verschobenen Programms K im Computer 100 wird aus der Prio
ritätsschlange entnommen, und im Zielcomputer 101 wird eine
Programmstruktur erzeugt und zur Prioritätsschlange hinzuge
fügt. Nachdem das Programm verschoben ist, spiegelt sich der
veränderte Auslastungszustand des Computers in der Computer
auslastung-Informationstabelle 302 wider. Bei diesem Ausfüh
rungsbeispiel wird die Computerauslastung-Informationstabel
le 302 modifiziert, wonach die Anzahl ausführbarer Programme
mit dem Dringlichkeitswert 1 für den Computer 100 sieben
ist, dagegen zwei für den Computer 101, wie in Fig. 15 dar
gestellt.
Nachdem das Programm wie oben angegeben verschoben ist,
kehrt der Ablauf zum Schritt 322 zurück, um erneut die Aus
lastung/Funktionsvermögen-Werte für die jeweiligen Computer
zu berechnen. In diesem Fall werden die berechneten Ausla
stungswerte und Auslastung/Funktionsvermögen-Werte so geän
dert, wie es in den Tabellen 306 bzw. 308 in Fig. 15 darge
stellt ist. Obwohl in Fig. 15 die berechneten Werte für die
mit 102 und anschließenden Bezugszahlen gekennzeichneten
Computer weggelassen sind, wird der Programmverschiebevor
gang wie oben angegeben wiederholt, wenn der Differenzwert D
immer noch den Schwellenwert Dt übersteigt, wenn n den Wert
eins hat. Wenn der Differenzwert D so groß ist wie der
Schwellenwert Dt, oder kleiner ist, geht der Ablauf zum
Schritt 328 weiter.
Durch Wiederholen der vorstehend genannten Vorgänge, bis n
den Wert 31 (den niedrigsten Dringlichkeitsrang) überschrei
tet, wird eine Anzahl von Programmen verschoben, um eine
gleichmäßige Verteilung der Auslastung für alle Dringlich
keitswerte zu erzielen, d. h., um die Auslastung auf alle
Computer abhängig von ihren Funktionsvermögen gleich zu ver
teilen.
Während die vorstehend genannte Programmverschiebung eine
solche ist, die von der Programmverschiebe-Bestimmungsein
richtung für die Auslastungsverteilung gestartet wird, kann
diese Programmverschiebung auch abhängig von einem vom Be
nutzer eingegebenen Befehl ausgeführt werden. In diesem Fall
wird der Dringlichkeitswert für ein zu verschiebendes Pro
gramm auf n gesetzt und es werden die Schritte 326, 327 in
Fig. 14 ausgeführt, wodurch das Programm auf den am gering
sten ausgelasteten Computer verschoben werden kann.
Es wurde nun das verteilte Computersystem gemäß dem dritten
Ausführungsbeispiel der Erfindung beschrieben. Dieses Aus
führungsbeispiel ist dahingehend vorteilhaft, daß allen Com
putern abhängig von ihren Funktionsvermögen Benutzerprogram
me in gleicher Weise zugeordnet werden können, um die Ausla
stung im gesamten verteilten Computersystem auf gleiche Wei
se zu verteilen, so daß die Computermittel wirkungsvoll ge
nutzt werden. Da das System dieses Ausführungsbeispiel die
Gleichverteilung der Auslastung unter Berücksichtigung so
wohl der Auslastungswerte als auch der Funktionsvermögen der
jeweiligen Computer bewertet, kann die Auslastungsverteilung
selbst dann klar abgeschätzt werden, wenn Differenzen zwi
schen den Funktionsvermögen verschiedener Computer vorlie
gen.
Auch können bei diesem Ausführungsbeispiel Benutzerprogramme
gleichmäßig Computern abhängig von deren jeweiligen Funk
tionsvermögen für jeden Dringlichkeitswert von Programmen
zugeordnet werden, so daß Echtzeitverarbeitung mit gleichmä
ßiger Dringlichkeit im gesamten verteilten Computersystem
aufrechterhalten werden kann.
Insbesondere ist es möglich, da die Auslastungsverteilung
unter Berücksichtigung des Dringlichkeitswerts für jedes
Programm ausgeführt wird, zu verhindern, daß dringlich aus
zuführende Programme auf einen Computer konzentriert werden,
wodurch Echtzeiteigenschaften strenger eingehalten werden.
Ferner wird gemäß diesem Ausführungsbeispiel die Verwaltung
der Auslastung im gesamten verteilten Computersystem durch
einen einzelnen Computer auf konzentrierte Weise ausgeführt,
so daß Bestimmungen für ein zu startendes Programm, die An
gabe des Ziels für ein zu verschiebendes Programm usw. wir
kungsvoll ausgeführt werden können, ohne daß Informations
austausch mit anderen Computern erfolgt.
Unter Bezugnahme auf Fig. 16 wird nachfolgend ein viertes
Ausführungsbeispiel der Erfindung beschrieben. Dieses Aus
führungsbeispiel unterscheidet sich vom dritten Ausführungs
beispiel dahingehend, daß Information hinsichtlich des Funk
tionsvermögens und die Auslastung jedes Computers im Compu
ter selbst aufbewahrt wird. Fig. 16 zeigt die Konfiguration
eines verteilten Computersystems gemäß diesem Ausführungs
beispiel. Elemente 100, 101, 110, 130-136, 140-147, 150,
151 sowie 160-166 in Fig. 16 sind identisch mit denjenigen
Elementen in Fig. 1, die dort mit denselben Bezugszahlen ge
kennzeichnet sind, wobei die entsprechenden Elemente ähnli
che Vorgänge ausführen. Die Computer 102, 103 und Einzelhei
ten innerhalb der Computer sind in Fig. 16 weggelassen. Fer
ner sind die Elemente 137, 167, 290 und 291 in Fig. 16 iden
tisch mit denjenigen Elementen, die in Fig. 11 mit denselben
Bezugszahlen gekennzeichnet sind, wobei die entsprechenden
Elemente ähnliche Vorgänge ausführen.
Computerinformationsbereiche 330, 331 beinhalten Computer
auslastung-Informationstabellen 332 bzw. 333 sowie Computer
funktionsvermögen-Informationstabellen 334 bzw. 335. Pro
grammverschiebe-Bestimmungseinrichtungen 296, 297 bestimmen
über wechselseitigen Informationsaustausch zwischen den Com
putern, ob die Auslastungen der jeweiligen Computer abhängig
von ihren Funktionsvermögen gleich verteilt sind. Wenn die
Auslastung eines Computers, der eine Programmverschiebe-Be
stimmungseinrichtung enthält, größer ist als die Auslastung
anderer Computer, nimmt die Programmverschiebe-Bestimmungs
einrichtung eine Bestimmung zum Verschieben eines Programms
in den zugehörigen Computer vor, um zu gleichmäßiger Ausla
stungsverteilung zu führen. Genauer gesagt, führen die Pro
grammverschiebe-Bestimmungseinrichtungen 296, 297 diesen
Vorgang unter Bezugnahme auf die Computerauslastung-Informa
tionstabellen 332, 333 in den Computerinformationsbereichen
330 bzw. 331 aus. Wenn ein auszuführendes Programm neu ange
fordert wird, bestimmen die Computerauswahleinrichtungen
298, 299 über wechselseitigen Informationsaustausch zwischen
den Computern, welcher Computer der Ausführung des Programms
zugeordnet wird. Auch dann, wenn ein Programm von einem Com
puter zu einem anderen zu verschieben ist, bestimmen die
Computerauswahleinrichtungen 298, 299, ebenfalls durch wech
selseitigen Informationsaustausch zwischen den Computern, an
welchen Computer das Programm zu verschieben ist. Die Compu
terauswahleinrichtungen 298, 299 nehmen diese Bestimmungen
unter Bezugnahme auf die Computerauslastung-Informationsta
bellen 332, 333 und die Computerfunktionsvermögen-Informa
tionstabellen 334, 335 in den Computerinformationsbereichen
330 bzw. 331 vor.
Bei diesem Ausführungsbeispiel stimmen sowohl der Vorgang
zum neuen Starten eines Programms als auch der Vorgang zum
Verschieben eines Programms im wesentlichen mit denjenigen
des dritten Ausführungsbeispiels überein, wie sie in Verbin
dung mit den Fig. 11-15 beschrieben wurden. Jedoch unter
scheidet sich dieses Ausführungsbeispiel vom dritten Ausfüh
rungsbeispiel im folgenden Punkt. Beim dritten Ausführungs
beispiel werden die Auslastung/Funktionsvermögen-Werte für
alle Computer im System durch die Programmverschiebe-Bestim
mungseinrichtung 292 oder die Computerauswahleinrichtung 294
im einzelnen Computer 100 berechnet. Bei diesem Ausführungs
beispiel werden dagegen die Auslastung/Funktionsvermögen-Werte
der jeweiligen Computer 100, 101 durch die Programm
verschiebe-Bestimmungseinrichtungen 296, 297 oder die Compu
terauswahleinrichtungen 298, 299 in den jeweiligen Computern
100, 101 berechnet, und eine Computerauswahleinrichtung in
einem Computer, der ein Programm startet, oder eine Progamm
verschiebe-Bestimmungseinrichtung in einem Computer, der ein
Programm verschiebt, sammelt die berechneten Auslastung/Funktionsvermögen-Werte,
um das Programm zu bestimmen, das
zu starten ist, oder um ein Ziel zu bestimmen, an das ein
Programm zu verschieben ist, und zwar unter Bezugnahme auf
die so gesammelten Auslastung/Funktionsvermögen-Werte.
Zusätzlich zu den Vorteilen der gleichmäßigen Auslastungs
verteilung und der gewährleisteten Echtzeiteigenschaften,
wie sie beim dritten Ausführungsbeispiel vorliegen, hat die
ses Ausführungsbeispiel die folgenden Vorteile. Da die Aus
lastungsverwaltung gleichmäßig auf die Computer verteilt
ist, so daß dann, wenn ein Computer ein Programm startet
oder verschiebt, die Computerauslastungsinformation nur in
diesem Computer und in einem Computer verändert werden muß,
in dem das gestartete Programm liegt, oder in einem Compu
ter, an den das Programm verschoben wird, werden zunächst
wirkungsvoll Zustandsänderungen der Computerauslastungsin
formation wiedergegeben. Außerdem ist die Erweiterbarkeit
des Systems verbessert, da die Computerinformationstabelle
selbst dann nicht modifiziert werden muß, wenn ein Computer
im verteilten Computersystem weggenommen wird oder ein neuer
Computer hinzugefügt wird.
Es existieren Verschiedene Alternativen hinsichtlich des
dritten und vierten Ausführungsbeispiels. Erstens kann, wäh
rend bei diesen Ausführungsbeispielen die Auslastungsinfor
mation, die Anzahl ausführbarer Programme anzeigt, zusammen
mit der Dringlichkeit abgespeichert und ausgewertet wird,
die als Kriterium zum Starten oder Verschieben eines Pro
gramms verwendet wird, der örtliche Prioritätswert in jedem
Computer abgespeichert werden und anstelle der Dringlichkeit
als Kriterium ausgewertet werden. Durch diese Alternative
muß jeder Computer bei der Verarbeitung nur den Prioritäts
wert berücksichtigen, so daß die Umsetzung zwischen dem
Prioritätswert und dem Dringlichkeitswert weggelassen wer
den kann, wodurch eine wirkungsvolle Verwaltung erzielt
wird. Auch in diesem Fall können die Prioritätswert-Umsetz
einrichtung 260, die die Entsprechungsbeziehung zwischen
Dringlichkeitskeiten und Prioritätswerten verwaltet, oder
die Prioritätswert-Umsetzeinrichtungen 144, 145 mit einer
Funktion zum Modifizieren der Entsprechungsbeziehung abhän
gig von den Auslastungen der jeweiligen Computer versehen
sein, wie für das erste Ausführungsbeispiel in Verbindung
mit den Fig. 6-9 dargelegt, wodurch der Dringlichkeits-
oder Prioritätswert abhängig von den Auslastungen der jewei
ligen Computer eingestellt werden kann.
Während beim dritten und vierten Ausführungsbeispiel der
Auslastungswert für einen Computer durch die Anzahl ausführ
barer Programme wiedergegeben ist, kann der Auslastungswert
auch durch die Summe von Verarbeitungsumfängen oder Voraus
gesagten Verarbeitungszeiten für ausführbare Programme wie
dergegeben sein. Der letztere Weg ist dahingehend von Vor
teil, daß die Auslastungen jeweiliger Computer genauer abge
schätzt sind, so daß eine vollständig gleiche Auslastungs
verteilung erzielt werden kann.
Während im verteilten Computersystem gemäß dem dritten und
vierten Ausführungsbeispiel ein Computer bestimmt wird, der
ein Programm startet, oder auf den ein Programm verschoben
wird, wobei sowohl die Auslastung als auch das Funktionsver
mögen der jeweiligen Computer berücksichtigt wird, kann die
Bestimmung nur unter Berücksichtigung einer dieser zwei Pa
rameter erfolgen. Insbesondere in einem verteilten Computer
system, bei dem die mehreren Computer vom selben Typ sind,
muß nur die Auslastung der jeweiligen Computer berücksich
tigt werden. Auf diese Weise kann die Bestimmung einfacher
erfolgen, wodurch der Wirkungsgrad verbessert ist.
Ferner kann, während beim verteilten Computersystem gemäß
dem dritten oder vierten Ausführungsbeispiel der Ausla
stungswert eines Computers auf Grundlage der Anzahl ausführ
barer Programme bewertet wird, wobei ein Dringlichkeitswert
verwendet wird, der von null bis zum Dringlichkeitswert
geht, wie er für das zu startende oder zu verschiebende Pro
gramm vergeben ist, diese Auswertung auf Grundlage der An
zahl ausführbarer Programme erfolgen, die denselben Dring
lichkeitswert haben wie ein zu startendes oder zu verschie
bendes Programm. Diese Auswertung ist dahingehend vorteil
haft, daß die zum Berechnen des Auslastungswerts erforderli
che Zeit verringert ist, so daß ein wirkungsvollerer Betrieb
erzielbar ist.
Im verteilten Computersystem können Verarbeitungsanforderun
gen auf solche Weise verteilt werden, daß mehrere Programme,
die denselben Vorgang beinhalten, gleichzeitig auf mehreren
Programmen ausgeführt werden. Herkömmlicherweise wird zum
Verteilen von Verarbeitungsanforderungen ein Leerlaufpro
gramm (ein Programm, das keinen Vorgang ausführt) aus meh
reren Programmen ausgewählt, die denselben Vorgang ausfüh
ren, und eine Verarbeitungsanforderung wird an dieses ausge
wählte Programm ausgegeben. Wenn jedoch ein derartiges Pro
grammauswahlverfahren in einem verteilten Computersystem mit
Echtzeitverarbeitung realisiert wird, wird nicht immer ein
Programm mit hohem Prioritätswert ausgewählt, oder es ist
unbestimmt, ob der Betrieb mit einer Geschwindigkeit abge
schlossen wird, wie sie von der anfordernden Partei er
wünscht ist. Fig. 17 zeigt ein fünftes Ausführungsbeispiel
der Erfindung zum Auswählen eines Programms mit einem Prio
ritätswert, wie von einer anfordernden Partei gewünscht, aus
mehreren gleichen Programmen, wobei dafür gesorgt wird, daß
das ausgewählte Programm die angeforderte Verarbeitung aus
führt. Dieses Ausführungsbeispiel schafft ein System zum
gleichzeitigen Realisieren von Echtzeiteigenschaften zum
Auswählen eines Programms, das mit einer gewünschten Ge
schwindigkeit arbeitet, und eine gewünschte Gleichverteilung
der Auslastung. Dieses Ausführungsbeispiel ist durch die
vorstehend genannte Prioritätswert-Umsetzeinrichtung 260 und
eine Programmauswahleinrichtung 410 realisiert, zum Bestim
men eine Zielprogramms, an das eine Verarbeitungsanforderung
auszugeben ist, wozu das Umsetzungsergebnis von der Priori
tätswert-Umsetzeinrichtung 260 verwendet wird.
In Fig. 17 sind Elemente 100-103, 110 sowie 140-143 mit
denjenigen Elementen identisch, die in Fig. 1 mit denselben
Bezugszahlen gekennzeichnet sind. Einzelheiten zur Hardware
der Computer 100, 101 sind weggelassen. Die Prioritätswert-
Umsetzeinrichtung 260 und die Prioritätswert-Entsprechungs
tabelle 270 verwenden denselben Ablauf und dieselbe Daten
struktur, wie sie von ihren Gegenstücken in Fig. 10 verwen
det werden. Die Benutzerprogramme 430-442 liegen in den
Computern 100, 101. Unter ihnen werden die Benutzerprogramme
440-442 nicht von der Programmauswahleinrichtung 410 ver
waltet. Zu Programmen, die nicht der Verwaltung durch die
Programmauswahleinrichtung 410 unterliegen, gehören ein ein
zigartiges Programm im verteilten Computersystem, ein Pro
gramm, das für sich arbeitet, ohne eine Anforderungsanfrage
zu empfangen usw. Jedes Benutzerprogramm erhält einen Prio
ritätswert und es wird in Schlangen für jeweilige Priori
tätswerte in Prioritätsschlangen 140, 141 verwaltet. Blöcke
450, 451, 454-458 sowie 460-462 repräsentierten Beispie
le von Programmstrukturen für die jeweiligen Anwenderpro
gramme, und sie verfügen über Information zu den Anwender
programmen 430, 431, 434-438 bzw. 440-442. Programm
strukturen, wie sie den Benutzerprogrammen 432, 433, 439
entsprechen, sind weggelassen. Bei der Erfindung werden meh
rere Programme, die denselben Vorgang ausführen, gleichzei
tig in mehreren Computern ausgeführt, und es wird ein Pro
gramm, für das Verarbeitung angefordert wurde, abhängig vom
Dringlichkeitswert jedes Programms bestimmt, wenn eine Ver
arbeitungsanforderung ausgegeben wird. In Fig. 17 ist ange
nommen, daß die Benutzerprogramme 431-433 Programme sind,
die denselben Vorgang ausführen (Programmgruppe B), während
die Benutzerprogramme 435, 436 (Programmgruppe D) sowie die
Benutzerprogramme 438, 439 (Programmgruppe F) entsprechend
Programme sind, die denselben Vorgang ausführen.
Die Programmauswahleinrichtung 410 verwaltet die Computer,
auf denen diese Programme laufen, sowie die Prioritätswerte
der Programme, um ein Programm mit optimalem Prioritätswert
auszuwählen. Eine Programmort-Datenbank 420 ist als Verwal
tungs-Datenstruktur vorhanden, die dazu verwendet wird, ein
optimales Programm auszuwählen. Die Programmort-Datenbank
420 verwaltet Programmort-Informationsbereiche 470-479,
von denen jeder dazu dient, die Kennung eines Computers ab
zuspeichern, wobei auf diesen Computern Programme laufen,
die denselben Vorgang ausführen, und sie speichern auch den
Prioritätswert des jeweiligen Programms ab. Ein alternatives
Verwaltungsverfahren, bei dem Information wie eine Kommuni
kationsadresse für ein Programm usw. in den Programmort-In
formationsbereichen abgespeichert sind, kann verwendet wer
den, um eine Verarbeitungsanforderung zu vereinfachen. Unter
den Programmort-Informationsbereichen 470-479 sind dieje
nigen, die Information zu Programmen, die denselben Vorgang
ausführen, zusammengefaßt, und sie werden in der Form einer
Programmliste verwaltet, wie 421-426. Z.B. speichern die
Programmort-Informationsbereiche 471-473 Ortsinformation
zu Programmen, die denselben Vorgang ausführen (Programm
gruppe B), so daß sie gemeinsam als Programmliste 422 abge
speichert sind. Übrigens können, da die Programmgruppen A,
C, E nur jeweils ein Programm beinhalten, diese Gruppen ohne
ihre Programmlisten in der Programmort-Datenbank 420 verwal
tet werden. Wenn der Prioritätswert irgendeines in der Pro
grammauswahleinrichtung 410 verzeichneten Programms in ir
gendeinem Computer geändert wird, wenn ein Programm aus ei
nem bestimmten Computer gelöscht wird oder wenn ein zu regi
strierendes Programm neu gestartet wird, wird diese Pro
grammauswahleinrichtung 410 über die Kennung des Computers,
der diesem Programm zugeordnet ist, und den Prioritätswert
des Programms informiert, um den Inhalt der Programmort-Da
tenbank 420 zu modifizieren.
Nachfolgend erfolgt eine Erläuterung für ein Verfahren zum
Auswählen eines Verarbeitungsanforderungsziels auf Grundlage
des Prioritätswerts unter Verwendung der Prioritätswert-Um
setzeinrichtung 260 und der Programmauswahleinrichtung 410.
Fig. 18 zeigt einen beispielhaften Ablauf für ein Programm
auswahlverfahren. Bei diesem Ausführungsbeispiel ist ange
nommen, daß ein Benutzerprogramm 440 ein Programm in der
Programmgruppe D (Benutzerprogramm 435 oder 436) anfordert,
das den Dringlichkeitswert 0 spezifiziert. Zunächst fragt
das Benutzerprogramm 440 aus der Programmauswahleinrichtung
410 den Ort des Programms in der Programmgruppe D ab, das
dem Dringlichkeitswert 0 entspricht (Verbindung 480). Da die
Programmauswahleinrichtung 410 einen Computer, in dem jedes
Programm läuft, und den Prioritätswert des Programms er
kennt, jedoch nicht den Dringlichkeitswert des Programms,
wird der spezifizierte Dringlichkeitswert 0 in unveränderter
Weise an die Prioritätswert-Umsetzeinrichtung 260 weiterge
geben (Verbindung 481). Im Ergebnis wird eine Prioritäts
wertliste 490 entsprechend dem Dringlichkeitswert 0 an die
Programmauswahleinrichtung 410 gegeben (Verbindung 482). Der
Inhalt der Prioritätswertliste zeigt den Bereich örtlicher
Prioritätswerte in jedem Computer, wie sie dem spezifizier
ten Dringlichkeitswert entsprechen. Bei diesem Ausführungs
beispiel wird die Programmauswahleinrichtung 410 mit einer
Prioritätswertliste versorgt, die anzeigt, daß den Dring
lichkeitswert 0 im Computer 100 die Prioritätswerte 0-1
entsprechen, und daß im Computer 101 der Prioritätswert 0
dazu gehört, was über die Verbindung 482 erfolgt. Die Pro
grammauswahleinrichtung 410 vergleicht den Inhalt der Pro
grammort-Datenbank 420 mit dem Inhalt der Prioritätswertli
ste 490, um ein Programm zu bestimmen, an das eine Verarbei
tungsanforderung ausgegeben wird. Bei dem in Fig. 18 darge
stellten Beispiel handelt es sich nur um Programmortinforma
tion 476 (entsprechend dem Benutzerprogramm 436), die dem
Prioritätswert entspricht, wie er durch die Prioritätswert
liste 490 in der Programmliste 424 für die Programmgruppe D
spezifiziert ist. Die Programmauswahleinrichtung 410 be
stimmt daher, daß das im Computer 101 liegende Benutzerpro
gramm 436 das Ziel ist, an das die Verarbeitungsanforderung
ausgegeben wird, und sie informiert das Benutzerprogramm 440
über diesem Bestimmungsergebnis (Verbindung 483). Das Benut
zerprogramm 440 gibt eine Verarbeitungsanforderung an das
Benutzerprogramm 436 aus, das über die Verbindung 483 dar
über informiert wurde (Verbindung 484). Alternativ ist es
möglich, ein Kommunikations-Zwischenschaltungsverfahren zu
verwenden, bei dem die Programmauswahleinrichtung 410 Infor
mation 480 vom Benutzerprogramm 440 direkt an das Benutzer
programm 436 überträgt (Verbindung 485).
Fig. 19 zeigt ein Beispiel für einen Verarbeitungsablauf 500
durch die Programmauswahleinrichtung 410 zum Vergleichen der
Programmlisten 421-426 mit der Prioritätswertliste 490 zum
Auffinden eines Programms mit einem Prioritätswert, der dem
spezifizierten Prioritätswertebereich entspricht. Zunächst
greift die Programmauswahleinrichtung 410 auf den ersten
Programmort-Informationsbereich zu, wie er durch die spezi
fizierte Programmliste angegeben wird (Schritt 501). Wenn
der Programmort-Informationsbereich leer ist (falls dies der
Fall ist, wird dies in einem Schritt 502 ermittelt), erkennt
die Programmauswahleinrichtung 410, das kein Programm vor
handen ist, das einen Prioritätswert im spezifizierten Prio
ritätswertebereich aufweist, und sie informiert das die die
Verarbeitung anfordernde Programm über diese Tatsache
(Schritt 503). Wenn der Programmort-Informationsbereich, auf
den zugegriffen wurde, nicht leer ist, wird aus der Priori
tätswertliste 490 ein Eintrag abgerufen, der mit dem Priori
tätswert eines Computers übereinstimmt, wie im Programmort-
Informationsbereich abgespeichert (Schritt 504). Wenn der im
Programmort-Informationsbereich abgespeicherte Prioritäts
wert im Prioritätswertebereich enthalten ist, wie im Schritt
504 abgerufen (falls dies der Fall ist, wird es in einem
Schritt 505 ermittelt), informiert die Programmauswahlein
richtung 410 das die Verarbeitung anfordernde Programm über
ein Programm, das einen Prioritätswert innerhalb des Priori
tätswertebereichs aufweist (Schritt 506). Wenn im Schritt
505 bestimmt wird, daß der Prioritätswert des Programms au
ßerhalb des spezifizierten Bereichs liegt, greift die Pro
grammauswahleinrichtung 410 auf den nächsten Programmort-In
formationsbereich in der Programmliste zu (Schritt 507) und
wiederholt dieselben Abläufe ab dem Schritt 502. Unter Ver
wendung des Verarbeitungsablaufs 500 wird, bei dem in Fig.
18 dargestellten Beispiel, die erste Programmortinformation
in einem Bereich 475 der Programmliste 424 für die Programm
gruppe D zunächst mit der Prioritätswertliste 490 vergli
chen, und dann wird die zweite Programmortinformation in ei
nem Bereich 476 mit der Prioritätswertliste 490 verglichen.
Da der im Programmort-Informationsbereich 476 abgespeicherte
Prioritätswert in dem durch die Prioritätswertliste 490 spe
zifizierten Bereich liegt, wird dieser ausgewählt und über
das die Verarbeitung anfordernde Programm informiert.
Beim fünften Ausführungsbeispiel der Erfindung können mehre
re Programme mit verschiedenen Prioritätswerten, die densel
ben Vorgang ausführen, verteilt in mehreren Computern im
verteilten Computersystem angeordnet werden, wodurch eine
Auslastungsverteilung erzielt wird, d. h. eine Verteilung von
Verarbeitungsanforderungen abhängig von der Dringlichkeit.
Insbesondere ist eine Wirkung dieses Ausführungsbeispiels zu
erwarten, da sich sogar Verarbeitungsanforderungen für den
selben Inhalt der Verarbeitung häufig voneinander hinsicht
lich der Dringlichkeit unterscheiden, und zwar abhängig vom
anfordernden Programm.
Ferner kann gemäß dem fünften Ausführungsbeispiel durch ein
Vorabeinstellen verschiedener Prioritätswerte für mehrere
Programme, die denselben Vorgang ausführen, derselbe Verar
beitungsinhalt mit verschiedenen Dringlichkeitswerten ange
fordert werden, ohne daß die Prioritätswert-Änderungsein
richtung verwendet wird, wodurch Echtzeiteigenschaften im
selben Ausmaß wie beim ersten Ausführungsbeispiel sicherge
stellt sind.
Fig. 20 zeigt ein sechstes Ausführungsbeispiel der Erfin
dung, das ein verteiltes Computersystem zeigt, das eine Kom
bination aus Prioritätswert-Umsetzeinrichtungen 144, 145,
die verteilt in jedem Computer liegen, und eine Programmaus
wahleinrichtung 510 zeigt, die Kennungen der Computer spei
chert, auf denen Programme, die denselben Vorgang ausführen,
laufen, und die auch die Dringlichkeitswerte der Programme
speichert, um ein Programmanforderungsziel zu bestimmen. In
den Fig. 20 sind die Elemente 100-103, 110, 140-145, 150
und 155 identisch mit denjenigen Elementen, die in Fig. 1
mit denselben Bezugszahlen gekennzeichnet sind. Einzelheiten
zur Hardware der Computer sind weggelassen. Auch haben die
Benutzerprogramme 430-442 und die Programmstrukturen 450-462
dieselben Inhalte wie in Fig. 17. Programmstrukturen,
die den Benutzerprogrammen 432, 433, 439 entsprechen, sind
weggelassen.
Eine Programmauswahleinrichtung 510 verwaltet Computer, auf
denen die oben genannten Programme laufen, und sie verwaltet
die Dringlichkeitswerte der Programme und bestimmt ein Pro
gramm mit optimalem Dringlichkeitswert. Eine Programmort-Da
tenbank 520 ist als Datenstruktur zur Verwaltung vorhanden,
die dazu verwendet wird, ein optimales Programm auszuwählen.
Die Programmort-Datenbank 520 verwaltet Programmort-Informa
tionsbereiche 530-539, jeweils zum Einspeichern der Ken
nung von Computern, auf denen jeweils Programme laufen, die
denselben Vorgang ausführen, und sie speichern den Dring
lichkeitswert für das Programm. Aus den Programmort-Informa
tionsbereichen 530-539 werden diejenigen in der Form von
Programmlisten 421-426 zusammengefaßt und verwaltet, die
Information zu Programmen speichern, die denselben Vorgang
ausführen. Während die Programmort-Informationsbereiche 470-479
in Fig. 17 jeweils die Kennung eines Computers, auf
dem ein Programm läuft und den Prioritätswert des Programms
speichern, speichern die Programmort-Informationsbereiche
530-539 in Fig. 20 jeweils die Kennung eines Computers,
auf dem ein Programm läuft, sowie den Dringlichkeitswert des
Programms, anstelle des Prioritätsrangs. Ein alternatives
Verwaltungsverfahren, das Information wie Kommunikations
adressen zu einem Programm usw. in den Programmort-Informa
tionsbereichen speichert, kann verwendet werden, um eine
Verarbeitungsanforderung zu vereinfachen. Wenn der Dring
lichkeitswert irgendeines in der Programmauswahleinrichtung
510 registrierten Programms in irgendeinem Computer verän
dert wird, wenn ein Programm aus einem zugehörigen Computer
gelöscht wird oder ein zu registrierendes Programm neu ge
startet wird, wird die Programmauswahleinrichtung 510 über
die Kennung eines Computers, auf dem das betreffende Pro
gramm läuft, und den Dringlichkeitswert des Programms infor
miert, um den Inhalt der Programmlisten zu modifizieren.
Auch dann, wenn sich die Entsprechungsbeziehung zwischen dem
Prioritätswert und dem Dringlichkeitswert an irgendeinem
Computer ändert, informieren die Prioritätswert-Umsetzein
richtungen 144, 145 die Programmauswahleinrichtung 510 über
Änderungen der entsprechenden Beziehungen, um derartige Än
derungen in den Dringlichkeitswerten widerzuspiegeln, wie
sie in den Programmort-Informationsbereichen 520-529 abge
speichert sind.
Fig. 20 veranschaulicht auch einen Verarbeitungsablauf zum
Auswählen eines Verarbeitungsanforderungsziels auf Grundlage
der Dringlichkeit, unter Verwendung der Prioritätswert-Um
setzeinrichtungen 144, 145 und der Programmauswahleinrich
tung 510. Bei diesem Ausführungsbeispiel ist angenommen, daß
ein Benutzerprogramm 440 eine Verarbeitungsanforderung an
ein Programm in der Programmgruppe D (Benutzerprogramm 435
oder 436) ausgibt, wie im Fall von Fig. 18. Zunächst fragt
das Benutzerprogramm 440 die Programmauswahleinrichtung 510
hinsichtlich des Orts eines Programms in der Programmgruppe
D ab, das dem Dringlichkeitswert 0 entspricht (Verbindung
540). Da die Programmauswahleinrichtung 510 einen Computer,
auf dem jedes Programm läuft, und den Dringlichkeitswerts
des Programms erkennt, kann sie dann, wenn sie befragt wird,
den Ort eines Programms herausfinden, das den Bedingungen
genügt, daß es zur Programmgruppe D genügt und den Dring
lichkeitswert 0 hat. Bei diesem Ausführungsbeispiel genügt
nur die Programmortinformation 536 (entsprechend dem Benut
zerprogramm 436) den obigen Bedingungen unter den zwei Pro
grammen, die zur Programmgruppe D gehören. Die Programmaus
wahleinrichtung 410 bestimmt daher, daß das im Computer 101
liegende Benutzerprogramm 436 das Ziel ist, an das die Ver
arbeitungsanforderung geliefert wird, und sie informiert das
Benutzerprogramm 440 über dieses Bestimmungsergebnis (Ver
bindung 541). Das Benutzerprogramm 440 gibt eine Verarbei
tungsanforderung an das Benutzerprogramm 436 aus, das dar
über über die Verbindung 541 informiert wird (Verbindung
542). Alternativ ist es auch möglich, ein Kommunikations-
Zwischenschaltungsverfahren zu verwenden, bei dem die Pro
grammauswahleinrichtung 510 Information 540 vom Benutzerpro
gramm 440 direkt an das Benutzerprogramm 436 überträgt (Ver
bindung 543).
Im verteilten Computersystem gemäß dem sechsten Ausführungs
beispiel der Erfindung kann, zusätzlich zu den Wirkungen des
fünften Ausführungsbeispiels, die Wirkung erzielt werden,
daß die Programmauswahl schneller als beim fünften Ausfüh
rungsbeispiel abgeschlossen wird, da die Programmauswahlein
richtung 510 die Prioritätswert-Umsetzeinrichtungen 144, 145
nicht dazu anweisen muß, einen Dringlichkeitswert in einen
entsprechenden Prioritätswert umzusetzen. Da jedoch die Pro
grammort-Informationsbereiche 530, 539 jeweils den Dring
lichkeitswert eines zugeordneten Programms speichern, kann
es eine Änderungen der Entsprechungsbeziehung zwischen einem
Dringlichkeitswert und einem Prioritätswert wegen einer ver
änderten Auslastung eines bestimmten Computers, erforderlich
machen, die Dringlichkeitswerte in den entsprechenden Pro
grammort-Informationsbereichen entsprechend zu ändern. Aus
diesem Grund ist das System des fünften Ausführungsbeispiels
von Vorteil, wenn die Auslastungen der Computer zeitlich
stark schwanken.
Abweichend von den beim fünften und sechsten Ausführungsbei
spiel veranschaulichten Systemen ist es auch möglich, ein
verteiltes Computersystem aufzubauen, das eine Kombination
aus der Programmauswahleinrichtung 510 und der Prioritäts
wert-Umsetzeinrichtung 260 oder eine Kombination aus der
Programmauswahleinrichtung 410 und den Prioritätswert-Um
setzeinrichtungen 144, 145 enthält. Es ist jedoch zu beach
ten, daß, da die in den Fig. 17, 18, 20 dargestellten Syste
me keinen Fall annehmen, bei dem Programme unter Änderung
ihrer Prioritätswerte ausgeführt werden, die Prioritätswert-
Änderungseinrichtungen 146, 147 nicht beschrieben sind. Je
doch können diese Systeme so modifiziert werden, daß sie
diese Ablaufeinrichtungen zusätzlich beinhalten, damit die
Prioritätswerte von Programmen verändert werden können.
In einem verteilten Computersystem mit mehreren Programmen,
die denselben Vorgang ausführen, kann, wenn eine Verarbei
tungsanforderung an ein Programm ausgegeben wird, das gerade
eine Verarbeitung ausführt, eine neu angeforderte Verarbei
tung an eines der mehreren Programme verlegt werden, die
denselben Vorgang ausführen, wodurch die jeweiligen Program
me wirkungsvoll genutzt werden können, und die neu angefor
derte Verarbeitung wird prompt ausgeführt, was zu einer Ver
besserung der Echtzeiteigenschaften führt. Ein siebtes
Ausführungsbeispiel der Erfindung zum Ausführen einer sol
chen Verlegung einer Verarbeitungsanforderung wird nachfol
gend unter Bezugnahme auf Fig. 21 beschrieben. Fig. 21 zeigt
ein verteiltes Rechnersystem mit der Funktion des Verlegens
einer Verarbeitungsanforderung, die neu an ein Programm aus
gegeben wird, die bereits ein anderes Programm ausführt, das
denselben Vorgang wie das ursprünglich angeforderte Programm
ausführt. In Fig. 21 stimmen die Elemente 100-103, 110 so
wie 140-143 mit denjenigen Elementen überein, die in Fig.
mit denselben Bezugszahlen gekennzeichnet sind. Details
zur Hardware der Computer 100, 101 sind weggelassen. Eine
Prioritätswert-Umsetzeinrichtung 260 und eine Prioritäts
wert-Entsprechungstabelle 270 verwenden dieselben Abläufe
und Datenstrukturen wie sie bei den Gegenstücken in Fig. 10
verwendet sind. Die Elemente 410, 420-426, 430-442 sowie
450-462 zeigen denselben Inhalt wie in Fig. 17. Auch sind
Programmstrukturen weggelassen, die den Benutzerprogrammen
432, 433 und 439 entsprechen.
Bei diesem Ausführungsbeispiel ist jedes Programm intern mit
einer Verarbeitungsverlegeeinrichtung 550 und einer Schlange
551 versehen, damit eine Verarbeitungsanforderung auf ein
anderes Programm verlegt werden kann. Die Schlange 551 ist
ein Puffer zum Einspeichern von Verarbeitungsanforderungen
der Reihe nach, wie sie an ein zugehöriges Programm ausgege
ben werden. Die Verarbeitungsverlegeeinrichtung 550 über
wacht die Verarbeitungsanforderung, wie sie an der Schlange
551 antreffen, während das zugehörige Programm eine angefor
derte Verarbeitung ausführt. Diese Verarbeitungsverlegeein
richtung 550 ermöglicht es, daß Verarbeitungsanforderungen
auf Programme verteilt werden können, damit die Belastung
aller Computer im System gleich verteilt ist. Ein Informa
tionsfluß 560-565 veranschaulicht, wie eine Verarbeitungs
anforderung durch die Verarbeitungsverlegeeinrichtung auf
ein anderes Programm verlegt wird. Dabei ist als Beispiel
ein Prozeß veranschaulicht, bei dem ein Benutzerprogramm 440
eine Verarbeitungsanforderung mit dem Dringlichkeitswert 1
an ein Benutzerprogramm 438 (ein Programm in einer Programm
gruppe F) ausgibt (Verbindung 560) und diese Verarbeitungs
anforderung auf ein anderes Programm verlegt wird. Wenn Ver
arbeitungsanforderungen das Benutzerprogramm 438 erreichen,
das eine Verarbeitung ausführt, werden diese Verarbeitungs
anforderungen in die Schlange 551 eingespeichert. Blöcke
552, 553 repräsentieren die eintreffenden Verarbeitungsan
forderungen. Wenn die Verarbeitungsverlegeeinrichtung 550
eine neue Verarbeitungsanforderung 553 empfängt, befragt sie
die Programmauswahlenrichtung 410, ob ein anderes Programm
mit dem Dringlichkeitswert 1, das die Verarbeitungsanforde
rung 553 akzeptieren soll, in der Programmgruppe F vorhanden
ist (Verbindung 561). Die Programmauswahleinrichtung 410 in
formiert die Prioritätswert-Umsetzeinrichtung 260 über den
Dringlichkeitswert 1 (Verbindung 562) und empfängt eine
Prioritätswertliste 491, die den Bereich von Prioritätswer
ten angibt, die dem Dringlichkeitswert 1 entsprechen (Ver
bindung 563). In Fig. 21 sind den Computern 101, 102 ent
sprechende Daten aus der Prioritätswertliste 491 weggelas
sen. Durch Vergleichen der Prioritätswertliste 491 mit einer
Programmliste 426 für die Programmgruppe F erfolgt eine Aus
wahl hinsichtlich Programmortinformation für ein Programm,
das dem angeforderten Dringlichkeitswert genügt. Dabei ver
meidet die Programmauswahleinrichtung 410 die Auswahl von
Programmortinformation, die das Benutzerprogramm 438 selbst
repräsentiert. Bei dem in Fig. 21 dargestellten Beispiel,
wird, da die Programmortinformation 479 (entsprechend dem
Benutzerprogramm 439) im Bereich der Prioritätswerte enthal
ten ist, wie sie durch die Prioritätswertliste 491 angegeben
werden, der Ort des Benutzerprogramms 439, der der Ortsin
formation entspricht, der Verarbeitungsverlegeeinrichtung
550 mitgeteilt (Verbindung 564). Die Verarbeitungsverlege
einrichtung 550 fordert beim Empfang dieser Ortsinformation
das Benutzerprogramm 439 dazu auf, die neu eintreffende Ver
arbeitung 553 auszuführen (Verbindung 565).
Beim siebten Ausführungsbeispiel der Erfindung sind die Ver
arbeitungsverlegeeinrichtung 550 und die Schlange 551 in je
dem Programm vorhanden. Alternativ können sie getrennt vom
Programm vorliegen, um als Ablauf und als Datenstruktur zu
dienen, die gemeinsam von mehreren Programmen verwendet wer
den können. Auch dieses Ausführungsbeispiel besteht aus dem
verteilten Computersystem von Fig. 17, das eine Kombination
aus der Programmauswahleinrichtung 410 und der Prioritäts
wert-Umsetzeinrichtung 260 sowie der zusätzlichen Verarbei
tungsverlegeeinrichtung 550 beinhaltet. Zusätzlich zu dieser
Konfiguration kann auch noch die Verarbeitungsverlegeein
richtung 550 im verteilten Computersystem von Fig. 20 vor
handen sein, das eine Kombination aus der Programmauswahl
einrichtung 510 und der Prioritätswert-Umsetzeinrichtungen
144, 145 enthält, um für eine ähnliche Funktion zu sorgen.
Das verteilte Computersystem des siebten Ausführungsbei
spiels ermöglicht es, Verarbeitungsanforderungen, wie sie
an einzelne Programme ausgegeben werden, auf andere Program
me zu verlegen, die denselben Dringlichkeitswert wie die ur
sprünglich angeforderten Programme haben, so daß Verarbei
tungsanforderungen auf mehrere Programme verteilt werden
können, ohne daß eine große Anzahl von Verarbeitungsanfor
derungen auf ein spezielles Programm konzentriert wird. Fer
ner kann eine neu angeforderte Verarbeitung ausgeführt wer
den, ohne daß auf den Abschluß einer aktuell ausgeführten
Verarbeitung gewartet werden muß, wodurch die Echtzeiteigen
schaften weiter verbessert sind.
Für das siebte Ausführungsbeispiel sind alternative Konfigu
rationen möglich. Während das System des siebten Ausfüh
rungsbeispiels eine Verarbeitung, die von einem Programm neu
angefordert wird, während dieses eine andere Verarbeitung
ausführt, diese Verarbeitung auf ein anderes Programm ver
legt, kann ein Programm, das die Ausführung einer neuen Ver
arbeitung übernehmen soll, mit einem höheren Dringlichkeits
wert versehen werden, anstatt daß die neu angeforderte Ver
arbeitung verlegt wird, damit das Programm dazu in der Lage
ist, die in Ausführung befindliche Verarbeitung und die neu
angeforderte Verarbeitung schnell abzuschließen. Anders ge
sagt, gibt dieses System einem Programm, das mehrere Verar
beitungsanforderungen erhalten hat, abhängig von der Anzahl
der Anforderungen einen höheren Dringlichkeitswert, so daß
die erwünschten Echtzeiteigenschaften in vollem Umfang für
die mehrere Verarbeitungsanforderungen sichergestellt sind.
Es ist zu beachten, daß, damit dieses System verwendet wer
den kann, die Prioritätswert-Änderungseinrichtungen 146, 147
in jedem Computer vorhanden sein müssen, damit der Priori
tätswert jedes Programms geändert werden kann.
Die insoweit in Verbindung mit den Fig. 1-21 beschriebenen
Ausführungsbeispiele beinhalten Verfahren, die die Dring
lichkeit als gemeinsames Konzept in das verteilte Computer
system einführen, um örtliche Prioritätswerte auf gleichmä
ßige Weise in den jeweiligen Computern unter Verwendung des
Dringlichkeitswerts zu verwalten. Wenn ein Dringlichkeits
wert in einen absoluten Zahlenwert umgesetzt wird, kann für
die gleichmäßige Verwaltung eine Verarbeitungszeitgrenze
verwendet werden. Die Verarbeitungszeitgrenze kann dann,
wenn sie verwendet wird nicht direkt in einen Prioritäts
wert umgesetzt werden. Es kann an verschiedene Situationen
gedacht werden. Z.B. muß, obwohl die Verarbeitungszeitgrenze
lang ist, eine große Menge an Verarbeitungen ausgeführt wer
den; obwohl die Verarbeitungszeitgrenze kurz ist, muß nur
eine kleine Menge an Verarbeitungen ausgeführt werden usw.
Daher muß der Prioritätswert abhängig von der Zeitgrenze und
der Verarbeitungsmenge bestimmt werden. Fig. 22 zeigt ein
achtes Ausführungsbeispiel eines verteilten Computersystems
zum gleichmäßigen Verwalten von Prioritätswerten unter Ver
wendung eines Satzes aus einer Zeitgrenze und einer Verar
beitungsmenge.
In Fig. 22 sind Elemente 100, 101, 110, 130-136, 142, 143,
146 und 147 identisch mit denjenigen Elementen, die in Fig.
1 mit denselben Bezugszahlen gekennzeichnet sind. Details
zur Hardware der Computer 100, 101 wie auch der Computer
102, 103 sind weggelassen. Blöcke 570, 571 repräsentieren
Prioritätsschlangen, die Programmschlangen bilden, wie sie
für jeweilige Prioritätswerte in den jeweiligen Computern
100, 101 erstellt sind, um die Ausführungsreihenfolge zu
verwalten. Eine Prioritätsschlange besteht aus Programm
strukturen, wofür Beispiele als 590-596 dargestellt sind.
Die Programmstrukturen 590-596 beinhalten jeweils Verar
beitungsmengedaten 600 als Teil der Datenstruktur. Jede Pro
grammstruktur ist mit einem Datenwert zur Verarbeitungsmenge
versehen, wie sie von einem zugehörigen Programm auszuführen
ist, um die Umsetzung von einem Satz aus einer Zeitgrenze
und einer Verarbeitungsmenge in einen Prioritätswert zu un
terstützen. Zu Werten, die als Verarbeitungsmenge abgespei
chert werden, können die folgenden gehören:
- (1) die Anzahl von Anweisungen, die in einem Programm auszu führen sind;
- (2) die Programmgröße; und
- (3) die Verarbeitungsmenge eines Programms, wie es das vori ge Mal ausgeführt wurde (tatsächliche Verarbeitungszeit des Programms, das früher ausgeführt wurde/Computerfunktionsver mögen).
Diese Werte werden alle durch die Einheit von 1.000 Anwei
sungen (pro Sekunde) oder dergleichen repräsentiert. In der
Praxis ist das Wünschenswerteste der drei Beispiele das Bei
spiel (1), nämlich die Anzahl von Anweisungen, die in einem
Programm auszuführen sind, jedoch ist es ziemlich schwierig,
diese Anzahl von Anweisungen zu zählen. Daher werden die
statische Größe eines Programms und die Verarbeitungsmenge
bei der vorigen Ausführung des Programms gemessen und als
Verarbeitungsmenge-Datenwert 600 abgespeichert. Um für eine
gute Annäherung and die Anzahl von Anweisungen, die in einem
Programm auszuführen sind, zu sorgen, wird die Programmgröße
als Anfangswert für den Verarbeitungsmenge-Datenwert 600
eingespeichert, und der Datenwert 600 wird mit einem Wert
für die Verarbeitungsmenge aktualisiert, wie er bei jeder
Programmausführung aufgezeichnet wird.
Prioritätswert-Umsetzeinrichtungen 572, 573 entsprechen Vor
gängen zum Umsetzen eines Satzes aus einer Zeitgrenze und
einer Verarbeitungsmenge in einen örtlichen Prioritätswert
in den zugehörigen Computern 100 bzw. 101. Bei diesem Aus
führungsbeispiel beinhalten die Prioritätswert-Umsetzein
richtungen 572, 573 Prioritätswert-Entsprechungstabellen
580, 581, die die Übereinstimmung zwischen einer Zeitgrenze
pro Einheitsverarbeitungsmenge und einem Prioritätswert
(PRI) angeben. Die Zeitgrenze pro Einheitsverarbeitungsmenge
kann dadurch berechnet werden, daß die für ein Programm ver
gebene Zeitgrenze mittels der Verarbeitungsmenge für das
Programm normiert wird. Bei diesem Ausführungsbeispiel gibt
die Prioritätswert-Entsprechungstabelle 580 an, daß der Com
puter 100 ein Programm mit dem Prioritätswert 0 in 0,017
Millisekunden pro Einheitsverarbeitungsmenge ausführen kann,
dagegen ein Programm mit dem Prioritätswert 225 in 22,77
Millisekunden pro Einheitsverarbeitungsmenge. Die Priori
tätswert-Entsprechungstabelle 581 gibt andererseits an, daß
ein Computer 101 mit geringerem Funktionsvermögen länger
braucht, um die Einheitsverarbeitungsmenge abzuarbeiten, und
zwar, selbst wenn diese denselben Prioritätswert hat. Wegen
des geringeren Funktionsvermögens führt der Computer 101
z. B. ein Programm mit einem Prioritätswert 0 in 0,034 Milli
sekunden pro Einheitsverarbeitungsmenge aus, was länger als
diejenige Zeit ist, die der Computer 100 benötigt, um eine
Einheitsverarbeitungsmenge eines Programms mit dem Priori
tätswert 0 abzuarbeiten. Die Inhalte der Prioritätswert-Ent
sprechungstabellen 580, 581 werden abhängig von Änderungen
der Belastung in solcher Weise modifiziert, daß dieselbe
Zeitgrenze einem höheren Prioritätswert bei einem stärker
ausgelasteten Computer entspricht. Die Prioritätswert-Um
setzeinrichtungen 572, 573 verwenden die Prioritätswert-Ent
sprechungstabellen 580, 581, um einen Satz aus einer Zeit
grenze und einer Verarbeitungsmenge in einen zugehörigen
Prioritätswert umzusetzen, und umgekehrt.
Die Prioritätswert-Entsprechungstabellen 580, 581 können
durch die in Fig. 22 realisierte Feldstruktur ohne jede Än
derung realisiert sein. Die Struktur kann in der Sprache C
beschrieben sein, wie mit 610 in Fig. 23 dargestellt. Wenn
das Feld durch die Aussage 610 erzeugt wird, sind, obwohl
eine Umsetzung von einem Prioritätswert in eine entsprechen
de Zeitgrenze pro Einheitsverarbeitungsmenge leicht ausge
führt werden kann, Techniken wie eine Binärsuche erforder
lich, um eine Umsetzung von einer Zeitgrenze in einen ent
sprechenden Prioritätswert umzunehmen, da die Zeitgrenze ein
kontinuierlicher Wert ist (als Gleitpunktzahl ausgedrückt).
Binärsuche ist z. B. in "Information Processing Handbook" be
schrieben, herausgegeben vom Institute of Information Pro
cessing Engineers, Ohm-sha, S. 58. Bei diesem Ausführungs
beispiel ist es erforderlich, für eine Zeitgrenze "Zeit
grenze" einen Prioritätswert p zu vergeben, der der folgen
den Bedingung genügt:
to_time[p] <= timelimit < to_time[p+1].
Daher wird ein Algorithmus auf Grundlage einer Binärsuche so
modifiziert, daß eine Suche abhängig von dem in Fig. 24 dar
gestellten Ablauf 620 erfolgt. Der Ablauf 620 ist in der
Sprache C geschrieben, und eine Umsetzung von einer Zeit
grenze auf einen entsprechenden Prioritätswert kann dadurch
bewerkstelligt werden, daß der Ablauf 620 so aufgerufen
wird, daß die Zeitgrenze pro Einheitsverarbeitungsmenge als
Argument angegeben ist. Verfahren zur Umsetzung zwischen der
Zeitgrenze pro Einheitsverarbeitungsmenge und einem Priori
tätswert können wie folgt zusammengefaßt werden:
- (1) Umsetzung von einem Prioritätswert in eine Zeitgrenze: timelimit-to_time[p]
- (2) Umsetzung von einer Zeitgrenze in einen Prioritätswert: p-to_priority (timelimit).
Eine Verarbeitungsanforderung kann dann zurückgewiesen wer
den, wenn ein Computer selbst dann die Zeitgrenze nicht er
füllt, wenn er die Verarbeitung mit höchster Priorität aus
führt.
Bei den in den Fig. 22-24 dargestellten Beispielen werden
die Prioritätswert-Entsprechungstabellen 580, 581 dazu ver
wendet, einen Satz aus einer Zeitgrenze und einer Verarbei
tungsmenge in einen entsprechenden Prioritätswert umzuset
zen, und umgekehrt. Alternativ können die Tabellen durch
Gleichungen ersetzt werden, wie im Fall der Verwendung des
Dringlichkeitswerts (siehe Fig. 3).
Nachfolgend erfolgt eine Erläuterung dafür, wie eine Verar
beitungsanforderung von einem Computer an einen anderen un
ter Verwendung der Prioritätswert-Umsetzeinrichtungen 572,
573 und der Prioritätswert-Änderungseinrichtungen 146, 147,
wie in diesem Ausführungsbeispiel zum Spezifizieren einer
Zeitgrenze dargestellt, ausgegeben wird. Auf ähnliche Weise
wie bei den Informationsübertragungen zum Spezifizieren des
Dringlichkeitswerts kann ein in Echtzeit arbeitendes ver
teiltes Computersystem einfacher dann aufgebaut werden, wenn
Informationsübertragung mit einer spezifizierten Verarbei
tungszeitgrenze erfolgt. Bei diesem Ausführungsbeispiel kann
daher ein Anforderungsprogramm eine Zeitgrenze spezifizie
ren, wenn eine Verarbeitungsanforderung ausgegeben wird.
Fig. 25 veranschaulicht ein Zeitgrenze-Spezifizierverfahren
gemäß der Erfindung, das in der Sprache C geschrieben ist.
Eine Aussage 630 repräsentiert ein Verfahren zum Spezifizie
ren einer Zeitgrenze als erstes Argument in einer Verarbei
tungsanforderung und eine Aussage 631 repräsentiert ein Ver
fahren zum Spezifizieren einer Zeitgrenze als letztes Argu
ment in einer Verarbeitungsanforderung. Während ein Satz aus
einer Zeitgrenze und einer Verarbeitungsmenge bestimmt wer
den müssen, um einen entsprechenden Prioritätswert festzule
gen, wie oben beschrieben, muß die Zeitgrenze nur bei Ausge
ben einer Verarbeitungsanforderung spezifiziert werden, da
die Verarbeitungsmenge dadurch bestimmt werden kann, daß auf
den Verarbeitungsmenge-Datenwert 600 in der Programmstruktur
im angeforderten Computer Bezug genommen wird.
Fig. 26 zeigt schematisch einen Verarbeitungsablauf zum Aus
geben einer Verarbeitungsanforderung unter Verwendung des
oben genannten Zeitgrenze-Spezifizierverfahrens. Elemente
100, 101, 110, 130-136, 142, 143, 146 und 147 in Fig. 26
sind mit solchen Elementen identisch, die in Fig. 1 mit
denselben Bezugszahlen gekennzeichnet sind. Die Computer
102, 103 und Einzelheiten innerhalb derselben sind weggelas
sen. Auch sind die Elemente 570-573, 580, 581, 590-596,
600 in Fig. 26 identisch mit Elementen, die in Fig. 22 mit
denselben Bezugszahlen gekennzeichnet sind. Bei diesem Aus
führungsbeispiel zeigt der Ablauf in Fig. 26, daß ein Benut
zerprogramm 133 eine Verarbeitungsanforderung an ein Benut
zerprogramm 136 ausgibt. Wenn es das Benutzerprogramm 133
wünscht, der vom Benutzerprogramm 136 auszuführenden Verar
beitung eine bestimmte Zeitgrenze aufzuerlegen, führt das
Benutzerprogramm 136 eine die Zeitgrenze spezifizierende In
formationsübertragung 630 oder 631 vor (Verbindung 640). In
Fig. 26 ist angenommen, daß eine Zeitgrenze von 5 Millise
kunden spezifiziert ist. Der Computer 101 muß, wenn er In
formation zum Spezifizieren der Zeitgrenze empfängt, diese
Zeitgrenze in einen örtlichen Prioritätswert in ihm Umsetzen
und das Benutzerprogramm abhängig vom Prioritätswert ausfüh
ren, wie er sich aus der Umsetzung ergibt. Das Benutzerpro
gramm 136 fordert die Prioritätswert-Änderungseinrichtung
147 dazu auf, die spezifizierte Zeitgrenze von 5 Millisekun
den in einen entsprechenden Prioritätswert umzusetzen (Ver
bindung 641). Die Prioritätswert-Änderungseinrichtung 147
fordert die Prioritätswert-Umsetzeinrichtung 573 dazu auf,
die Zeitgrenze in einen entsprechenden Prioritätswert umzu
setzen (Verbindung 642). Die Prioritätswert-Umsetzeinrich
tung 573 ruft den Verarbeitungsmenge-Datenwert 600 aus einer
5 dem Benutzerprogramm 136 zugehörigen Programmstruktur 596 ab
(Schritt 643) und bestimmt aus der abgerufenen Verarbei
tungsmenge und der spezifizierten Zeitgrenze einen Priori
tätswert. Die Verarbeitungsmenge ist für das Benutzerpro
gramm 136 zu 64.000 Anweisungen angenommen. Dann werden aus
der Zeitgrenze von fünf Millisekunden und der Verarbeitungs
menge von 64.000 Anweisungen 0,78 Millisekunden als Zeit
grenze pro Einheitsverarbeitungsmenge berechnet (Berechnung
644). Unter Bezugnahme auf die Prioritätswert-Entsprechungs
tabelle 581 ergibt sich, daß der Prioritätswert, der dem
5 Wert entspricht, wie er sich durch die Berechnung 644 ergab,
eins ist. Die Prioritätswert-Umsetzeinrichtung 573 infor
miert die Prioritätswert-Änderungseinrichtung 147 über den
Prioritätswert 1 als Umsetzungsergebnis, um anzugeben, daß
das Benutzerprogramm 136 mit dem Prioritätswert 1 ausgeführt
werden muß (Verbindung 645). Schließlich verlegt die Priori
tätswert-Änderungseinrichtung 147 die Programmstruktur 536
in einer Prioritätsschlange 571 auf eine Schlange für den
Prioritätswert 1 (Verbindung 646).
Auf die vorstehend genannte Weise können die Prioritätswerte
der Programme, die in verschiedenen Computern liegen,
gleichmäßig auf Grundlage des gemeinsamen Konzepts der Zeit
grenze verwaltet werden. Übrigens ist es auch möglich, wie
im Fall eines verteilten Computersystems unter Verwendung
von Dringlichkeitswerten, daß das Benutzerprogramm 133 die
Prioritätswert-Umsetzeinrichtung 572 dazu anweist, die Zeit
grenze aus dem eigenen Prioritätswert 4 und der Verarbei
tungsmenge zu berechnen, und es die Verarbeitungsanforderung
640 mit dieser spezifizierten Zeitgrenze ausgibt.
Ähnlich wie beim verteilten Rechnersystem, das Dringlich
keitswerte verwendet, um die örtlichen Prioritätswerte in
den jeweils zugehörigen Computern zu verwalten, kann der In
halt der Prioritätswert-Entsprechungstabelle abhängig von
Änderungen der Auslastung auch dann verändert werden, wenn
für eine solche Verwaltung die Zeitgrenze verwendet wird.
Die folgenden zwei Vorgehensweisen werden beispielhaft als
Verfahren zum Umändern einer Entsprechungstabelle zwischen
einer Zeitgrenze und einem Prioritätswert erläutert:
- (1) Vorgehensweise, gemäß der die Zeitgrenze in der Priori tätswert-Entsprechungstabelle proportional zur sich verän dernden Auslastung verändert wird; und
- (2) Vorgehensweise, gemäß der die Zeitgrenze in der Priori tätswert-Entsprechungstabelle unter Verwendung der Differenz zwischen einer tatsächlichen Ausführungszeit und der Zeit grenze verändert wird.
Fig. 27 zeigt einen Ablauf für die erste vorgehensweise 650
zum Modifizieren der Prioritätswert-Entsprechungstabelle.
Der Auslastungswert zum Zeitpunkt, zu dem die Prioritäts
wert-Entsprechungstabelle das letztemal modifiziert wurde,
wird als voriger Auslastungswert bezeichnet, und ein an
schließender Änderungswert der Auslastung wird als Gesamt
auslastungsänderung bezeichnet. Wenn sich die Auslastung än
dert, wird die aktuelle Auslastungsänderung zur Gesamtaus
lastungsänderung addiert (Schritt 651) und es wird ermit
telt, ob die sich ergebende Gesamtauslastungsänderung einem
vorgegebenen Wert entspricht, oder größer ist als dieser,
und zwar unabhängig von der Änderungsrichtung (d. h., es wird
ermittelt, ob der Absolutwert der Gesamtauslastungsänderung
dem vorgegebenen Wert entspricht oder größer ist) (Schritt
652). Wenn die Gesamtauslastungsänderung dem vorgegebenen
Wert entspricht oder größer ist, wird die Zeitgrenze in der
Prioritätswert-Entsprechungstabelle abhängig vom Verhältnis
aus dem vorigen Belastungswert und dem aktuellen Belastungs
wert korrigiert (Schritt 653). Wenn der Inhalt der Priori
tätswert-Entsprechungstabelle modifiziert ist, wird die Ge
samtauslastungsänderung auf null gesetzt, und der vorige
Auslastungswert wird auf den aktuellen Auslastungswert ge
setzt, was als abschließender Schritt erfolgt (Schritt 654),
woraufhin die Messung der Auslastungsänderung wieder aufge
nommen wird.
Fig. 28 zeigt Tabellen zum Erläutern von Bedeutungen bei der
Modifizierung der Prioritätswert-Entsprechungstabelle ab
hängig vom Verhältnis des vorigen Auslastungswerts zum ak
tuellen Auslastungswert, wie im Schritt 653 in Fig. 27 aus
geführt. Dabei ist angenommen, daß die Prioritätswert-Ent
sprechungstabelle 580 Daten enthält, die auf Grundlage eines
Lastwerts 50 berechnet wurden (d. h., daß die Anzahl ausführ
barer Programme 50 ist), und die Prioritätswert-Entspre
chungstabelle wird jedesmal dann modifiziert, wenn der Aus
lastungswert um zehn erhöht oder verringert ist. Wenn die
Auslastung um zehn erhöht ist, wird die Prioritätswert-Ent
sprechungstabelle so modifiziert, wie es in einer Tabelle
660 dargestellt ist. Genauer gesagt, wird jeder Zeitgrenze
wert in der Tabelle 660 dadurch hergeleitet, daß der Zeit
grenzewert in der ursprünglichen Tabelle 580 mit dem Ver
hältnis aus dem vorigen Auslastungswert 50 zum geänderten
Auslastungswert 60 multipliziert wird. Auf ähnliche Weise
kann dann, wenn der Auslastungswert um zehn verringert ist,
eine Prioritätswert-Entsprechungstabelle 661 dadurch erzeugt
werden, daß jeder Zeitgrenzewert in der ursprünglichen Ta
belle 580 mit dem Verhältnis aus dem vorigen Auslastungswert
50 zum veränderten Auslastungswert 40 multipliziert wird.
Auf diese Weise kann die demselben Prioritätswert entspre
chende Zeitgrenze dann verlängert werden, wenn die Ausla
stung größer ist (eine längere Zeit ist erforderlich, um die
Verarbeitung abzuschließen), wohingegen eine Verkürzung mög
lich ist, wenn die Auslastung kleiner ist (die Verarbeitung
wird in kürzerer Zeit abgeschlossen).
Nachfolgend wird die zweite Vorgehensweise zum Modifizieren
der Prioritätswert-Entsprechungstabelle unter erneuter Be
zugnahme auf Fig. 26 erläutert. Bei der zweiten Vorgehens
weise empfängt die Prioritätswert-Umsetzungseinrichtung 573
nach dem Ausführen des Programms 136 mit dem auf eins geän
derten Prioritätswert die tatsächliche Ausführungszeit für
das Benutzerprogramm 136 (Verbindung 647). Bei dem in Fig.
26 dargestellten Beispiel ist angenommen, daß die tatsächli
che Verarbeitungszeit 3,47 Millisekunden beträgt. Dann wird
die Ausführungszeit pro Einheitsverarbeitungszeit zu 0,54
Millisekunden berechnet (3,46/4 = 0,54) (Berechnung 648).
Dieser Wert wird unmittelbar als dem Prioritätswert 1 ent
sprechende Zeitgrenze abgespeichert, um die Prioritätswert-
Entsprechungstabelle 581 zu korrigieren (Schritt 649). Es
ist zu beachten, daß zum tatsächlichen Korrigieren der Prio
ritätswert-Entsprechungstabelle ein vorgegebener Wert (z. B.
0,1 Millisekunden) zum berechneten Wert addiert werden kann,
d. h. 0,54 Millisekunden, um für Sicherheit zu sorgen.
Vorstehend wurde das verteilte Computersystem gemäß dem ach
ten Ausführungsbeispiel zum gleichmäßigen Verwalten örtli
cher Prioritätswerte, wie sie in den jeweils zugehörigen
Computern festgelegt sind, beschrieben. Bei diesem Ausfüh
rungsbeispiel ist das Konzept einer Zeitgrenze verwendet, um
gleichmäßige Verwaltung der örtlichen Prioritätswerte in den
mehreren Computern im verteilten Computersystem zu ermögli
chen, die sich voneinander hinsichtlich des Funktionsvermö
gens, der Auslastung und des Typs unterscheiden. Da die
Zeitgrenze in jedem Computer abhängig vom Funktionsvermögen
und der Auslastung desselben dadurch in einen entsprechenden
Prioritätswert umgesetzt wird, daß nur eine Verarbeitungsan
forderung mit spezifizierter Zeitgrenze ausgegeben wird, ist
es möglich, ein in Echtzeit arbeitendes verteiltes Computer
system auf einfache Weise aufzubauen.
Ferner kann gemäß diesem Ausführungsbeispiel, da ein Pro
gramm von einem Computer ausgeführt wird, nachdem die Zeit
grenze und die Verarbeitungsmenge hierfür in einen entspre
chenden Prioritätswert im Computer abhängig vom Funktions
vermögen und der Auslastung des Computers umgesetzt wurden,
eine neu angeforderte Verarbeitung mit relativ kurzer Zeit
grenze vor einer zuvor zugeordneten Verarbeitung mit langer
Zeitgrenze ausgeführt werden, was es ermöglicht, Echtzeit
verarbeitung strenger einzuhalten, während die Vorteile meh
rerer Computer wirkungsvoll genutzt werden.
Ferner kann bei diesem Ausführungsbeispiel der Inhalt der
Prioritätswert-Entsprechungstabelle so verändert werden, daß
der Prioritätswert in jedem Computer abhängig von dynami
schen Auslastungsänderungen verwaltet werden kann.
Ferner kann bei diesem Ausführungsbeispiel die Zeitgrenze
abhängig von der Bedeutung einer Verarbeitung spezifiziert
werden, wenn eine Verarbeitungsanforderung von einem Compu
ter auf einen anderen verlegt wird. Außerdem ist es zum Spe
zifizieren der Zeitgrenze nicht erforderlich, das Funktions
vermögen, die Auslastung und den Typ eines Computers zu ken
nen, an den eine Anforderung geht.
Während das System dieses Ausführungsbeispiels die Ausla
stung eines Computers durch die Anzahl ausführbarer Program
me repräsentiert, kann die Auslastung durch die Summe von
Verarbeitungsmengen oder der vorausgesagten Verarbeitungs
zeit ausführbarer Programme repräsentiert werden. Der letz
tere Weg ist dahingehend von Vorteil, daß die Auslastungen
jeweiliger Computer genauer abgeschätzt sind, so daß Echt
zeiteigenschaften strenger eingehalten werden können. Wäh
rend das Systems dieses Ausführungsbeispiels den Prioritäts
wert unter Berücksichtigung sowohl des Funktionsvermögens
als auch der Auslastung jedes Computers bestimmt, kann nur
einer dieser Parameter bei der Bestimmung des Prioritäts
werts berücksichtigt werden. Insbesondere bei einem verteil
ten Computersystem, das nur Computer desselben Typs enthält,
muß nur die Auslastung berücksichtigt werden, wodurch der
Wirkungsgrad der Umsetzung zwischen Zeitgrenzen und Priori
tätswerten verbessert ist.
Um die örtlichen Prioritätswerte von Computern gleichmäßig
zu verwalten, die zu einem verteilten Computersystem gehö
ren, wobei das Konzept der Zeitgrenze verwendet wird, ermög
licht eine Berücksichtigung der Verbindungszeit zwischen
Computern eine genauere Prioritätsverwaltung. Fig. 29 zeigt
ein neuntes Ausführungsbeispiel der Erfindung, das die Ver
bindungszeit zwischen Computern bei der Prioritätsverwaltung
berücksichtigt. Die Elemente 100, 101, 110, 130-136, 142,
143, 146 und 147 in Fig. 29 sind identisch mit den Elemen
ten, die in Fig. 1 mit denselben Bezugszahlen gekennzeichnet
sind. Die Computer 102, 103 sowie Einzelheiten innerhalb
derselben sind weggelassen. Die Elemente 570-573, 580,
581, 590-596 sowie 600 in Fig. 29 sind identisch mit den
jenigen Elementen, die in Fig. 22 mit denselben Bezugszahlen
gekennzeichnet sind. Auch sind der Ablauf der Umsetzung zwi
schen einer Zeitgrenze und einem Prioritätswert innerhalb
der Verbindungen 641, 642 sowie 645-646 identisch mit den
jenigen, die in Fig. 26 dargestellt sind.
Das System dieses Ausführungsbeispiels ist mit Verbindungs
zeit-Voraussageeinrichtungen 670, 671 versehen, um die Ver
bindungszeit zwischen Computern vorauszusagen. Die Verbin
dungszeit-Voraussageeinrichtungen 670, 671 arbeiten unab
hängig von den Prioritätswert-Umsetzeinrichtungen 572, 573,
den Prioritätswert-Änderungseinrichtungen 146, 147 usw. Die
Verbindungszeit-Voraussageeinrichtungen 670, 671 verfügen
intern über Verbindungszeittabellen 680, 681, so daß sie
dann, wenn eine Computerkennung vorgegeben wird, aus den
Verbindungszeittabellen 680 bzw. 681 die Verbindungszeit
zwischen dem zugehörigen Computer und demjenigen Computer
ausgeben, für den die Kennung eingegeben wurde. Um die Ver
bindungszeittabellen 680, 681 zu errichten, kann beispiels
weise eines der zwei folgenden Verfahren verwendet werden:
- (1) beim Aktivieren eines Computers nimmt dieser Verbindung mit allen restlichen Computern auf, um die Ausführungszeit für die Verbindung abzuspeichern; oder
- (2) die Verbindungstabelle wird erst dann errichtet, wenn eine Verbindungszeitvoraussage angefordert wird. Wenn dies das erste Mal erfolgt, nimmt der Computer Verbindung mit dem angeforderten Computer auf, um dann die Ausführungszeit für die Verbindung abzuspeichern.
Fig. 29 veranschaulicht auch einen Ablauf für Informations
austausch zum Ausgeben einer Verarbeitungsanforderung unter
Verwendung der Verbindungszeit-Voraussageeinrichtungen 670,
671. Ähnlich wie Fig. 26 zeigt Fig. 29 ein Beispiel, bei dem
ein Benutzerprogramm 133 ein anderes Benutzerprogramm 136
dazu auf fordert, eine Verarbeitung innerhalb einer spezifi
zierten Zeitgrenze auszuführen. Es sei angenommen, daß das
Benutzerprogramm 133 der vom Benutzerprogramm 136 auszufüh
renden Verarbeitung eine Zeitgrenze von 8,14 Millisekunden
auferlegen möchte. Zu diesem Zweck führt das Benutzerpro
gramm 133 einen Informationsaustausch 690 aus, um die Zeit
grenze in der durch 630 oder 631 in Fig. 25 dargestellten
Form zu spezifizieren. Diese Zeitgrenze wird als solche an
gesehen, die die Zeit beinhaltet, die für Kommunikation zwi
schen den Computern erforderlich ist, gesehen vom Benutzer
programm 133 aus. Genauer gesagt, wird die Zeitgrenze, wie
sie vom Benutzerprogramm 136 aus zu sehen ist, dadurch her
geleitet, daß die Zeit, wie sie für die Verbindung zwischen
den Computern erforderlich ist, von der Zeitgrenze von 8,14
Millisekunden abgezogen wird. Das Benutzerprogramm 136 be
fragt die Verbindungszeit-Voraussageeinrichtung 671 hin
sichtlich der Verbindungszeit zum Computer 100 (Verbindung
691). Daraufhin nimmt die Verbindungszeit-Voraussageeinrich
tung 671 auf die Verbindungszeittabelle 681 Bezug und lie
fert die Verbindungszeit zum spezifizierten Computer 100 an
das Benutzerprogramm 136 zurück (Verbindung 692). Bei den
beispielhaften Zahlenwerten in Fig. 29 beträgt die Verbin
dungszeit zum Computer 100 1,57 Millisekunden. Das Benutzer
programm 136 kann die auferlegte Zeitgrenze dadurch heraus
finden, daß es die Verbindungszeit von der spezifizierten
Zeitgrenze abzieht. Bei diesem Beispiel werden 5 Millise
kunden als Zeitgrenze für das Benutzerprogramm 136 dadurch
erhalten, daß die Verbindungszeit (1,57 × 2 = 3,14 Millise
kunden) (zum Aussenden einer Verarbeitungsanforderung und
zum Rückliefern des Ergebnisses ist dieselbe Verbindungszeit
erforderlich) von 8,14 Millisekunden abgezogen wird. Die an
schließenden Schritte sind denen in Fig. 26 ähnlich.
Beim vorstehend beschriebenen Verarbeitungsablauf wird die
endgültige Zeitgrenze durch das die Verarbeitung anfordernde
Programm berechnet, das die Verbindungszeit von der spezifi
zierten Zeitgrenze abzieht. Alternativ kann das die Verar
beitung anfordernde Programm aus der Verbindungszeit-Voraus
sageeinrichtung 870 eine Verbindungszeit abfragen, um diese
vorab von der spezifizierten Zeitgrenze abzuziehen.
Beim vorstehend beschriebenen neunten Ausführungsbeispiel
kann die beim achten Ausführungsbeispiel verwendete Zeit
grenze genauer in einen Prioritätswert umgesetzt werden.
Dies ist insbesondere dann von Wirkung, wenn die Verbin
dungszeit zwischen Computern zu lang ist, als daß sie ver
nachlässigt werden könnte.
Bei den Systemen gemäß dem achten und neunten Ausführungs
beispiel sind die Prioritätswert-Umsetzeinrichtungen 572,
573 gesondert in den jeweiligen Computern vorhanden. Alter
nativ kann eine Prioritätswert-Umsetzeinrichtung gemeinsam
in einem einzelnen Computer vorhanden sein, wie in Fig. 10
dargestellt.
Nachfolgend wird ein verteiltes Computersystem gemäß einem
zehnten Ausführungsbeispiel der Erfindung zum Ausführen ei
ner Auslastungsverteilung abhängig von der Wichtigkeit jedes
Programms gegeben. Beim zehnten Ausführungsbeispiel wird die
Auslastungsverteilung auf Grundlage einer Zeitgrenze vorge
nommen, um eine Situation zu vermeiden, bei der Programme
mit kurzen Zeitgrenzen in einem einzelnen Computer konzen
triert werden. Fig. 30 zeigt die Konfiguration des verteil
ten Computersystems gemäß dem zehnten Ausführungsbeispiel
Die Elemente 100, 101, 110, 130-136, 142, 143, 146 und 147
in Fig. 30 sind identisch mit denjenigen Elementen, die in
Fig. 1 mit denselben Bezugszahlen gekennzeichnet sind. Die
Computer 102, 103 sowie Einzelheiten innerhalb derselben
sind weggelassen. Auch sind die Elemente 137, 290, 291 in
Fig. 30 identisch mit denjenigen, die in Fig. 16 mit densel
ben Bezugszahlen gekennzeichnet sind, und entsprechende Ele
mente führen ähnliche Vorgänge aus. Prioritätsschlangen 570,
571, Prioritätswert-Umsetzeinrichtungen 572, 573, Priori
tätswert-Entsprechungstabellen 580, 581, Programmstrukturen
590-596 sowie der Verarbeitungsmenge-Datenwert 600 in Fig.
30 sind identisch- mit den entsprechenden Einheiten in Fig.
22. Ein Benutzerprogramm 137 wird durch eine Programmstruk
tur 597 verwaltet.
Computerinformationsbereiche 330, 331 beinhalten Computer
auslastung-Informationstabellen 370 bzw. 371 sowie Computer
funktionsvermögen-Informationstabellen 334 bzw. 335. Die
Computerauslastung-Informationstabellen 370, 371 beinhalten
Auslastungswerte für jeweilige Computer für jede Zeitgrenze
pro Einheitsverarbeitungsmenge. Während bei diesem Ausfüh
rungsbeispiel Begrenzer für die Zeitgrenze pro Einheitsver
arbeitungsmenge in der Computerauslastungsinformation nicht
mit regelmäßigen Intervallen vorhanden sind, können sie mit
regelmäßigen Intervallen vorliegen, um die Auslastungsver
teilung zu vereinfachen.
Unter Bezugnahme auf die Fig. 30-34 wird nun der Betrieb
des Systems gemäß diesem Ausführungsbeispiel beschrieben.
Zunächst wird erläutert, wie ein neues Programm gestartet
wird. Wenn der Benutzer einen Befehl eingibt, der eine aus
führbare Datei eines Programms zusammen mit einer Zeitgrenze
spezifiziert, analysiert das Betriebssystem den Befehl und
fordert die jeweiligen Programmausführungs- und Programmver
schiebeeinrichtungen 290, 291 in den Betriebssystemen dazu
auf, das Programm zu starten, wodurch dieses tatsächlich ge
startet werden kann. Bei diesem Beispiel ist angenommen, daß
der Computer 100 einen Befehl zum Starten eines Programms
mit einer auf 50 Millisekunden eingestellten Zeitgrenze emp
fängt, und daß die Programmausführungs- und Programmver
schiebeeinrichtung 290 daraufhin denjenigen Vorgang aus
führt, wie er zum Starten eines Programms gehört. Die fol
gende Beschreibung läuft gemäß diesem Szenarium ab.
Zunächst wird unter Bezugnahme auf Fig. 31 ein Verarbei
tungsablauf 340 für einen Programmstart erläutert. Die Pro
grammausführungs- und Verschiebeeinrichtung 290 fordert eine
Computerauswahleinrichtung 298 dazu auf, zu bestimmen, mit
welchem Zeitgrenzebereich ein neu zu startendes Programm in
nerhalb der Computerauslastungsinformation enthalten ist
(Schritt 341). Wenn z. B. angenommen wird, daß die Verarbei
tungsmenge eines Programms zu 128.000 Anweisungen abge
schätzt ist, wird die Zeitgrenze pro Einheitsverarbeitungs
menge zu 0,39 Millisekunden (50/128 = 0,39) berechnet. In
den Computerauslastung-Informationstabellen 370, 371 fallen
die 0,39 Millisekunden in den Zeitgrenzebereich 0,05-1,00.
Danach werden die Computerauswahleinrichtungen 298, 299 dazu
aufgefordert, die Auslastungs/Funktionsvermögen-Werte im
Bereich der Zeitgrenze pro Einheitsverarbeitungsmenge von
0 Millisekunden bis zu dem im Schritt 341 bestimmten Bereich
zu berechnen (Schritt 342). Die Berechnung wird dadurch aus
geführt, daß ein Auslesen aus den Computerauslastung-Infor
mationstabellen 370, 371 und den Computerfunktionsvermögen-
Informationstabellen 334, 335 erfolgt, wie in Fig. 30 darge
stellt. Die Fig. 32 stellt Tabellen dar, die die Ausla
stungsinformation, den Auslastungswert, den Auslastungs/Funktionsvermögen-Wert
jedes Computers beinhalten, in den
Zustand versetzt, wie in Fig. 30 dargestellt. Die Computer
auslastung-Informationstabellen 370, 371 geben jeweils die
Anzahl ausführbarer Programme für die zugehörigen Computer
100, 101 für jeden Bereich der Zeitgrenze pro Einheitsverar
beitungsmenge an, während die Zahlen der ausführbaren Pro
gramme in den jeweiligen Zeitgrenzebereichen von 0 Millise
kunden bis zu speziellen Zeitgrenzewerten (0-0,05; 0-1,00;
0-3,00; 0-9,00; . . ., 0-200) für die jeweiligen
Computer 100, 101 in den Auslastungswerttabellen 380, 381
abgespeichert sind. Die Anzahl der ausführbaren Programme
wird durch das jeweilige Computerfunktionsvermögen (Informa
tion) geteilt, um die Auslastungs/Funktionsvermögen-Werte
herzuleiten, wie sie in den Tabellen 382, 383 abgespeichert
sind. Da das hier betrachtete Programm neu gestartet wird,
ist ihm eine Zeitgrenze von 0,39 Millisekunden auferlegt,
und der Auslastungs/Funktionsvermögen-Wert, wie er dem mini
malen Zeitgrenzebereich 0-1 Millisekunde entspricht, der
0,39 Millisekunden enthält, wird für den Computer 100 zu
1,10 und für den Computer 101 zu 0,67 berechnet.
Danach kommunizieren die Computerauswahleinrichtungen 298,
299 miteinander, um den Computer mit dem kleinsten Ausla
stungs/Funktionsvermögen-Wert als denjenigen Computer aus
zuwählen, dem die Ausführen des zu startenden Programms zu
geordnet wird (Schritt 343). Unter Bezugnahme auf Fig. 32,
aus der Tabellen für die mit 102 und den anschließenden Be
zugszahlen bezeichneten Computer weggelassen sind, wird un
ter der Annahme des Auslastungs/Funktionsvermögen-Werts von
0,67 für den Computer 101 als kleinster Wert dieser Computer
101 ausgewählt. Schließlich führt die Programmausführungs-
und Programmverschiebeeinrichtung den Vorgang zum Starten
des Programms durch den ausgewählten Computer aus (Schritt
344). Dieser Vorgang wird in solcher Weise erzielt, daß die
Programmausführungs- und Programmverschiebeeinrichtung des
Computers, der den Programmstartablauf gestartet hat, die
Programmausführungs- und Programmverschiebeeinrichtung des
ausgewählten Computers dazu auffordert, das Programm in
einen ausführbaren Zustand zu überführen. Bei diesem Bei
spiel kommuniziert die Programmausführungs- und Programmver
schiebeeinrichtung 290 des Computers 100 mit der Programm
ausführungs- und Programmverschiebeeinrichtung 291 des Com
puters 101, um diese dazu aufzufordern, das Programm in
einen ausführbaren Zustand zu bringen.
Anschließend wird ein Verarbeitungsablauf zum Verschieben
eines ausführbaren Programms erläutert. Bei diesem Ausfüh
rungsbeispiel werden die Programmverschiebe-Bestimmungsein
richtungen 296, 297 periodisch so gestartet, daß sie mitein
ander kommunizieren, um die Auslastungen der ihnen jeweils
zugeordneten Computer klarzustellen. Die Programmverschiebe-
Bestimmungseinrichtungen 296, 297 bestimmen, wenn sie her
ausfinden, daß die Auslastungen der jeweiligen Computer un
ter Berücksichtigung ihrer Funktionsvermögen nicht gleich
mäßig verteilt sind, daß ein Programm in solcher Weise ver
schoben wird, daß die jeweiligen Computer gleich ausgelastet
sind, und sie fordern die Programmausführungs- und Programm
verschiebeeinrichtungen 290, 291 dazu auf, ein Programm zu
verschieben. Diese Programmausführungs- und Programmver
schiebeeinrichtungen 290, 291 fordern ihrerseits die Compu
terauswahleinrichtungen 298, 299 dazu auf, einen Zielcompu
ter zu bestimmen und einen 46308 00070 552 001000280000000200012000285914619700040 0002019513922 00004 46189 Vorgang auszuführen, wie er der
Verschiebung eines Programms zugeordnet ist, und zwar in Zu
sammenwirkung mit der Programmausführungs- und Programmver
schiebeeinrichtung des Zielcomputers. Bei diesem Ausfüh
rungsbeispiel werden die obengenannten Auslastungs/Funk
tionsvermögen-Werte dazu verwendet, zu ermitteln, ob die
Auslastungen der jeweiligen Computer angesichts ihrer Funk
tionsvermögen gleich verteilt sind.
Unter Bezugnahme auf Fig. 33 wird ein Verarbeitungsablauf
350 zum Verschieben eines Programms erläutert. Zunächst
setzt die Programmverschiebe-Bestimmungseinrichtung eine
einen Zeitgrenzebereich repräsentierende Variable auf 0,05
Millisekunden (Schritt 351). Dieser Wert dient als Obergren
ze eines Bereichs, in dem die Zeitgrenze pro Einheitsverar
beitungsmenge den kleinsten Wert innerhalb der Computeraus
lastungsinformation 370-371 hat. Dann wird der Ausla
stungs/Funktionsvermögen-Wert für jeden Computer im Zeit
grenzebereich von 0 bis t Millisekunden berechnet (Schritt
352). Wie oben beschrieben, sind die für die in Fig. 30 ver
anschaulichten Zustände berechneten Auslastungs/Funktions-
Vermögen-Werte für die Computer 100, 101 diejenigen, die in
den Tabellen 382, 383 aufgelistet sind. Danach wird die Dif
ferenz D zwischen dem größten Auslastungs/Funktionsvermögen-
Wert und dem kleinsten Auslastungs/Funktionsvermögen-Wert
unter den Auslastungs/Funktionsvermögen-Werten, wie sie für
alle Computer berechnet wurden, bestimmt (Schritt 353). Ob
wohl die Information zu den mit 102 und mit höheren Bezugs
zahlen gekennzeichneten Computer aus Fig. 32 weggelassen
ist, sei angenommen, daß der Auslastungs/Funktionsvermögen-
Wert von 0,33 für den Computer 101 der größte Wert und der
Auslastungs/Funktionsvermögen-Wert von 0,30 für den Computer
100 der kleinste Wert ist, wenn t 0,05 Millisekunden ist;
die Differenz D ist dann zu 0,03 berechnet. Dann wird unter
sucht, ob dieser Wert der Differenz D einen Schwellenwert Dt
überschreitet (Schritt 354). Bei diesem Ausführungsbeispiel
ist angenommen, daß der Schwellenwert Dt auf 0,3 eingestellt
ist. Wenn die Differenz D den Schwellenwert Dt überschrei
tet, geht der Ablauf zu einem Schritt 355 über, andernfalls
zu einem Schritt 358. Da bei diesem Beispiel die Differenz D
den Schwellenwert Dt nicht überschreitet, wenn n den Wert 0
hat, geht der Ablauf zum Schritt 358 weiter, wo ermittelt
wird, ob der Wert von t der Maximalwert im Zeitgrenzebereich
ist (der Maximalwert beträgt beim in Fig. 30 veranschaulich
ten Beispiel 200 Millisekunden). Wenn der Wert t der Maxi
malwert im Zeitgrenzebereich ist, endet der Ablauf. Falls
nicht, geht der Ablauf zu einem Schritt 359 weiter, in dem
die Obergrenze des nächsten Zeitgrenzebereichs in die Va
riable t eingesetzt wird. Bei diesem Beispiel geht, da t nun
auf 0,05 Millisekunden eingestellt ist, der Ablauf zum
Schritt 359 über, in dem t auf eine Millisekunden gesetzt
wird.
Dann springt der Ablauf zum Schritt 352 zurück, um die Aus
lastungs/Funktionsvermögen-Werte für die jeweiligen Computer
zu berechnen, und dann wird zum Schritt 353 weitergegangen,
in dem die Differenz D berechnet wird. Obwohl die Informa
tion für die mit 102 und höheren Bezugszahlen gekennzeichne
ten Computer in Fig. 32 weggelassen ist, sei angenommen, daß
der Auslastungs/Funktionsvermögen-Wert von 1,10 für den Com
puter 100 der größte und der Auslastungs/Funktionsvermögen-
Wert von 0,67 für den Computer 101 der kleinste Wert ist,
wenn t eine Millisekunde ist; dann wird die Differenz D zu
0,43 berechnet. Wenn t eine Millisekunde ist, überschreitet
demgemäß die Differenz D den Schwellenwert Dt. Wenn dies der
Fall ist, wird erkannt, daß die Computer nicht gleichmäßig
ausgelastet sind, wodurch ein zu verschiebendes Programm
ausgewählt wird (Schritt 355). Bei diesem Ausführungsbei
spiel ist angenommen, daß aus den ausführbaren Programmen,
die der Zeitgrenze pro Einheitsverarbeitungsmenge von t Mil
lisekunden oder weniger entsprechen, zu diesem Zweck dasje
nige Programm ausgewählt wird, das das letzte in der Priori
tätsschlange ist. Wie in Fig. 30 dargestellt, sind die Prio
ritätswerte, die dem Zeitgrenzebereich von 0,05 bis 1 Milli
sekunde des Computers 100 entsprechen, die Werte 2-4, und
das Programm K ist als dasjenige vorgesehen, das als näch
stes innerhalb der Prioritätsschlange auszuführen ist (Pro
grammstruktur 597). So wird das Programm K als zu verschie
bendes Programm ausgewählt.
Wenn das zu verschiebende Programm einmal bestimmt ist, for
dert die Programmverschiebe-Bestimmungseinrichtung des Com
puters, in dem das zu verschiebende Programm liegt, die zu
gehörige Programmausführungs- und Programmverschiebeeinrich
tung dazu auf, den Vorgang auszuführen, wie er zu einer Pro
grammverschiebung gehört. Bei diesem Beispiel ist die Pro
grammausführungs- und Programmverschiebungseinrichtung 290
des Computers 100 mit diesem Vorgang beauftragt. Sie fordert
die Computerauswahleinrichtung 298 dazu auf, einen Zielcom
puter auszuwählen, an den das ausgewählte Programm zu ver
schieben ist (Schritt 356). Die Computerauswahleinrichtung
298 kommuniziert mit den Computerauswahleinrichtungen in den
anderen Computern, um den Zielcomputer zu bestimmen. Bei
diesem Ausführungsbeispiel ist angenommen, daß der Computer
mit dem kleinsten Auslastungs/Funktionsvermögen-Wert als
Zielcomputer ausgewählt wird. Daher wird bei diesem Beispiel
der Computer 101, der den kleinsten Auslastungs/Funktions
vermögen-Wert hat, wenn t eine Millisekunde ist, als Ziel
computer ausgewählt.
Wenn das Ziel einmal bestimmt ist, führt die Programmausfüh
rungs- und Programmverschiebeeinrichtung den Programmver
schiebevorgang aus (Schritt 357). Bei diesem Beispiel führt
die Programmausführungs- und Verschiebeeinrichtung 290 des
Computers 100 die Programmverschiebeeinrichtung in Überein
stimmung mit der Programmausführungs- und Programmverschie
beeinrichtung 291 des Zielcomputers 101 aus. Nachdem das
Programm auf den Computer 101 verschoben wurde, wird der
durch diesen Verschiebevorgang verbesserte Auslastungszu
stand in den Computerauslastung-Informationstabellen 370,
371 wiedergegeben, wie in Fig. 34 dargestellt. Wie es aus
einem Vergleich der Fig. 33 mit Fig. 34 erkennbar ist, ist
in den Computerauslastung-Informationstabellen 370, 371 die
Anzahl ausführbarer Programme im Bereich der Zeitgrenze pro
Einheitsverarbeitungsmenge von 0,05 bis 1 Millisekunde von
acht auf sieben für den Computer 100 verringert, dagegen von
eins auf zwei für den Computer 101 erhöht.
Nachdem das Programm wie vorstehend beschrieben verschoben
wurde, kehrt der Ablauf erneut zum Schritt 352 zurück, um
die Auslastungs/Funktionsvermögen-Werte für die jeweiligen
Computer zu berechnen. Für diesen Fall sind die berechneten
Auslastungswerte und Auslastungs/Funktionsvermögen-Werte
diejenigen, wie sie in den Tabellen 380, 381, 382, 383 in
Fig. 34 dargestellt sind. Obwohl die Information für die mit
102 und den folgenden Bezugszahlen bezeichneten Computer aus
Fig. 34 weggelassen ist, gilt, daß die Differenz D immer
noch den Schwellenwert Dt übersteigt, wenn t eine Milli
sekunde ist, weswegen erneut ein Programmverschiebevorgang
ausgeführt wird, wie vorstehend beschrieben wurde. Wenn die
Differenz D den Wert Dt hat oder kleiner ist, geht der
Ablauf zum Schritt 358 weiter.
Durch Wiederholen des vorstehend genannten Verarbeitungs
ablaufs, wie er in Fig. 33 dargestellt ist, bis der Maximal
wert des Zeitgrenzebereichs auf den Wert t gesetzt ist, wird
Programmverschiebung ausgeführt, um gleichmäßige Ausla
stungsverteilung für die zum verteilten Computersystem ge
hörigen Computer abhängig von deren Funktionsvermögen zu
erzielen, was für alle Zeitgrenzebereiche erfolgt.
Es wurde das System gemäß dem zehnten Ausführungsbeispiel
der Erfindung beschrieben. Dieses System des zehnten Ausfüh
rungsbeispiels hat den Vorteil, daß die Auslastung im Sy
stem, d. h. durch diese auszuführende Benutzerprogramme,
gleichmäßig auf alle zum System gehörenden Computer abhängig
von deren jeweiligem Funktionsvermögen verteilt werden kann,
so daß die Computermittel wirkungsvoll genutzt werden kön
nen. Ferner beeinflussen Schwankungen der Funktionsvermögen
der Computer eine gleichmäßige Bewertung der Auslastung
nicht, da die Gleichmäßigkeit der Auslastungsverteilung un
ter Berücksichtigung sowohl der Auslastungswerte als auch
der Funktionsvermögen der jeweiligen Computer bewertet wird.
Auch ist das System dieses Ausführungsbeispiels dahingehend
von Vorteil, daß Benutzerprogramme gleichmäßig auf Computer
abhängig von deren jeweiligen Funktionsvermögen für jeden
Zeitgrenzebereich verteilt werden können, so daß Echtzeit-
Verarbeitung auf Grundlage einer gleichmäßigen Zeitgrenze im
gesamten verteilten Computersystem erzielt werden kann. Ins
besondere ist es möglich, da die Auslastung im gesamten Sy
stem unter Berücksichtigung der jeweiligen Programme aufer
legten Zeitgrenzen verteilt wird, zu verhindern, daß eine
Anzahl von Programmen mit kurzer Zeitgrenze auf einen ein
zelnen Computer konzentriert wird, wodurch eine strengere
Einhaltung von Echtzeiteigenschaften gewährleistet ist.
Während das in den Fig. 30-34 dargestellte System über
Prioritätswert-Umsetzeinrichtungen 572, 573, Computerauswahleinrichtungen
298, 299 und Computerinformationsbereiche
330, 331 verfügt, die verteilt in den jeweiligen Computern
100, 101 angeordnet sind, können diese Einrichtungen für
eine konzentrierte Verwaltung in einem einzelnen Computer
angeordnet sein.
Das unter Bezugnahme auf die Fig. 17-21 beschriebene Sy
stem ist ein solches, daß mehrere Programme, die denselben
Vorgang ausführen, auf mehreren Computern ausgeführt werden,
wodurch eine Verarbeitungsanforderung ausgegeben wird, die
einen Dringlichkeitswert spezifiziert, um aus den denselben
Vorgang ausführenden Programmen ein solches auszuwählen, das
den Prioritätswert aufweist, wie er vom anfordernden Pro
gramm gewünscht wird. Es wird nun ein elftes Ausführungsbei
spiel der Erfindung erläutert, das dazu dient, diese Pro
grammauswahl unter Verwendung der Zeitgrenze statt der
Dringlichkeit auszuführen. Fig. 35 zeigt ein verteiltes Com
putersystem gemäß dem elften Ausführungsbeispiel, das die
Funktion hat, daß es Verarbeitungsanforderungen unter Ver
wendung der Zeitgrenze verteilt. Genauer gesagt, verwendet
das System von Fig. 35 die Zeitgrenze anstelle der Dring
lichkeit, wie sie vom System von Fig. 17 verwendet wird. In
Fig. 35 sind die Elemente 100-103, 110 sowie 140-143
identisch mit denjenigen Elementen, die in Fig. 1 mit den
selben Bezugszahlen gekennzeichnet sind. Einzelheiten zur
Hardware der Computer 100, 101 sind weggelassen. Die Elemen
te 430-443, 450, 451, 454-458, 460-462 sowie 470-479
in Fig. 35 sind identisch mit denjenigen Elementen, die in
Fig. 17 mit denselben Bezugszahlen gekennzeichnet sind. Eine
Prioritätswert-Umsetzeinrichtung 720 und eine Prioritäts
wert-Entsprechungstabelle 730 sind dergestalt, daß die Prio
ritätswert-Umsetzeinrichtungen 572, 573 und die Prioritäts
wert-Entsprechungstabellen 580, 581 in Fig. 22 so modifi
ziert sind, daß sie einen einzigen Ablauf und eine einzige
Tabelle bilden, damit die Verwaltung mit diesem einzigen
Ablauf und der einzigen Datenstruktur möglich ist. Die Prio
ritätswert-Umsetzeinrichtung 720 kann für jeden Computer
einen örtlichen Prioritätswert erstellen, der einer spezifi
zierten Zeitgrenze entspricht, und zwar unter Verwendung der
in Fig. 24 dargestellten Umsetzeinrichtung 620.
Eine Programmauswahleinrichtung 700 wählt ein Programm aus,
wie es für einen anfragenden Computer optimal ist, der eine
Zeitgrenze vorgibt. Eine Programmort-Datenbank 710 ist als
Verwaltungsdatenstruktur für diese Auswahl vorhanden. Die
Programmort-Datenbank 710 verwaltet Programmort-Informa
tionstabellen 470-479 zum Einspeichern von Kennungen von
Computern, auf denen Programme, die denselben Vorgang aus
führen, laufen, und sie speichern die Prioritätswerte der
Programme. Die Programmort-Informationstabellen 470-479
werden als Programmlisten 711-716 für jeweilige Sätze von
Programmen, die denselben Vorgang ausführen, verwaltet. Bei
diesem Ausführungsbeispiel ist angenommen, daß die Programm
listen 711-716 selbst den Verarbeitungsmenge-Datenwert
600, wie er in Fig. 22 dargestellt ist, für die zugehörigen
Programme speichert. Auf diese Weise kann eine Zeitgrenze
pro Einheitsverarbeitungsmenge aus einer spezifizierten
Zeitgrenze und einem Verarbeitungsmenge-Datenwert 600, wie
von einer Programmliste 711-716 spezifiziert, hergeleitet
werden. Alternativ kann der Verarbeitungsmenge-Datenwert 600
in der Programmstruktur abgespeichert sein, so daß die Prio
ritätswert-Umsetzeinrichtung 720 den Verarbeitungsmenge
Datenwert 600 liest, um eine Zeitgrenze pro Einheitsverar
beitungsmenge herzuleiten, wie im Fall des in Fig. 22 darge
stellten Systems. Wenn die Prioritätswerte der in der Pro
grammauswahleinrichtung 700 registrierten Programme in
irgendeinem Computer verändert werden, wenn ein Programm aus
einem zugehörigen Computer gelöscht wird oder wenn ein zu
registrierendes Programm neu gestartet wird, wird die Pro
grammauswahleinrichtung 700 über die Kennung des Computers
informiert, auf dem das betreffende Programm läuft, wie auch
über den Dringlichkeitswert des Programms, um den Inhalt der
Programmort-Datenbank 710 zu modifizieren.
Nachfolgend erfolgt eine Erläuterung für ein Verfahren zum
Auswählen eines Zielprogramms, an das eine Verarbeitungs
anforderung geliefert wird, abhängig von der Zeitgrenze, un
ter Verwendung der Prioritätswert-Umsetzeinrichtung 720 und
der Programmauswahleinrichtung 700. Fig. 36 zeigt ein Bei
spiel für den Programmablauf zum Auswählen eines Programms.
Bei diesem Ausführungsbeispiel ist angenommen, daß ein Be
nutzerprogramm 440 eine Verarbeitungsanforderung an ein Pro
gramm in einer Programmgruppe D ausgibt (Benutzerprogramm
435 oder 436). Das Benutzerprogramm 440 befragt zunächst die
Programmauswahleinrichtung 700 über den Ort eines Programms,
das zur Programmgruppe D gehört und das einer Zeitgrenze von
fünf Millisekunden genügt (Verbindung 750). Die Programmaus
wahleinrichtung 700 ruft den Verarbeitungsmenge-Datenwert
600 für das Programm in der Gruppe D aus der Programmliste
714 ab (Schritt 751). Hier sei angenommen, daß die Verarbei
tungsmenge des Programms in der Gruppe D 12.000 Anweisungen
ist. Aus der vorgegebenen Zeitgrenze und dem Verarbeitungs
menge-Datenwert 600 wird die Zeitgrenze pro Einheitsverar
beitungsmenge zu 0,039 Millisekunden berechnet (5.00/128 =
0,039) (Berechnung 752). Die Programmauswahleinrichtung 700
informiert die Prioritätswert-Umsetzeinrichtung 720 über das
durch die Berechnung 752 gewonnene Ergebnis und fordert die
se dazu auf, die Zeitgrenze pro Einheitsverarbeitungsmenge
in einen Prioritätswert umzusetzen (Verbindung 753). Die
Prioritätswert-Umsetzeinrichtung 720 führt den in Fig. 24
veranschaulichten Ablauf 620 aus, um örtliche Prioritätswer
te für die jeweiligen Computer zu bestimmen, die der Zeit
grenze von 0,039 Millisekunden entsprechen, und sie infor
miert die Programmauswahleinrichtung 700 in Form der Priori
tätswertliste 492 über die bestimmten Prioritätswerte (Ver
bindung 754). Die Prioritätswertliste 492 gibt die örtlichen
Prioritätswerte für die jeweiligen Computer an, die der spe
zifizierten Zeitgrenze genügen. Bei diesem Ausführungsbei
spiel empfängt die Programmauswahleinrichtung 700 daraufhin
eine Prioritätswertliste, die angibt, daß die Zeltgrenze von
0,039 Millisekunden dem Prioritätswert 1 im Computer 100 und
dem Prioritätswert 0 im Computer 101 entspricht, was über
die Verbindung 754 erfolgt. Die Programmauswahleinrichtung
700 vergleicht den Inhalt der Programmort-Datenbank 710 mit
dem Inhalt der Prioritätswertliste 492 zum Bestimmen eines
Zielprogramms, an das die Verarbeitungsanforderung zu lie
fern ist. Der Verarbeitungsablauf 500 in Fig. 19 kann dazu
verwendet werden, die Programmliste 711-716 mit der Prio
ritätswertliste 492 zu vergleichen, um ein Programm mit
einem Prioritätswert herauszufinden, der im spezifizierten
Prioritätswertebereich liegt. Beim in Fig. 36 dargestellten
Ausführungsbeispiel enthält die Programmliste 714 für die
Programmgruppe D nur die Programmortinformation 476 (ent
sprechend dem Benutzerprogramm 436), die dem Prioritätswer
tebereich entspricht, wie er durch die Prioritätswertliste
492 spezifiziert wird. Daher bestimmt die Programmauswahl
einrichtung 700, daß das im Computer 101 liegende Benutzer
programm 436 als Ziel geeignet ist, an das die Verarbei
tungsanforderung ausgegeben werden kann, und sie informiert
das Benutzerprogramm 440 über dieses Bestimmungsergebnis
(Verbindung 755). Das Benutzerprogramm 440 gibt dann die
Verarbeitungsanforderung an das Benutzerprogramm 436 aus,
das über die Verbindung 755 aufgerufen wurde. Alternativ ist
es möglich, ein Kommunikation-Zwischenschaltungsverfahren zu
verwenden, bei dem die Programmauswahleinrichtung 700 die
Information 750 vom Benutzerprogramm 440 direkt an das Be
nutzerprogramm 436 überträgt (Verbindung 757).
Das verteilte Rechnersystem des elften Ausführungsbeispiels
ermöglicht es, daß mehrere Programme mit verschiedenen Prio
ritätswerten, die denselben Vorgang ausführen, verteilt in
zum System gehörenden Computern liegen können, wodurch eine
Verteilung von Verarbeitungsanforderungen oder der Ausla
stung abhängig von einer vorgegebenen Zeitgrenze erzielt
wird. Insbesondere ist eine gute Wirkung dieses Ausführungs
beispiels zu erwarten, da selbst Verarbeitungsanforderungen,
die nach demselben Inhalt der Verarbeitung fragen, häufig
mit verschiedenen Zeitgrenzen versehen werden, abhängig von
den anfordernden Programmen.
Weiter kann gemäß dem elften Ausführungsbeispiel dadurch,
daß für die mehreren Programme, die denselben Vorgang aus
führen, verschiedene Prioritätswerte eingestellt werden,
derselbe Verarbeitungsinhalt mit verschiedenen Zeitgrenzen
angefordert werden, ohne daß eine Prioritätswert-Umsetzein
richtung erforderlich ist, wodurch es ermöglicht ist, Echt
zeiteigenschaften im selben Ausmaß wie beim achten Ausfüh
rungsbeispiel zu gewährleisten.
Fig. 37 zeigt ein zwölftes Ausführungsbeispiel, bei dem es
sich um ein anderes verteiltes Computersystem mit Programm
auswahlfunktion, wie vorstehend beschrieben, handelt. Das
verteilte Computersystem von Fig. 37 beinhaltet eine Kombi
nation aus Prioritätswert-Umsetzeinrichtungen 572, 573, die
getrennt in jeweiligen Computern vorhanden sind, und einer
Programmauswahleinrichtung 760, die Kennungen von Computern,
auf denen denselben Vorgang ausführende Programme laufen,
und den Programmen zugeordnete Zeitgrenzen speichert, um ein
Ziel zu bestimmen, daß eine Verarbeitungsanforderung auszu
geben ist. In Fig. 37 sind die Elemente 100-103, 110 sowie
140-143 mit denjenigen Elementen identisch, die in Fig. 1
mit denselben Bezugszahlen gekennzeichnet sind. Einzelheiten
zur Hardware der Computer 100, 101 sind weggelassen. Die Be
nutzerprogramme 430-442 sowie die Programmstrukturen 450-
462 haben die gleichen Inhalte wie in Fig. 17. Die Programm
strukturen, die den Benutzerprogrammen 432-433 sowie 439
entsprechen, sind weggelassen. Die Prioritätswert-Umsetzein
richtungen 572, 573, die Prioritätswert-Entsprechungstabel
len 580, 581 und der Verarbeitungsmenge-Datenwert 600 ent
sprechen jeweils denselben Abläufen und Datenstrukturen wie
in Fig. 22.
Die Programmauswahleinrichtung 700 verwaltet Computer, auf
denen diese Programme laufen, wie auch die Zeitgrenzen, um
ein Programm mit optimaler Zeitgrenze zu bestimmen. Eine
Programmort-Datenbank 770 ist zu diesem Zweck als Verwal
tungsdatenstruktur vorhanden. Die Programmort-Datenbank 770
verwaltet Programmort-Informationstabellen 780-789 zum
Einspeichern von Kennungen von Computern, auf denen densel
ben Vorgang ausführende Programme laufen, sowie deren Zeit
grenzen (es ist zu beachten, daß die Zeitgrenze in diesem
Fall eher eine Verarbeitungsvoraussagezeit repräsentiert).
Die Programmort-Informationstabellen 780-789 bilden Pro
grammlisten 771-776, so daß jeder Satz von Programmen, die
denselben Vorgang ausführen, eine Liste bilden. Während die
Programmort-Informationstabellen 470-479 in Fig. 35 Ken
nungen von Computer, auf denen denselben Vorgang ausführende
Programme laufen und deren Prioritätswerte speichern, spei
chern die Programmort-Informationstabellen 780-789 in Fig.
37 Zeitgrenzen anstelle von Prioritätswerten. Die Zeitgrenze
kann dadurch berechnet werden, daß die Zeitgrenze pro Ein
heitsverarbeitungsmenge, wie sie dem Prioritätswert eines
Programms entspricht, mit der Verarbeitungsmenge des Pro
gramms multipliziert wird. Z.B. läuft das Benutzerprogramm
436 (in der Programmgruppe D) auf dem Computer 101 mit dem
Prioritätswert 0. Wenn angenommen wird, daß die Prioritäts
menge des Programms in der Programmgruppe D 128.000 Anwei
sungen umfaßt, wird diese Zeitgrenze zu 4,35 Millisekunden
berechnet (0,034 × 128 = 4,35). Dieser Wert wird in den Pro
grammort-Informationsbereich 786 eingespeichert (Ortsinfor
mationsbereich, der dem Benutzerprogramm 436 entspricht).
Wenn der Prioritätswert eines in der Programmauswahleinrich
tung 760 registrierten Programms in irgendeinem Computer ge
ändert wird, wenn ein Programm aus irgendeinem Computer ge
löscht wird oder wenn ein zu registrierendes Programm neu
gestartet wird, wird die Programmauswahleinrichtung 760 über
den zu diesem Programm gehörenden Computer und den Priori
tätswert des Programms informiert, um den Inhalt der Pro
grammlisten zu modifizieren. Auch dann, wenn die Entspre
chungsbeziehung zwischen dem Prioritätswert und der Zeit
grenze für irgendeinen Computer geändert wird, informieren
die Prioritätswert-Umsetzeinrichtungen 572, 573 die Pro
grammauswahleinrichtung 760 über derartige Änderungen der
Entsprechungsbeziehung, um die zugehörigen Zeitgrenzen zu
ändern, die in den Programmort-Informationsbereichen 780-789
abgespeichert sind.
Fig. 37 veranschaulicht auch ein Verfahren zum Auswählen
eines Zielprogramms, an das eine Verarbeitungsanforderung
ausgegeben wird, abhängig von der Zeitgrenze, und zwar unter
Verwendung der Prioritätswertumsetzeinrichtungen 572, 573
sowie der Programmauswahleinrichtung 760. Auf ähnliche Weise
wie bei der Erläuterung zum Verarbeitungsablauf in Fig. 36
ist es auch bei diesem Ausführungsbeispiel angenommen, daß
ein Benutzerprogramm 440 eine Anforderungsanweisung an ein
Programm in einer Programmgruppe D (Benutzerprogramm 435
oder 436) ausgibt. Das Benutzerprogramm 440 befragt zunächst
die Programmauswahleinrichtung 760 hinsichtlich des Orts
eines Programms, das zur Programmgruppe D gehört und eine
Zeitgrenze von fünf Millisekunden einhält (Verbindung 790).
Da die Programmauswahleinrichtung 760 die Kennungen von Com
putern, auf denen jeweils gleiche Programme laufen, und
deren Zeitgrenzen erkannt hat, kann sie dabei den Ort eines
Programms herausfinden, das den Bedingungen genügt, daß das
Programm zur Programmgruppe D gehört und seine Zeitgrenze
fünf Millisekunden entspricht oder kürzer ist. Bei diesem
Ausführungsbeispiel genügt innerhalb der zwei Benutzerpro
gramme in der Programmgruppe D nur die Programmortinforma
tion 786 (entsprechend dem Benutzerprogramm 436) den vor
stehend genannten Bedingungen. Daher bestimmt die Programm
auswahleinrichtung 700, daß das im Computer 101 liegende
Benutzerprogramm 436 als Ziel geeignet ist, an das die Ver
arbeitungsanforderung ausgegeben werden kann, und sie infor
miert das Benutzerprogramm 440 über diese Bestimmung (Ver
bindung 791). Das Benutzerprogramm 440 gibt dann die Verar
beitungsanforderung an das Benutzerprogramm 436 aus, das
über die Verbindung 791 aufgefunden wurde. Alternativ ist
es möglich, ein Kommunikations-Zwischenschaltungsverfahren
zu verwenden, bei dem die Programmauswahleinrichtung 760
Information 790 vom Benutzerprogramm 440 direkt an das Be
nutzerprogramm 436 liefert (Verbindung 793).
Das System gemäß dem zwölften Ausführungsbeispiel hat die
selbe Wirkung wie das des elften Ausführungsbeispiels und
ist darüber hinaus dahingehend von Vorteil, daß die Pro
grammauswahl schneller als bei dem in den Fig. 35, 36 darge
stellten Systemen erfolgen kann, da die Programmauswahlein
richtung 760 nicht die Prioritätswert-Umsetzeinrichtungen
572, 573 dazu anweist, eine Zeitgrenze in einen entsprechen
den Prioritätswert umzusetzen. Es ist jedoch zu beachten,
daß, da die Programmort-Informationsbereiche 780-789 Zeit
grenzen enthalten, diese Zeitgrenzen in diesen Programmort-
Informationsbereichen unter Umständen geändert werden müs
sen, wenn Änderungen in der Auslastung irgendeines Computers
bewirken, daß sich die Entsprechungsbeziehung zwischen der
Zeitgrenze und dem Prioritätswert ändert. Daher ist das in
den Fig. 35, 36 dargestellte System dann von Vorteil, wenn
sich die Auslastungen der jeweiligen Computer zeitlich stark
ändern.
Abweichend von dem in den Fig. 35, 36 dargestellten System
und dem in Fig. 37 dargestellten System ist es auch möglich,
ein System aufzubauen, das eine Kombination aus der Pro
grammauswahleinrichtung 760 und der Prioritätswert-Umsetz
einrichtung 720 enthält, oder ein System, das die Programm
auswahleinrichtung 700 und die Prioritätswert-Umsetzeinrich
tungen 572, 573 enthält. Ferner sind zwar die Prioritäts
wert-Umsetzeinrichtungen 146, 147 für die in den Fig. 35-37
dargestellten Systeme nicht beschrieben, da diese Systeme
nicht davon ausgehen, daß sie ein Programm mit verändertem
Prioritätswert starten müssen, jedoch können diese Einrich
tungen hinzugefügt sein, damit das System die Prioritätswer
te ändern kann.
Schließlich zeigt Fig. 38 ein System gemäß einem dreizehnten
Ausführungsbeispiel der Erfindung, das eine Zeitgrenze dazu
verwendet, um ein an ein Programm ausgegebene Verarbeitungs
anforderung auf ein anderes Programm zu verlegen, die den
selben Vorgang wie das angeforderte Programm ausführt, ähn
lich wie dies beim verteilten Rechnersystem in Fig. 21 der
Fall ist. In Fig. 38 sind die Elemente 100-103, 110 sowie
140-143 identisch mit denjenigen Elementen, die in Fig. 1
mit denselben Bezugszahlen gekennzeichnet sind. Einzelheiten
zur Hardware der Computer 100, 101 sind weggelassen. Priori
tätswert-Umsetzeinrichtungen 572, 573 sowie ein Verarbei
tungsmenge-Datenwert 600 entsprechen jeweils demselben Da
tenablauf sowie Datenstruktur wie in Fig. 22. Benutzerpro
gramme 430-443 sowie Programmstrukturen 450-462 haben
jeweils denselben Inhalt wie Fig. 17. Programmstrukturen,
die den Benutzerprogrammen 432, 433, 439 entsprechen, sind
weggelassen. Auch-sind die Elemente 760, 760-776 sowie
780-789 in Fig. 38 identisch mit denjenigen Elementen, die
in Fig. 37 mit denselben Bezugszahlen bezeichnet sind. Die
Verarbeitungsverlegeeinrichtung 550, die Schlange 551 sowie
die Verarbeitungsanforderungen 552, 553 sind identisch mit
den entsprechenden Einheiten in Fig. 21.
Um das Konzept der Zeitgrenze zu verwenden, kann eine Bedin
gung zum Verlegen einer angeforderten Verarbeitung auf ein
anderes Programm die folgenden zwei repräsentativen Beispie
le umfassen:
- (1) Eine Anforderung für eine neue Verarbeitung wird an ein Programm ausgegeben, das gerade schon eine andere Verarbei tung ausführt; und
- (2) es wird erkannt, daß eine aktuell ausgeführte Verarbei tung nicht rechtzeitig beendet wird.
Im ersteren Fall ermöglichen es die Verarbeitungsverlegeein
richtung 550 und die Schlange 551, daß eine Verarbeitungs
anforderung auf ein anderes Programm verlegt werden kann,
ähnlich wie bei der in Fig. 21 dargestellten Situation. Je
doch unterscheidet sich dieses Ausführungsbeispiel dahinge
hend, daß die Verarbeitungsverlegeeinrichtung 550 eine Zeit
grenze für eine Programmauswahleinrichtung 760 spezifiziert.
Im letztgenannten Fall kann die Verarbeitungsverlegung da
durch erzielt werden, daß jedes Programm mit einer Verarbei
tungszeit-Voraussageeinrichtung 800 und einer Zeitgrenze-
Einstelleinrichtung 802 versehen wird. Die Verarbeitungs
zeit-Voraussageeinrichtung 800 sagt eine Zeit voraus, wie
sie dazu erforderlich ist, eine aktuell ausgeführte Verar
beitung abzuschließen. Die Voraussage kann z. B. dadurch
erfolgen, daß für jedes Programm eine Verarbeitungsrestmenge
801 abgespeichert wird. Wenn z. B. angenommen wird, daß ein
Benutzerprogramm 438 eine Verarbeitungsrestmenge 801 mit dem
Wert 60 aufweist, kann, da die Zeitgrenze pro Einheitsverar
beitungsmenge des Benutzerprogramms 438 (Prioritätswert 1 im
Computer 101) 0,074 Millisekunden ist, die zum Abschließen
des Programms 438 erforderliche Zeit zu 4,44 Millisekunden
(0,074 × 60 = 4,44) abgeschätzt werden. Die Zeitgrenze-Ein
stelleinrichtung 802 berechnet die neue Zeitgrenze, wenn das
zugehörige Programm eine Verarbeitungsanforderung neu an ein
anderes Programm ausgibt. Diese Einstellung kann dadurch be
werkstelligt werden, daß die Zeit 803 abgespeichert wird,
die ab dem Zeitpunkt verstrichen ist, zu dem die Verarbei
tungsanforderung empfangen wurde, oder dergleichen.
Der durch Verbindungen 810-816 veranschaulichte Ablauf
repräsentiert, wie eine Verarbeitungsanforderung von einem
Programm auf ein anderes verlegt wird, wenn eine solche Ver
arbeitungsanforderung zu verlegen ist. Das Ausführungsbei
spiel von Fig. 38 zeigt, daß das Benutzerprogramm 440 eine
Verarbeitungsanforderung an das Benutzerprogramm 438 (Pro
gramm in einer Programmgruppe F) mit einer Zeitgrenze von
fünf Millisekunden ausgibt (Verbindung 810), und diese Ver
arbeitungsanforderung wird vom Benutzerprogramm 438 auf ein
anderes Programm verlegt. Es ist angenommen, daß die Verar
beitungsrestmenge 60.000 Anweisungen ist, und zwar 1,8 Mil
lisekunden nach dem Zeitpunkt, zu dem die Verarbeitungsan
forderung 552 ausgegeben wurde. Die Verarbeitungszeit-Vor
aussageeinrichtung 800 empfängt von der Prioritätswert-
Umsetzeinrichtung 573 eine Zeitgrenze pro Einheitsverarbei
tungsmenge von 0,074 Millisekunden, was dem Prioritätswert 1
des Programms 440 entspricht (Verbindung 811), und aus der
obengenannten Berechnung wird eine Verarbeitungsvoraussage
zeit von 4,44 Millisekunden hergeleitet (Verbindung 812).
Die Zeitgrenze-Einstelleinrichtung 802 berechnet ausgehend
von der Zeitgrenze von fünf Millisekunden und der verstri
chenen Zeit von 1,8 Millisekunden eine neue Zeitgrenze von
3,2 Millisekunden (Verbindung 813). Da vorausgesagt ist, daß
die restliche Verarbeitung nicht innerhalb der neuen Zeit
grenze abgeschlossen werden kann, wird diese Verarbeitungs
anforderung an ein anderes Programm verlegt. Für diese Ver
legung befragt die Verarbeitungsverlegeeinrichtung 550 die
Programmauswahleinrichtung 760 unter Angabe der neu berech
neten Zeitgrenze von 3,2 Millisekunden, ob in der Programm
gruppe F ein Programm vorhanden ist, das diese Zeitgrenze
erfüllt (Verbindung 814). Die Programmauswahleinrichtung 760
durchsucht eine Programmliste 776 für die Programmgruppe F
nach Programmortsinformation für ein Programm, das der Zeit
grenze von 3,2 Millisekunden genügt. Bei dem in Fig. 38 dar
gestellten Beispiel kann die Programmauswahleinrichtung 760
die Programmortsinformation 789 auffinden (entsprechend
einem Benutzerprogramm 439 im Computer 103). Die Programm
auswahleinrichtung 760 informiert die Verarbeitungsverlege
einrichtung 550 über den Ort des Benutzerprogramms 439, das
der Programmortsinformation 789 entspricht (Verbindung 815).
Die Verarbeitungsverlegeeinrichtung 550 fordert dann, wenn
sie diese Information empfängt, das Benutzerprogramm 439
dazu auf, die Verarbeitung 552 auszuführen, für die erkannt
wurde, daß sie nicht innerhalb der Zeitgrenze abgeschlossen
wurde (Verbindung 816).
Durch das dreizehnte Ausführungsbeispiel kann eine an ein
Programm ausgegebene Verarbeitungsanforderung auf ein ande
res Programm verlegt werden, das dieselbe Zeitgrenze wie das
angeforderte Programm hat, um zu verhindern, daß eine Anzahl
von Verarbeitungsanforderungen auf einen einzelnen Computer
konzentriert wird, was es ermöglicht, die Verarbeitungsan
forderungen auf mehrere Programme zu verteilen. Da eine neu
angeforderte Verarbeitung sofort ausgeführt werden kann,
ohne auf den Abschluß einer aktuell ausgeführten Verarbei
tung warten zu müssen, sind ferner verbesserte Echtzeit
eigenschaften sichergestellt.
Gemäß diesem Ausführungsbeispiel kann eine an ein Programm
ausgegebene Verarbeitungsanforderung auf ein anderes Pro
gramm verlegt werden, das die Verarbeitung schneller als das
angeforderte Programm abschließen kann, und zwar wenn er
kannt wird, daß das angeforderte Programm die Verarbeitung
nicht rechtzeitig abschließen kann, wodurch strenger sicher
gestellt ist, daß die erforderliche Verarbeitung innerhalb
der Zeitgrenze abgeschlossen wird. Die Verlegung einer Ver
arbeitungsanforderung soll in diesem Fall gewährleisten, daß
die Zeitgrenze selbst dann erfüllt wird, wenn irgendein un
erwarteter Zwischenfall dazu führt, daß die Ausführung eines
Programms verzögert wird.
Während das in Fig. 38 dargestellte System über eine Verar
beitungsverlegeeinrichtung 550, eine Schlange 551, eine Ver
arbeitungszeit-Voraussageeinrichtung 800 und eine Zeitgren
ze-Einstelleinrichtung 802 in jedem Programm verfügt, können
diese Elemente außerhalb der Programme angeordnet sein, so
daß sie von mehreren Programmen gemeinsam genutzt werden
können. Zusammengefaßt gesagt, besteht das verteilte Compu
tersystem dieses Ausführungsbeispiel aus einer Kombination
der Programmauswahleinrichtung 760 und der Prioritätswert-
Umsetzeinrichtungen 572, 573, wie in Fig. 37 dargestellt,
wobei zusätzlich die Verarbeitungsverlegeeinrichtung 550,
die Schlange 551, die Verarbeitungszeit-Voraussageeinrich
tung 800 und die Zeitgrenze-Einstelleinrichtung 802 vorhan
den sind. Alternativ können diese zusätzlichen Vorgänge und
Datenstrukturen zum in Fig. 35 dargestellten verteilten
Rechnersystem hinzugefügt sein, das eine Kombination aus
einer Programmauswahleinrichtung 700 und einer Prioritäts
wert-Umsetzeinrichtung 720 beinhaltet, um ähnliche Vorgänge
auszuführen.
Ausgehend vom vorstehend genannten dreizehnten Ausführungs
beispiel kann eine alternative Konfiguration erzeugt werden.
Genauer gesagt, verlegt das System des dreizehnten Ausfüh
rungsbeispiels eine Verarbeitungsanforderung auf ein anderes
Programm, wenn festgestellt wird, daß das angeforderte Pro
gramm eine auferlegte Zeitgrenze nicht erfüllen kann, jedoch
ist es auch möglich, einem Programm, das zum Ausführen der
Verarbeitung angefordert wird, einen höheren Prioritätswert
zu geben, anstatt die Verarbeitung zu verlegen, so daß die
aktuell ausgeführte Verarbeitung schneller abgeschlossen
wird. Bei dieser Alternative wird bei dem in Fig. 38 darge
stellten System aus der neuen Zeitgrenze von 3,2 Millisekun
den und der Verarbeitungsrestmenge von 60.000 Anweisungen
eine Zeitgrenze pro Einheitsverarbeitungsmenge von 0,053
Millisekunden berechnet (3,2/60 = 0,053), und der Priori
tätswert des Benutzerprogramms 438 wird auf den Prioritäts
wert 0 angehoben, um der berechneten Zeitgrenze pro Ein
heitsverarbeitungsmenge zu genügen, wodurch das Benutzerpro
gramm 438 die Verarbeitung mit dem erhöhten Prioritätswert
fortsetzt.
Es ist zu beachten, daß die Verbindungszeit-Voraussageein
richtungen 670, 671 in Fig. 29 in die Systeme der Fig. 30-38
eingeführt werden können, um die Zeitgrenze genauer zu
bestimmen.
Wie es aus der Beschreibung zum ersten bis dreizehnten Aus
führungsbeispiel ersichtlich ist, erzielt die Erfindung
gleichmäßige Verwaltung örtlich definierter Prioritätswerte
in jeweiligen Computern, die zu einem verteilten Computer
system gehören, unter Verwendung eines Dringlichkeitswerts
oder einer Zeitgrenze, um eine strengere Einhaltung von
Echtzeiteigenschaften zu gewährleisten.
Beim erfindungsgemäßen System, das den Prioritätswert mit
tels eines Dringlichkeitswerts verwaltet, sind eine Priori
tätswert-Umsetzeinrichtung und eine Prioritätswert-Ände
rungseinrichtung dazu verwendet, sicherzustellen, daß Verar
beitungen mit demselben Dringlichkeitswert in allen Compu
tern, auch wenn diese unterschiedliches Funktionsvermögen
und unterschiedliche Auslastung aufweisen, im wesentlichen
mit derselben Geschwindigkeit ausgeführt werden.
Auch verhindert die beim erfindungsgemäßen System verwendete
Computerauswahleinrichtung, daß eine Anzahl von Verarbei
tungsanforderungen mit hohem Dringlichkeitswert auf einen
einzelnen Computer konzentriert wird, wodurch es ermöglicht
ist, Echtzeiteigenschaften in den jeweiligen Computern
strenger einzuhalten.
Ferner werden durch die Programmauswahleinrichtung mehrere
Programme mit verschiedenen Dringlichkeitswerten bereitge
stellt, so daß eine Verarbeitungsanforderung an das Programm
mit dem geeignetsten Dringlichkeitswert unter ihnen ausgege
ben wird, selbst wenn keine Prioritätswert-Änderungseinrich
tung verändert wird, mit dem Ergebnis, daß die Verarbeitung
mit gewünschter Geschwindigkeit ausgeführt werden kann.
Ferner kann unter Verwendung einer Verarbeitungsverlegeein
richtung eine Verarbeitung, wie sie von einem aktuell lau
fenden Programm gefordert wird, an ein anderes Programm ver
legt werden und von diesem ausgeführt werden, das die Aus
führung mit im wesentlichen derselben Geschwindigkeit vor
nehmen kann, ohne daß auf den Abschluß der gerade ausgeführ
ten Verarbeitung gewartet werden muß, wodurch eine strengere
Einhaltung von Echtzeiteigenschaften gewährleistet ist.
Beim erfindungsgemäßen System, das den Prioritätswert mit
tels der Zeitgrenze verwaltet, werden eine Prioritätswert-
Umsetzeinrichtung und eine Prioritätswert-Änderungseinrich
tung dazu verwendet, eine Verarbeitung abhängig vom örtli
chen Prioritätswert in einem speziellen Computer abhängig
von einer spezifizierten Zeitgrenze auszuführen. Dies ermög
licht es, daß eine Verarbeitung mit einer strengeren Zeit
grenze vor einer anderen Verarbeitung mit einer weniger
strengen Zeitgrenze ausgeführt wird, so daß die Echtzeit
eigenschaften für jede Verarbeitung im verteilten Computer
system strenger gewährleistet werden können. Auch dann, wenn
eine Verarbeitung mit relativ langer Zeitgrenze unbearbeitet
bleibt, um bevorzugt andere Verarbeitungen mit kurzer Zeit
grenze auszuführen, nähert sich die verstrichene Zeitgrenze
der auferlegten Zeitgrenze an. In diesem Fall kann der Prio
ritätswert für die Verarbeitung abhängig von der verkürzten
Zeitgrenze auf einen höheren Wert korrigiert werden, und die
Verarbeitung wird mit diesem korrigierten Prioritätswert
ausgeführt.
Durch die Verbindungszeit-Voraussageeinrichtung kann die
Zeitgrenze für die Verarbeitung genauer vorgegeben werden,
wenn die Verbindungszeit zwischen Computern nicht vernach
lässigbar ist.
Die Computerauswahleinrichtung verhindert, daß eine Anzahl
von Verarbeitungen mit kurzer Zeitgrenze auf einen einzelnen
Computer konzentriert wird, wodurch es möglich ist, Echt
zeiteigenschaften strenger einzuhalten.
Durch die Programmauswahleinrichtung werden mehrere Program
me mit verschiedenen Dringlichkeitswerten bereitgestellt,
damit eine Verarbeitungsanforderung an das Programm mit dem
geeignetsten Dringlichkeitswert unter ihnen ausgegeben wird,
selbst ohne Verwendung einer Prioritätswert-Änderungsein
richtung, mit dem Ergebnis, daß die Verarbeitung mit ge
wünschter Geschwindigkeit ausgeführt werden kann.
Ferner kann unter Verwendung der Verarbeitungsverlegeein
richtung eine Verarbeitung, wie sie von einem aktuell be
triebenen Programm gewünscht wird, auf ein anderes Programm
verlegt und von diesem ausgeführt werden, das diese Verar
beitung mit im wesentlichen derselben Geschwindigkeit aus
führen kann, ohne daß auf den Abschluß der aktuell ausge
führten Verarbeitung gewartet werden muß, wodurch eine
strengere Einhaltung von Echtzeiteigenschaften gewährleistet
ist.
Durch die Verarbeitungszeit-Voraussageeinrichtung und die
Zeitgrenze-Einstelleinrichtung wird ermittelt, ob eine einer
bestimmten Verarbeitung auferlegte Zeitgrenze erfüllt ist,
wenn ein Programm diese Verarbeitung mit dem aktuellen Prio
ritätswert ausführen soll. Wenn erkannt wird, daß die Zeit
grenze nicht erfüllt wird, kann dem Programm eine kürzere
Zeitgrenze zugeteilt werden. Unter Verwendung der neu ein
gestellten Zeitgrenze können die Prioritätswert-Umsetzein
richtungen die Prioritätswert-Änderungseinrichtung dem Pro
gramm einen höheren Prioritätswert verleihen und die Verar
beitung an ein anderes Programm verlegen, das denselben Vor
gang ausführt und das der neuen Zeitgrenze genügen kann, um
dieses Programm dazu auf zufordern, die Verarbeitung auszu
führen. Auf diese Weise kann die Verarbeitung so verwaltet
werden, daß der ursprünglich vorgegebene Zeitgrenze genügt
wird.
Zusammengefaßt gesagt, können gemäß der Erfindung örtliche
Prioritätswerte, wie sie an die Verarbeitung in jeweiligen
Computern vergeben sind, in einem gesamten verteilten Com
putersystem gleichmäßig verwaltet werden. Zusätzlich können
strengere Echtzeiteigenschaften in einem verteilten Compu
tersystem gewährleistet werden, das Computer beinhaltet, die
sich hinsichtlich des Funktionsvermögens, der Auslastung und
des Typs voneinander unterscheiden.
Claims (20)
1. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (130-136) laufen, ge
kennzeichnet durch:
- - eine Prioritätswert-Bestimmungseinrichtung (144, 145; 146, 147) zum Bestimmen eines Prioritätswerts zum Ausführen eines Programms unter Berücksichtigung des Funktionsvermögens und/oder der Last jedes Computers wie auch eines Dringlichkeits werts für die vom Programm auszuführende Verarbeitung.
2. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (130-136) laufen, ge
kennzeichnet durch:
- - eine Prioritätswert-Bestimmungseinrichtung (572, 573; 146, 147) zum Bestimmen eines Prioritätswerts zum Ausführen eines Programms unter Berücksichtigung des Funktionsvermögens und/oder der Last jedes Computers wie auch einer Zeitgrenze und auch einer Verarbeitungsmenge für die vom Programm auszufüh rende Verarbeitung.
3. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (130-136) laufen, da
durch gekennzeichnet, daß jeder Computer folgendes beinhal
tet:
- - eine Prioritätswert-Umsetzeinrichtung (144, 145) zum Aus führen einer Umsetzung zwischen einem Dringlichkeitswert und einem Prioritätswert für die Verarbeitung abhängig von der Funktionsfähigkeit und der Auslastung dieses Computers; und
- - eine Prioritätswert-Änderungseinrichtung (146, 147) zum Ändern des Prioritätswerts eines Programms, das die Verar beitung ausführt, abhängig vom Prioritätswert, wie er von der Prioritätswert-Umsetzeinrichtung angegeben wird.
4. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (130-136) laufen, da
durch gekennzeichnet, daß jeder Computer folgendes beinhal
tet:
- - eine Prioritätswert-Umsetzeinrichtung (572, 573) zum Aus führen einer Umsetzung zwischen einem Satz aus einer Zeit grenze und einer Verarbeitungsmenge für die Verarbeitung abhängig von der Funktionsfähigkeit und der Auslastung die ses Computers; und
- - eine Prioritätswert-Änderungseinrichtung (146, 147) zum Ändern des Prioritätswerts eines Programms, das die Verar beitung ausführt, abhängig vom Prioritätswert, wie er von der Prioritätswert-Umsetzeinrichtung angegeben wird.
5. Verteiltes Computersystem nach Anspruch 3, dadurch ge
kennzeichnet, daß die Prioritätswert-Umsetzeinrichtung (144,
145) eine Prioritätswert-Entsprechungstabelle (150, 151) be
inhaltet, die die Entsprechung zwischen einem Dringlich
keitswert und einem Prioritätswert für die Verarbeitung an
gibt.
6. Verteiltes Computersystem nach Anspruch 3, dadurch ge
kennzeichnet, daß die Prioritätswert-Umsetzeinrichtung (144,
145) die Entsprechungsbeziehung zwischen dem Dringlichkeits
wert und dem Prioritätswert der Verarbeitung abhängig von
Änderungen der Auslastungen der Computer verändert.
7. Verteiltes Computersystem nach Anspruch 6, dadurch ge
kennzeichnet, daß die Prioritätswert-Umsetzeinrichtung (144,
145) den Prioritätswert jedes Programms auf den Computern
abhängig von Änderungen der Auslastungen der Computer än
dert.
8. Verteiltes Computersystem nach Anspruch 3, dadurch ge
kennzeichnet, daß jedes der mehreren Programme einen Dring
lichkeitswert für die Verarbeitung spezifiziert, wenn dieses
Programm andere Programme dazu auffordert, die Verarbeitung
auszuführen.
9. Verteiltes Computersystem nach Anspruch 4, dadurch ge
kennzeichnet, daß jedes der mehreren Programme eine Zeit
grenze für die Verarbeitung spezifiziert, wenn dieses Pro
gramm ein anderes Programm dazu auffordert, die Verarbeitung
auszuführen.
10. Verteiltes Computersystem nach Anspruch 4, ferner ge
kennzeichnet durch:
- - eine Verbindungszeit-Voraussageeinrichtung (670, 671) zum Voraussagen einer Verbindungszeit, wie sie für die Verbin dung zu einem anderen Computer erforderlich ist;
- - wobei jedes der mehreren Programme dann, wenn es ein ande res Programm zum Ausführen der Verarbeitung auffordert, von der Verbindungszeit-Voraussageeinrichtung eine vorausgesagte Verbindungszeit empfängt, wie sie dazu erforderlich ist, mit einem Computer Information auszutauschen, auf dem das andere Programm läuft, um die Zeitgrenze für die Verarbeitung unter Berücksichtigung der vorausgesagten Verbindungszeit zu spe zifizieren.
11. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (130-136) laufen, ge
kennzeichnet durch:
- - eine Computerauswahleinrichtung (294) zum Bestimmen eines Computers, der dazu geeignet ist, ein Programm auszuführen, und zwar unter Berücksichtigung des Funktionsvermögens und/oder der Auslastung jedes Computers und/oder eines Dring lichkeitswerts für die vom Programm auszuführende Verarbei tung; und
- - eine Prioritätswert-Umsetzeinrichtung (260) zum Ausführen einer Umsetzung zwischen dem Dringlichkeitswert für die Ver arbeitung und einem Prioritätswert für einen ausgewählten Computer, abhängig vom Funktionsvermögen und/oder der Ausla stung des Computers.
12. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (130-136) laufen, ge
kennzeichnet durch:
- - eine Computerauswahleinrichtung (294) zum Bestimmen eines Computers, der dazu geeignet ist, ein Programm auszuführen, und zwar unter Berücksichtigung des Funktionsvermögens und/oder der Auslastung jedes Computers und/oder eines Satzes aus einer Zeitgrenze und einer Verarbeitungsmenge für die vom Programm auszuführende Verarbeitung; und
- - eine Prioritätswert-Umsetzeinrichtung (260) zum Ausführen einer Umsetzung zwischen dem Satz aus einer Zeitgrenze und einer Verarbeitungsmenge für die Verarbeitung und einem Prioritätswert für einen ausgewählten Computer, abhängig vom Funktionsvermögen und/oder der Auslastung des Computers.
13. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (130-136) laufen, wobei
ein aktuell auf einem Computer laufendes Programm auf einen
anderen Computer verschoben wird, gekennzeichnet durch:
- - eine Computerauswahleinrichtung (294) zum Bestimmen eines Zielcomputers, auf den das Programm zu verschieben ist, und zwar unter Berücksichtigung des Funktionsvermögens und/oder der Auslastung jedes Computers und/oder des Dringlichkeits werts für die vom Programm auszuführende Verarbeitung; und
- - eine Prioritätswert-Umsetzeinrichtung (260) zum Ausführen einer Umsetzung zwischen dem Dringlichkeitswert der Verar beitung und einem Prioritätswert auf dem Zielcomputer abhän gig vom Funktionsvermögen und der Auslastung des Zielcompu ters.
14. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (130-136) laufen, ge
kennzeichnet durch:
- - eine Prioritätswert-Umsetzeinrichtung (260) zum Ausführen einer Umsetzung zwischen einem Dringlichkeitswert für die von einem Programm ausgeführte Verarbeitung und einem Prio ritätswert auf jedem Computer, abhängig vom Funktionsvermö gen und der Auslastung jedes Computers; und
- - eine Computerauswahleinrichtung (294) zum Auswählen eines Computers, der zum Ausführen des Programms geeignet ist, un ter Berücksichtigung der Auslastung jedes Computers und des Prioritätswerts für jeden Computer, wie durch die Priori tätswert-Umsetzeinrichtung angegeben.
15. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (430-442) laufen, wobei
mehrere denselben Vorgang ausführende Programme in den Com
putern vorhanden sind und wobei eines der mehreren denselben
Vorgang ausführenden Programme dazu aufgefordert wird, eine
Verarbeitung auszuführen, gekennzeichnet durch:
- - eine Programmauswahleinrichtung (410) zum Bestimmen des Programms mit optimalem Prioritätswert aus den mehreren denselben Vorgang ausführenden Programmen unter Berücksich tigung des Funktionsvermögens und/oder der Auslastung jedes Computers und/oder des Dringlichkeitswerts der Verarbeitung.
16. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (430-442) laufen, wobei
mehrere denselben Vorgang ausführende Programme in den Com
putern vorhanden sind und wobei eines der mehreren denselben
Vorgang ausführenden Programme dazu aufgefordert wird, eine
Verarbeitung auszuführen, gekennzeichnet durch:
- - eine Programmauswahleinrichtung (410) zum Bestimmen des Programms mit optimalem Prioritätswert aus den mehreren denselben Vorgang ausführenden Programmen unter Berücksich tigung des Funktionsvermögens und/oder der Auslastung jedes Computers und/oder eines Satzes aus einer Zeitgrenze und einer Verarbeitungsmenge der Verarbeitung.
17. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (430-442) laufen, wobei
mehrere denselben Vorgang ausführende Programme in den Com
putern vorhanden sind und wobei eines der mehreren denselben
Vorgang ausführenden Programme, das gerade eine Verarbeitung
ausführt, zusätzliche aufgefordert wird, eine andere Verar
beitung auszuführen, gekennzeichnet durch:
- - eine Programmauswahleinrichtung (410) zum Bestimmen des Programms mit optimalem Prioritätswert aus den mehreren denselben Vorgang ausführenden Programmen unter Berücksich tigung des Funktionsvermögens und/oder der Auslastung jedes Computers und/oder des Dringlichkeitswerts der Verarbeitung;
- - eine Verarbeitungsverlegeeinrichtung (550) zum Verlegen der zusätzlich angeforderten Verarbeitung auf das Programm, wie es von der Programmauswahleinrichtung angezeigt wird.
18. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (430-442) laufen, wobei
mehrere denselben Vorgang ausführende Programme in den Com
putern vorhanden sind und wobei eines der mehreren denselben
Vorgang ausführenden Programme, das gerade eine Verarbeitung
ausführt, zusätzliche aufgefordert wird, eine andere Verar
beitung auszuführen, gekennzeichnet durch:
- - eine Programmauswahleinrichtung (760) zum Bestimmen des Programms mit optimalem Prioritätswert aus den mehreren denselben Vorgang ausführenden Programmen unter Berücksich tigung des Funktionsvermögens und/oder der Auslastung jedes Computers und/oder eines Satzes aus einer Zeitgrenze und einer Verarbeitungsmenge der Verarbeitung;
- - eine Verarbeitungsverlegeeinrichtung (550) zum Verlegen der zusätzlich angeforderten Verarbeitung auf das Programm, wie es von der Programmauswahleinrichtung angezeigt wird.
19. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (430-442) laufen, wobei
mehrere denselben Vorgang ausführende Programme in den Com
putern vorhanden sind, gekennzeichnet durch:
- - eine Verarbeitungs-Voraussageeinrichtung (800) zum Voraus sagen der Verarbeitungszeit, wie sie wahrscheinlich ein Pro gramm benötigt, um eine gerade bearbeitete Verarbeitung zu beenden, und zwar auf Grundlage des Funktionsvermögens, der Auslastung und der Verarbeitungsmenge für einen Computer, in dem das Programm vorliegt;
- - eine Zeitgrenze-Einstelleinrichtung (802) zum Berechnen 15 einer neuen Zeitgrenze, wenn eine vorausgesagte Verarbei tungszeit, wie sie durch die Verarbeitungszeit-Voraussage einrichtung angegeben wird, die Zeitgrenze nicht erfüllt, wie sie für diese Verarbeitung erforderlich ist, und zwar ausgehend von der Zeit, wie sie verstrichen ist, seit die Verarbeitung angefordert wurde, und der erforderlichen Zeit grenze;
- - eine Prioritätswert-Umsetzeinrichtung (580, 581) zum Aus führen einer Umsetzung zwischen einem Satz aus der neuen Zeitgrenze und der Verarbeitungsmenge für das Programm und dem Prioritätswert in jedem Computer;
- - eine Programmauswahleinrichtung (760) zum Bestimmen eines Programms, das den mehreren denselben Vorgang ausführenden Programmen, das denselben oder einen höheren Prioritätswert aufweist, als es dem Prioritätswert entspricht, wie er von der Prioritätswert-Umsetzeinrichtung angegeben wird; und
- - eine Verarbeitungsverlegeeinrichtung (550) zum Verlegen der Verarbeitungsanforderung an das durch die Programmaus wahleinrichtung angegebene Programm.
20. Verteiltes Computersystem mit mehreren Computern (100-103),
auf denen mehrere Programme (430-442) laufen, ge
kennzeichnet durch:
- - eine Verarbeitungszeit-Voraussageeinrichtung (800) zum Voraussagen der Verarbeitungszeit, wie sie vermutlich dazu erforderlich ist, eine von den mehreren Programmen gerade ausgeführte Verarbeitung abzuschließen, und zwar auf Grund lage des Funktionsvermögens, der Auslastung und der Verar beitungsmenge des jeweiligen Computers, in dem ein jeweili ges Programm vorhanden ist;
- - eine Zeitgrenze-Einstelleinrichtung (802) zum Berechnen einer neuen Zeitgrenze, wenn eine vorausgesagte Verarbei tungszeit, wie sie durch die Verarbeitungszeit-Voraussage einrichtung angegeben wird, die Zeitgrenze nicht erfüllt, wie sie für diese Verarbeitung erforderlich ist, und zwar ausgehend von der Zeit, wie sie verstrichen ist, seit die Verarbeitung angefordert wurde, und der erforderlichen Zeit grenze;
- - eine Prioritätswert-Umsetzeinrichtung (580, 581) zum Aus führen einer Umsetzung zwischen einem Satz aus der neuen Zeitgrenze und der Verarbeitungsmenge für das Programm und dem Prioritätswert in jedem Computer; und
- - eine Prioritätswert-Änderungseinrichtung (146, 147) zum Ändern des Prioritätswerts eines Programms, das die Verar beitung ausführt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07561094A JP3658420B2 (ja) | 1994-04-14 | 1994-04-14 | 分散処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19513922A1 true DE19513922A1 (de) | 1995-10-19 |
Family
ID=13581159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19513922A Withdrawn DE19513922A1 (de) | 1994-04-14 | 1995-04-12 | Verteiltes Computersystem |
Country Status (3)
Country | Link |
---|---|
US (4) | US5845116A (de) |
JP (1) | JP3658420B2 (de) |
DE (1) | DE19513922A1 (de) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1516244A1 (de) * | 2002-06-24 | 2005-03-23 | DoCoMo Communications Laboratories USA, Inc. | Mobil-anwendungsumgebung |
DE10345816A1 (de) * | 2003-09-30 | 2005-05-25 | Rexroth Indramat Gmbh | Kombination aus Steuerung und Antrieb |
DE102005046072A1 (de) * | 2005-09-27 | 2006-09-21 | Daimlerchrysler Ag | Verfahren und Vorichtung zur Prozeßregelung |
DE19744230B4 (de) * | 1997-10-07 | 2007-10-25 | Robert Bosch Gmbh | Steuergeräte für ein System und Verfahren zum Betrieb eines Steuergeräts |
DE102012011295A1 (de) * | 2012-06-08 | 2013-12-12 | Robert Bosch Gmbh | Vorrichtung und verfahren für eine maschine, feldgerät für eine maschine und steuergerät für eine maschine |
DE102006052757B4 (de) * | 2006-11-08 | 2014-10-09 | Siemens Aktiengesellschaft | Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen |
Families Citing this family (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3658420B2 (ja) * | 1994-04-14 | 2005-06-08 | 株式会社日立製作所 | 分散処理システム |
JPH08263481A (ja) * | 1995-03-22 | 1996-10-11 | Hitachi Ltd | 電子化文書回覧システム |
US5754776A (en) * | 1995-12-28 | 1998-05-19 | Intel Corporation | Re-prioritizing background data transfers in multipoint conferencing |
US6412017B1 (en) * | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
US6542610B2 (en) * | 1997-01-30 | 2003-04-01 | Intel Corporation | Content protection for digital transmission systems |
US6223243B1 (en) * | 1997-06-12 | 2001-04-24 | Nec Corporation | Access control method with plural users having I/O commands prioritized in queues corresponding to plural memory units |
US6148324A (en) * | 1998-01-05 | 2000-11-14 | Lucent Technologies, Inc. | Prioritized load balancing among non-communicating processes in a time-sharing system |
US20050204388A1 (en) * | 1998-06-11 | 2005-09-15 | Knudson Edward B. | Series reminders and series recording from an interactive television program guide |
US6269274B1 (en) * | 1998-09-09 | 2001-07-31 | Honeywell International Inc | System and method for balancing and distributing control algorithm processing load and real time plant control system employing the same |
US6363445B1 (en) | 1998-10-15 | 2002-03-26 | Micron Technology, Inc. | Method of bus arbitration using requesting device bandwidth and priority ranking |
JP4072271B2 (ja) * | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
US6874144B1 (en) * | 1999-04-05 | 2005-03-29 | International Business Machines Corporation | System, method, and program for implementing priority inheritance in an operating system |
DE19930119C2 (de) * | 1999-06-30 | 2001-06-07 | Siemens Ag | Prioritätsverwaltungsverfahren |
US6754848B1 (en) * | 1999-09-30 | 2004-06-22 | International Business Machines Corporation | Method, system and program products for operationally migrating a cluster through emulation |
US6748413B1 (en) * | 1999-11-15 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for load balancing of parallel servers in a network environment |
US6738972B1 (en) * | 1999-12-30 | 2004-05-18 | Opentv, Inc. | Method for flow scheduling |
JP4475614B2 (ja) * | 2000-04-28 | 2010-06-09 | 大正製薬株式会社 | 並列処理方法におけるジョブの割り当て方法および並列処理方法 |
DE01951081T1 (de) * | 2000-06-19 | 2004-04-15 | P.C. Krause and Associates, Inc, West Lafayette | Verteilte simulation |
JP2002024194A (ja) * | 2000-07-05 | 2002-01-25 | Matsushita Electric Ind Co Ltd | ジョブ分散処理方法および分散処理システム |
US6886045B1 (en) * | 2000-08-14 | 2005-04-26 | At&T Corp. | Subscription-based priority interactive help services on the internet |
US6971101B1 (en) * | 2000-09-12 | 2005-11-29 | Motorola, Inc. | Managing asynchronous requests for user interface resources in an information system |
US6957433B2 (en) * | 2001-01-08 | 2005-10-18 | Hewlett-Packard Development Company, L.P. | System and method for adaptive performance optimization of data processing systems |
JP3716753B2 (ja) * | 2001-03-21 | 2005-11-16 | 日本電気株式会社 | マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム |
GB2389482B (en) * | 2001-03-28 | 2004-05-05 | Ericsson Telefon Ab L M | Load distribution between nodes in communication networks |
US6820126B2 (en) * | 2001-04-02 | 2004-11-16 | Motorola, Inc. | System for dynamic process assignment in a local area network and method therefor |
JP2003029989A (ja) * | 2001-07-16 | 2003-01-31 | Matsushita Electric Ind Co Ltd | 分散処理システムおよびジョブ分散処理方法 |
US6922791B2 (en) * | 2001-08-09 | 2005-07-26 | Dell Products L.P. | Failover system and method for cluster environment |
JP2003091424A (ja) * | 2001-09-18 | 2003-03-28 | Matsushita Electric Ind Co Ltd | 分散処理システムおよびジョブ分散処理方法 |
JP3918697B2 (ja) * | 2001-12-27 | 2007-05-23 | 日本電気株式会社 | サーバ構築支援システム及びサーバ構築支援方法並びにプログラム |
JP2003256222A (ja) * | 2002-03-04 | 2003-09-10 | Matsushita Electric Ind Co Ltd | 分散処理システム、ジョブ分散処理方法およびプログラム |
JP3986346B2 (ja) * | 2002-03-28 | 2007-10-03 | 富士通株式会社 | 処理装置、サーバ、およびプログラム |
US7529822B2 (en) * | 2002-05-31 | 2009-05-05 | Symantec Operating Corporation | Business continuation policy for server consolidation environment |
US8020114B2 (en) * | 2002-06-07 | 2011-09-13 | Sierra Wireless, Inc. | Enter-then-act input handling |
US7080379B2 (en) | 2002-06-20 | 2006-07-18 | International Business Machines Corporation | Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue |
JP4505707B2 (ja) * | 2003-02-13 | 2010-07-21 | 株式会社白子 | 血管拡張による肩凝り又は冷え症治療用の医薬組成物 |
US7389512B2 (en) * | 2003-05-09 | 2008-06-17 | Sun Microsystems, Inc. | Interprocess communication within operating system partitions |
US7337445B1 (en) | 2003-05-09 | 2008-02-26 | Sun Microsystems, Inc. | Virtual system console for virtual application environment |
US8892878B2 (en) * | 2003-05-09 | 2014-11-18 | Oracle America, Inc. | Fine-grained privileges in operating system partitions |
US7461080B1 (en) | 2003-05-09 | 2008-12-02 | Sun Microsystems, Inc. | System logging within operating system partitions using log device nodes that are access points to a log driver |
US7437556B2 (en) * | 2003-05-09 | 2008-10-14 | Sun Microsystems, Inc. | Global visibility controls for operating system partitions |
US20040226015A1 (en) * | 2003-05-09 | 2004-11-11 | Leonard Ozgur C. | Multi-level computing resource scheduling control for operating system partitions |
US7188120B1 (en) | 2003-05-09 | 2007-03-06 | Sun Microsystems, Inc. | System statistics virtualization for operating systems partitions |
US7203944B1 (en) * | 2003-07-09 | 2007-04-10 | Veritas Operating Corporation | Migrating virtual machines among computer systems to balance load caused by virtual machines |
US7146511B2 (en) * | 2003-10-07 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Rack equipment application performance modification system and method |
US20050155032A1 (en) * | 2004-01-12 | 2005-07-14 | Schantz John L. | Dynamic load balancing |
US7080178B2 (en) * | 2004-02-09 | 2006-07-18 | Arm Limited | Interrupt pre-emption and ordering within a data processing system |
US7900206B1 (en) | 2004-03-31 | 2011-03-01 | Symantec Operating Corporation | Information technology process workflow for data centers |
US20050240934A1 (en) * | 2004-04-21 | 2005-10-27 | Hewlett-Packard Development Company, L.P. | Task management based on system utilization |
US8181182B1 (en) | 2004-11-16 | 2012-05-15 | Oracle America, Inc. | Resource allocation brokering in nested containers |
US7954062B2 (en) * | 2005-01-03 | 2011-05-31 | International Business Machines Corporation | Application status board mitigation system and method |
US8108871B2 (en) * | 2005-01-13 | 2012-01-31 | Hewlett-Packard Development Company, L.P. | Controlling computer resource utilization |
US9361156B2 (en) | 2005-03-14 | 2016-06-07 | 2236008 Ontario Inc. | Adaptive partitioning for operating system |
US8387052B2 (en) * | 2005-03-14 | 2013-02-26 | Qnx Software Systems Limited | Adaptive partitioning for operating system |
US8245230B2 (en) * | 2005-03-14 | 2012-08-14 | Qnx Software Systems Limited | Adaptive partitioning scheduler for multiprocessing system |
CA2538503C (en) * | 2005-03-14 | 2014-05-13 | Attilla Danko | Process scheduler employing adaptive partitioning of process threads |
US8589944B2 (en) * | 2005-03-16 | 2013-11-19 | Ricoh Production Print Solutions | Method and system for task mapping to iteratively improve task assignment in a heterogeneous computing system |
US8392927B2 (en) * | 2005-05-19 | 2013-03-05 | Hewlett-Packard Development Company, L. P. | System and method for determining a partition of a consumer's resource access demands between a plurality of different classes of service |
US8326990B1 (en) | 2005-07-15 | 2012-12-04 | Symantec Operating Corporation | Automated optimal workload balancing during failover in share-nothing database systems |
JP4871546B2 (ja) | 2005-08-22 | 2012-02-08 | 株式会社日立製作所 | ストレージシステム |
US7975269B2 (en) * | 2005-09-27 | 2011-07-05 | Sony Computer Entertainment Inc. | Parallel processor methods and apparatus |
JP5109250B2 (ja) | 2005-11-08 | 2012-12-26 | 横河電機株式会社 | 分散システム |
JP2007156976A (ja) * | 2005-12-07 | 2007-06-21 | Hitachi Kokusai Electric Inc | 情報処理システム |
US8539496B1 (en) * | 2005-12-12 | 2013-09-17 | At&T Intellectual Property Ii, L.P. | Method and apparatus for configuring network systems implementing diverse platforms to perform business tasks |
US8938473B2 (en) | 2006-02-23 | 2015-01-20 | Oracle America, Inc. | Secure windowing for labeled containers |
US7885975B2 (en) | 2006-02-23 | 2011-02-08 | Oracle America, Inc. | Mechanism for implementing file access control using labeled containers |
US7882227B2 (en) | 2006-02-23 | 2011-02-01 | Oracle America, Inc. | Mechanism for implementing file access control across a network using labeled containers |
US8938554B2 (en) | 2006-03-02 | 2015-01-20 | Oracle America, Inc. | Mechanism for enabling a network address to be shared by multiple labeled containers |
US7760743B2 (en) * | 2006-03-06 | 2010-07-20 | Oracle America, Inc. | Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters |
JP2008040645A (ja) * | 2006-08-03 | 2008-02-21 | Hitachi Ltd | Nasマイグレーションによる負荷分散方法、並びに、その方法を用いた計算機システム及びnasサーバ |
JP2008084009A (ja) * | 2006-09-27 | 2008-04-10 | Toshiba Corp | マルチプロセッサシステム |
US8190561B1 (en) * | 2006-12-06 | 2012-05-29 | At&T Mobility Ii Llc | LDAP replication priority queuing mechanism |
US8589534B2 (en) * | 2007-09-13 | 2013-11-19 | Ricoh Company, Ltd. | Device information management apparatus, device information management method, and storage medium which operates during a failure |
JP5382449B2 (ja) * | 2007-11-26 | 2014-01-08 | 日本電気株式会社 | 仮想計算機移行システム、仮想計算機移行方法および仮想計算機移行プログラム |
JP2009199499A (ja) | 2008-02-25 | 2009-09-03 | Fujitsu Ltd | リソース制御プログラム及びリソース制御方法 |
JP2010204876A (ja) * | 2009-03-03 | 2010-09-16 | Hitachi Ltd | 分散システム |
JP5347648B2 (ja) * | 2009-03-30 | 2013-11-20 | 富士通株式会社 | プログラム、情報処理装置及び状態出力方法 |
US8223693B2 (en) * | 2009-06-23 | 2012-07-17 | Mediatek Inc. | PTA method and apparatus utilizing the same |
US20120137302A1 (en) * | 2010-06-18 | 2012-05-31 | Panasonic Corporation | Priority information generating unit and information processing apparatus |
JP5582016B2 (ja) * | 2010-12-15 | 2014-09-03 | ソニー株式会社 | タスク管理装置、タスク管理方法、及びプログラム |
WO2013021472A1 (ja) | 2011-08-09 | 2013-02-14 | 富士通株式会社 | スケジューリング方法、およびスケジューリングシステム |
JP5783259B2 (ja) * | 2011-09-16 | 2015-09-24 | 富士通株式会社 | コンピュータシステム |
US20130073600A1 (en) * | 2011-09-21 | 2013-03-21 | Jonathan A. Jenkins | Remote process execution management |
US9477529B2 (en) | 2012-06-20 | 2016-10-25 | International Business Machines Corporation | Job distributed within a grid environment using mega-host groupings of execution hosts based on resource attributes |
US9575760B2 (en) * | 2013-05-17 | 2017-02-21 | Nvidia Corporation | Techniques for sharing priorities between streams of work and dynamic parallelism |
US20150081400A1 (en) * | 2013-09-19 | 2015-03-19 | Infosys Limited | Watching ARM |
US9660878B2 (en) * | 2014-03-14 | 2017-05-23 | International Business Machines Corporation | Managing fabric priorities across heterogeneous server platforms |
US9619012B2 (en) * | 2014-05-30 | 2017-04-11 | Apple Inc. | Power level control using power assertion requests |
WO2016161171A1 (en) * | 2015-03-31 | 2016-10-06 | Avigilon Corporation | Security device capability discovery and device selection |
US10111273B2 (en) * | 2016-05-24 | 2018-10-23 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Communication paths hierarchy for managed computing device |
US10637736B2 (en) | 2016-06-06 | 2020-04-28 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Acquisition of information from managed computing device not communicatively connected to management computing device |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5168566A (en) * | 1983-11-25 | 1992-12-01 | Sharp Kabushiki Kaisha | Multi-task control device for central processor task execution control provided as a peripheral device and capable of prioritizing and timesharing the tasks |
US4794517A (en) | 1985-04-15 | 1988-12-27 | International Business Machines Corporation | Three phased pipelined signal processor |
US4796178A (en) * | 1985-10-15 | 1989-01-03 | Unisys Corporation | Special purpose processor for off-loading many operating system functions in a large data processing system |
US5025369A (en) * | 1988-08-25 | 1991-06-18 | David Schwartz Enterprises, Inc. | Computer system |
CA1318409C (en) * | 1988-10-27 | 1993-05-25 | Dennis L. Debruler | Multiprocessor load sharing arrangement |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
JP2829078B2 (ja) * | 1990-02-05 | 1998-11-25 | 株式会社日立製作所 | プロセス分散方法 |
US5243531A (en) * | 1990-09-28 | 1993-09-07 | Volt Information Sciences, Inc. | Method for routing and scheduling operations on elements of a work product in a production system |
US5504899A (en) * | 1991-10-17 | 1996-04-02 | Digital Equipment Corporation | Guaranteeing global serializability by applying commitment ordering selectively to global transactions |
JPH05128077A (ja) * | 1991-11-06 | 1993-05-25 | Hitachi Ltd | 複数計算機システムの分散処理方法 |
JPH05282256A (ja) | 1991-12-27 | 1993-10-29 | Nec Eng Ltd | プロセッサ間メッセージ通信方法 |
US5640563A (en) * | 1992-01-31 | 1997-06-17 | International Business Machines Corporation | Multi-media computer operating system and method |
US5522070A (en) * | 1992-03-19 | 1996-05-28 | Fujitsu Limited | Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network |
JPH05324358A (ja) * | 1992-05-20 | 1993-12-07 | Hitachi Ltd | 性能予測装置 |
US6125196A (en) * | 1992-10-02 | 2000-09-26 | Unisys Corporation | Method for identifying suspect items in an out-of-balance transaction |
JPH06250928A (ja) * | 1993-02-24 | 1994-09-09 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
JP3658420B2 (ja) * | 1994-04-14 | 2005-06-08 | 株式会社日立製作所 | 分散処理システム |
US5590323A (en) * | 1994-05-13 | 1996-12-31 | Lucent Technologies Inc. | Optimal parallel processor architecture for real time multitasking |
JP3486308B2 (ja) | 1996-10-30 | 2004-01-13 | 三菱レイヨン・エンジニアリング株式会社 | 膜処理装置 |
-
1994
- 1994-04-14 JP JP07561094A patent/JP3658420B2/ja not_active Expired - Fee Related
-
1995
- 1995-04-12 DE DE19513922A patent/DE19513922A1/de not_active Withdrawn
- 1995-04-13 US US08/421,249 patent/US5845116A/en not_active Expired - Fee Related
-
1998
- 1998-10-07 US US09/167,498 patent/US6578064B1/en not_active Expired - Fee Related
-
2003
- 2003-01-15 US US10/342,272 patent/US6957434B2/en not_active Expired - Fee Related
-
2004
- 2004-10-18 US US10/965,847 patent/US20050050544A1/en not_active Abandoned
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19744230B4 (de) * | 1997-10-07 | 2007-10-25 | Robert Bosch Gmbh | Steuergeräte für ein System und Verfahren zum Betrieb eines Steuergeräts |
US7536241B2 (en) | 1997-10-07 | 2009-05-19 | Robert Bosch Gmbh | Control device for a system, and method for operating the control device |
EP1516244A1 (de) * | 2002-06-24 | 2005-03-23 | DoCoMo Communications Laboratories USA, Inc. | Mobil-anwendungsumgebung |
EP1516244A4 (de) * | 2002-06-24 | 2007-08-08 | Ntt Docomo Inc | Mobil-anwendungsumgebung |
DE10345816A1 (de) * | 2003-09-30 | 2005-05-25 | Rexroth Indramat Gmbh | Kombination aus Steuerung und Antrieb |
DE102005046072A1 (de) * | 2005-09-27 | 2006-09-21 | Daimlerchrysler Ag | Verfahren und Vorichtung zur Prozeßregelung |
DE102005046072B4 (de) * | 2005-09-27 | 2009-04-02 | Daimler Ag | Verfahren und Vorichtung zur Prozeßregelung |
DE102006052757B4 (de) * | 2006-11-08 | 2014-10-09 | Siemens Aktiengesellschaft | Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen |
DE102012011295A1 (de) * | 2012-06-08 | 2013-12-12 | Robert Bosch Gmbh | Vorrichtung und verfahren für eine maschine, feldgerät für eine maschine und steuergerät für eine maschine |
Also Published As
Publication number | Publication date |
---|---|
US5845116A (en) | 1998-12-01 |
US6578064B1 (en) | 2003-06-10 |
US20030115241A1 (en) | 2003-06-19 |
US6957434B2 (en) | 2005-10-18 |
US20050050544A1 (en) | 2005-03-03 |
JPH07282013A (ja) | 1995-10-27 |
JP3658420B2 (ja) | 2005-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19513922A1 (de) | Verteiltes Computersystem | |
CN107943555B (zh) | 一种云计算环境下的大数据存储和处理平台及处理方法 | |
DE60016283T2 (de) | Arbeitsbelastungsverwaltung in einer rechnerumgebung | |
CN100349415C (zh) | 用于对网格系统资源进行自主控制的设备、系统和方法 | |
DE69628798T2 (de) | Verfahren zur Übertragung von Multimediadaten | |
DE102017201789B4 (de) | Verfahren zum Betrieb eines Kraftfahrzeugs und Kraftfahrzeug | |
DE19931139B4 (de) | Produktionssystem und Fertigungsmittel-Auswahlverfahren in einem Produktionssystem | |
DE19648422C2 (de) | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm | |
DE60223394T2 (de) | Verfahren und vorrichtung zum einteilen von anforderungen für einen dynamischen direktzugriffsspeicherbaustein | |
CN109445944A (zh) | 一种基于dpdk的网络数据采集处理系统及其方法 | |
DE102009018261A1 (de) | Informationsverarbeitungssystem und Verfahren zur Steuerung der Aufgabenausführung | |
WO1996002883A1 (de) | Verfahren zur steuerung von technischen vorgängen oder prozessen | |
DE112010005096T5 (de) | Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern | |
CN103366022B (zh) | 信息处理系统及其处理方法 | |
EP0959407A2 (de) | Verfahren zum Zuteilen von Aufträgen Datenverarbeitungssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium | |
EP0010570B1 (de) | Verfahren und Einrichtung zur selbstadaptiven Zuordnung der Arbeitslast einer Datenverarbeitungsanlage | |
CN112463390A (zh) | 一种分布式任务调度方法、装置、终端设备及存储介质 | |
CN116069512B (zh) | 一种基于强化学习的Serverless高效资源分配方法及系统 | |
DE112011100714B4 (de) | Computersystem, Verfahren und Programm | |
DE602004007879T2 (de) | Dienstbereitstellungssystem | |
CN106502790A (zh) | 一种基于数据分布的任务分配优化方法 | |
CN116401055A (zh) | 面向资源效率优化的服务器无感知计算工作流编排方法 | |
EP1634176B1 (de) | Clusteranordnung für dezentrale lastverteilung | |
EP0463207A1 (de) | Programmgesteuerte Kommunikationsanlage | |
DE112019000666T5 (de) | Dynamische rekonfiguration einer softwarearchitektur für eine ccap (converged cable access platform) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8139 | Disposal/non-payment of the annual fee |