DE3902488C2 - Lastverteilungsverfahren zum Betreiben eines dezentralen Datenverarbeitungssystems - Google Patents
Lastverteilungsverfahren zum Betreiben eines dezentralen DatenverarbeitungssystemsInfo
- Publication number
- DE3902488C2 DE3902488C2 DE3902488A DE3902488A DE3902488C2 DE 3902488 C2 DE3902488 C2 DE 3902488C2 DE 3902488 A DE3902488 A DE 3902488A DE 3902488 A DE3902488 A DE 3902488A DE 3902488 C2 DE3902488 C2 DE 3902488C2
- Authority
- DE
- Germany
- Prior art keywords
- program
- processor
- status message
- processors
- load
- 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.)
- Expired - Fee Related
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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Description
Die Erfindung betrifft ein Lastverteilungsverfahren zum Be
treiben eines dezentralen Datenverarbeitungssystems nach dem
Oberbegriff des Patentanspruchs 1.
Ein solches dezentrales
Datenverarbeitungssystem ist aus der DE 37 11 273 A1 bekannt.
Bei dem bekannten dezentralen Datenverarbeitungssystem ist
jeder beliebige Prozessor in der Lage, ankommende Daten und
Informationen in der richtigen Reihenfolge aufzunehmen und zu
verarbeiten. Kommen die Daten nicht vom Netzwerk, sondern von
einer externen Einheit, wird dazu eine Ereigniszahl generiert
und zu den Daten hinzugefügt.
Die Belastung der einzelnen Prozessoren und insbesondere eine
Überlast oder auch eine Unterlast einzelner Prozessoren im
Netzwerk läßt sich so nicht feststellen. Ein einziger über
lasteter Prozessor im Netzwerk kann jedoch die Verarbeitungs
geschwindigkeit im gesamten Netzwerk herabsetzen.
Aus der Literaturstelle BARAK, Amnon und SHILOH, Amnon: "A
Distributed Load-balancing Policy for a Multicomputer" in
SOFTWARE - PRACTICE AND EXPERIENCE, September 1985, Bd. 15(9),
Seiten 901 bis 913, ist ein Lastverteilungsverfahren bekannt,
bei dem in den einzelnen Prozessoren ständig Informationen
über den Belastungszustand der anderen Prozessoren gespeichert
sind, wobei die Lastinformationen zwischen den Prozessoren
fortlaufend ausgetauscht und erneuert werden. Durch diese
Speicherung und ständige Erneuerung der gespeicherten Werte
ist in den Prozessoren und auf dem Netzwerk jedoch ständig ein
Teil des verfügbaren Platzes und der verfügbaren Zeit belegt,
auch wenn keine Über- oder Unterlasten auftreten.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Lastver
teilungsverfahren zum Betreiben eines dezentralen Datenverar
beitungssystems gemäß dem Oberbegriff des Patentanspruchs 1 zu
schaffen, bei dem selbständig Programme ausgetauscht werden,
wenn in einem Prozessor tatsächlich eine Überlast oder eine
Unterlast auftritt.
Diese Aufgabe wird erfindungsgemäß mit den im Kennzeichen des
Patentanspruchs 1 angegebenen Merkmalen gelöst.
Erfindungsgemäß wird somit erst dann, wenn ein Prozessor
feststellt, daß bei ihm eine Über- oder Unterlast vorliegt,
eine Nachricht auf das Netzwerk gegeben, und erst anhand
dieser Nachricht prüfen die anderen Prozessoren, ob sie einen
Lastanteil übernehmen oder abgeben können. Es ist somit kein
periodisches Belegen des Netzwerkes mit Lastinformationen und
auch keine dauernde Speicherung der Belastungszustände in den
einzelnen Prozessoren erforderlich.
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der
Unteransprüche 2 bis 5. Dabei hat die ausführung nach Anspruch
4 den besonderen Vorteil, daß das erfindungsgemäße Lastvertei
lungsverfahren beim Auftreten eines Programmfehlers auch dazu
verwendet werden kann, diesen Programmfehler den anderen Pro
zessoren auf dem Netzwerk mitzuteilen und ggf. über das Netzwerk
ein entsprechendes, fehlerfreies Ersatzprogramm einzuholen.
Ausführungsbeispiele für das Lastverteilungsverfahren zum
Betreiben eines dezentralen Datenverarbeitungssystems
werden im folgenden anhand der Zeichnung näher erläutert.
Es zeigt:
Fig. 1 eine allgemeine Ansicht zur Erläuterung des dezentralen
Datenverarbeitungssystems;
Fig. 2 die Anordnung des Datenverarbeitungssystems;
Fig. 3 eine Darstellung des Formates einer Nachricht, die
über die Übertragungswege in der Fig. 2 übermittelt
wird;
Fig. 4 eine Darstellung des Formates eines Datenabschnit
tes für den Fall, daß der Inhalt der Nachricht ein
Programm ist;
Fig. 5 eine Darstellung der inneren Architektur eines
Prozessors;
Fig. 6 eine Darstellung des Formates einer Programm-Infor
mationstabelle in der Fig. 5;
Fig. 7 ein Flußdiagramm für die Arbeitsschritte einer ein
gebauten Prüfvorrichtung für die Beurteilung eines
vom Netzwerk geladenen Programms;
Fig. 8 ein Flußdiagramm für die Arbeitsschritte bei einer
Programmausführungskontrolle in einem Prozessor,
der eine Programmanforderungsnachricht erhalten hat;
Fig. 9 ein Flußdiagramm für die Arbeitsschritte bei einer
Programmausführungskontrolle in einem Prozessor,
der eine Nachricht mit einem Programm erhalten hat;
Fig. 10(a) bis 10(c) Prozeßflüsse im Gesamtsystem für die
Fälle, daß die Belastungen zu hoch und zu gering
sind; und
Fig. 11(a) und 11(b) Darstellungen der Formate von Status
nachrichten.
Bei dem dezentralen Datenverarbeitungssystem kann
jeder der Prozessoren eines Netzwerkes selbständig eine
Nachricht an das Netzwerk abgeben, die seinen eigenen Zu
stand anzeigt, und ein Prozessor, der die Nachricht erhal
ten hat, kann nach einer Beurteilung der Nachricht ein
eigenes Programm an das Netzwerk geben, so daß der Pro
zessor, der das Programm benötigt, es laden und anschlie
ßend ausführen kann. Jeder Prozessor kann daher mit jedem
Zustand des eigenen Programmes fertigwerden, beispielsweise
beim Auftreten von Unregelmäßigkeiten im Programm oder auch
mit einer Überlast oder Unterlast.
Die Fig. 2 zeigt die Anordnung eines Gesamtsystems für eine
dezentrale Datenverarbeitung. Obwohl die folgenden Ausfüh
rungsformen nur anhand eines Übertragungssystems mit einer
einzigen Schleife zur Verbindung der Prozessoren erklärt
werden, ist die gleiche Vorgehensweise auch im Falle eines
jeden üblichen Netzwerkes möglich.
In der Fig. 2 bezeichnen die Bezugszeichen 101 bis 108 Pro
zessoren, von denen jeder Anwenderprogramme in einem internen
Speicher gespeichert hat und diese ausführt, und das Bezugs
zeichen 151 steht für einen einseitig gerichteten Übertra
gungsweg in Schleifenform, über den Daten in Richtung des
Pfeiles übertragen werden. Die Bezugszeichen 121 bis 128 be
zeichnen Netzwerk-Kontrollprozessoren, die die Datenübertra
gungen auf dem Übertragungsweg steuern. Jeder der Kontroll
prozessoren 121 bis 128 ist mit dem entsprechenden Prozes
sor durch einen zweiseitigen Übertragungsweg verbunden. Die
Nachrichten aus den Prozessoren 101 bis 108 werden über die
jeweiligen Kontrollprozessoren 121 bis 128 auf den Übertra
gungsweg 151 gegeben. Jeder der Kontrollprozessoren 121 bis
128 beurteilt, ob eine auf dem Übertragungsweg 151 befind
liche Nachricht für den mit ihm verbundenen Prozessor von
Bedeutung ist, und er gibt die Daten über die Nachricht nur
dann zu dem mit ihm verbundenen Prozessor, wenn er das Er
fordernis dafür feststellt. Jeder der Prozessoren 101 bis
108 beginnt mit der Ausführung des in ihm gespeicherten An
wenderprogrammes, wenn alle dafür benötigten Daten vollstän
dig vorhanden sind. Der dem gestarteten Programm entspre
chende Vorgang wird unter Verwendung der Daten ausgeführt
und das Ergebnis ausgegeben. Für den Fall, daß jeder der
Prozessoren 101 bis 108 ein Programm aus dem Netzwerk er
halten hat, wird das Programm im internen Speicher der Pro
zessoren abgespeichert.
Die Fig. 3 zeigt das Format der auf dem Übertragungsweg 151
übermittelten Nachrichten. F 201 und F 207 sind Kennzeichen,
die den Beginn bzw. das Ende der Nachricht anzeigen. FC 202
ist ein Funktionskode, der dem Inhalt oder der Funktion der
Nachricht entspricht. Auf der Basis dieses Funktionskodes
FC 202 beurteilt jeder der Kontrollprozessoren 121 bis 128,
ob der mit ihm verbundene Prozessor die erhaltene Nachricht
benötigt. SA 203 gibt die Adresse (Absenderadresse) des Kontroll
prozessors an, der die Nachricht ausgesendet hat, und
C 204 eine für die Übertragung benötigte laufende Nummer.
Die Daten 205 geben das erarbeitete Ergebnis eines jeden
Anwenderprogrammes oder den Inhalt des Anwenderprogrammes an,
und FCS 206 sind Blockprüfzeichendaten.
Die Fig. 4 zeigt das Format des Datenabschnittes 205 für den
Fall, daß der Datenabschnitt der Nachricht den Inhalt eines
Programmes enthält. Der Funktionskode FC 202 der Nachricht
zeigt in diesem Fall den Inhalt des Programmes zusammen mit
der Tatsache an, daß die Nachricht ein Programm enthält.
IFC 301 stellt einen Funktionscode (Eingabe-Funktionskode)
der Daten, die bei dem Programm eingegeben werden,
OFC 302 einen Funktionskode (Ausgabe-Funktionskode) der
Daten, die bei dem Programm ausgegeben werden, PN 303
einen Programmnamen und 304 den Inhalt des Programms
dar.
Die Fig. 5 zeigt die interne Architektur des Prozessors
101 (diejenige der Prozessoren 102 bis 108 ist damit iden
tisch). Wenn eine Nachricht auf dem Übertragungsweg 151
vom Kontrollprozessor 121 angenommen wird, wird sie in
einem Eingangspuffer 401 gespeichert. Die in dem Eingangs
puffer 401 zwischengespeicherten Daten werden von einer
Verarbeitungseinheit 403 zu einem Ein/Ausgabedatenbereich
404 gesandt. Eine Programmausführungs-Steuereinheit 407
stellt anhand des Funktionskodes 202 der angenommenen Nach
richt fest, ob der Inhalt der Nachricht ein Programm ist
oder nicht. Wenn der Inhalt der Nachricht kein Programm
ist, wird das Anwenderprogramm, das durch die Nachricht ge
startet werden kann, durch Zugriff auf eine Programm-Infor
mationstabelle 406 gesucht. Beim Vorhandensein eines aus
führbaren Anwenderprogrammes wird dieses durch die ange
nommene Nachricht gestartet. Wenn andererseits der Inhalt
der angenommenen Nachricht ein Programm ist, prüft die Pro
grammausführungs-Steuereinheit 407 den Datenabschnitt 205
der Nachricht, speichert den Eingabe-Funktionskode IFC 301,
den Ausgabe-Funktionskode OFC 302, den Programmnamen PN 303
und den Funktionskode FC 202 der Nachricht in der Programm-
Informationstabelle 406 und auch das Programm 304 selbst in
einem Anwenderprogrammbereich 405. Eine eingebaute Prüfvor
richtung 408 überwacht den Status oder Zustand der im An
wenderprogrammbereich 405 gespeicherten Anwenderprogramme
451 bis 45n. Wenn ein Programmfehler festgestellt wurde
oder beispielsweise die Auslastung des Prozessors zu ge
ring ist, gibt die Prüfvorrichtung 408 eine Nachricht, die
den Zustand oder Status des jeweiligen Prozessors anzeigt,
über die Verarbeitungseinheit 403, einen Ausgangspuffer 402
und den Kontrollprozessor 121 gemäß der eigenen Beurteilung
an den Übertragungsweg 151 ab. Das Ergebnis eines auf einem
Anwenderprogramm basierenden Vorganges wird im Ein/Ausgabe
datenbereich 404 gespeichert, durch die Verarbeitungsein
heit 403 zum Ausgangspuffer 402 gesendet und über den Kon
trollprozessor 121 auf den Übertragungsweg 151 gegeben.
Die Fig. 6 zeigt das Format der Programm-Informationsta
belle 406. In der Tabelle sind Informationen über die im
Prozessor vorhandenen Anwenderprogramme gespeichert. IFC 501
ist ein Eingabe-Funktionskode, OFC 502 ein Ausgabe-Funktionskode,
PN 503 ein Programmname und PFC 504 ein Funktionskode
(Programm-Funktionskode), der dem Programm hinzugefügt wird,
wenn es auf den Übertragungsweg 151 gegeben wird. F 505 ist
ein Ausführbarkeits-Kennzeichen, das dann vorhanden ist,
wenn das entsprechende Programm ausführbar ist. Die Tabelle
ist derart aufgebaut, daß die Zeilen 511 bis 51n den Anwen
derprogrammen 451 bis 45n entsprechen.
Die Fig. 7 zeigt die Verfahrensschritte für den Fall, daß
es die eingebaute Prüfvorrichtung 408 aufgrund des Zustands
des Programms im zugehörigen Prozessor für erforderlich hält,
eine Statusnachricht abzusenden. Auf die Beurteilung der
Notwendigkeit des Absendens der Statusnachricht über den Zu
stand des Programms im eigenen Prozessor (Schritt 601) ver
anlaßt die Prüfvorrichtung 408, daß die Statusnachricht auf
den Übertragungsweg 151 gegeben wird (Schritt 602). Der
Funktionskode FC 202 der Statusnachricht zeigt an, daß die
Nachricht eine Statusnachricht ist, und der Datenabschnitt
205 davon gibt den Status oder Zustand des entsprechenden
Prozessors an.
Die Fig. 8 zeigt die Arbeitsschritte der Programmausführungs-
Steuereinheit 407 in dem Prozessor, der eine Statusnachricht
erhalten hat. Wenn die Statusnachricht vom Prozessor ange
nommen wurde und den Ein/Ausgabedatenbereich 404 erreicht hat
(Schritt 701), liest die Steuereinheit 407 den Datenabschnitt
der Nachricht (Schritt 702), um Informationen über den Zu
stand des Prozessors zu erhalten, der der Absender der Nach
richt ist. Nach dem Gewinnen der Informationen greift die
Steuereinheit 407 auf die Programm-Informationstabelle 406
zu und prüft auf der Basis des Inhalts der erhaltenen Nach
richt, ob ein zu übermittelndes Programm im Anwenderprogramm
bereich 405 vorhanden ist (Schritt 703). Wenn kein zu über
mittelndes Programm vorhanden ist, endet zu diesem Zeitpunkt
eine Reihe von Vorgängen. Wenn ein zu übermittelndes Pro
gramm vorhanden ist, wird dieses Programm aus dem Anwender
programmbereich in den Ein/Ausgabedatenbereich 404 kopiert,
und es wird eine Nachricht erzeugt, in der der Datenabschnitt
mit dem betreffenden Programm das in der Fig. 4 gezeigte For
mat erhält, wobei der Funktionskode der Programm-Funktions
kode PFC 504 des zu übermittelnden Programms ist, wie er in
der Programm-Informationstabelle 406 gespeichert ist (Schritt
704). Die wie beschrieben erzeugte Nachricht wird durch die
Verarbeitungseinheit 403 zum Ausgangspuffer 402 und über den
Kontrollprozessor 121 auf den Übertragungsweg 151 gegeben.
Die Fig. 9 zeigt die Arbeitsschritte der Steuereinheit 407
in dem Prozessor, der die Nachricht erhalten hat, deren
Datenabschnitt 205 das Programm darstellt. Wenn die Nach
richt den Ein/Ausgabedatenbereich 404 erreicht hat (Schritt
801), werden der Eingabe-Funktionskode IFC 301, der Ausgabe-
Funktionskode OFC 302, der Programmname PN 303 in dem Datenabschnitt
205, dessen Format in der Fig. 4 gezeigt ist, und
der Funktionskode der Nachricht in IFC 501, OFC 502, PN 503
bzw. PFC 504 in den leeren Bereichen der Programm-Informa
tionstabelle 406 gespeichert (Schritt 802). Außerdem wird
das Programm 304 im Anwenderprogrammbereich 405 gespeichert
(Schritt 803). Wenn die Speichervorgänge abgeschlossen sind,
wird das Ausführbarkeits-Kennzeichen F 505 in der Programm-
Informationstabelle 406 in der Zeile, die dem erhaltenen
Programm entspricht, gesetzt, um die Ausführung des Pro
grammes starten zu können.
Die Fig. 1 zeigt den Fluß der Vorgänge im Gesamtsystem. Es
wird dabei angenommen, daß in einem Programm im Prozessor
101 eine Unregelmäßigkeit aufgetreten ist, und daß ein Pro
gramm, das in der Funktion dem fehlerhaft gewordenen Programm
entspricht und das für Online-Operationen verwendet wird, im
Prozessor 108 vorhanden ist. Wenn die Prüfvorrichtung im
Prozessor 101 die Unregelmäßigkeit im Anwenderprogramm des
eigenen Prozessors festgestellt hat, wird eine Statusnach
richt über den Zustand des eigenen Prozessors erzeugt und
vom Prozessor 101 über den Kontrollprozessor 121 auf den
Übertragungsweg 151 gegeben. Die übermittelte Statusnach
richt 1 wird von den jeweiligen Kontrollprozessoren aufge
nommen und zu den entsprechenden Prozessoren gesandt. Auf
der Basis der Statusnachricht prüfen diese Prozessoren, ob
unter den Programmen für Online-Operationen das zu übermit
telnde Programm vorhanden ist. Da hier das zu übermittelnde
Programm im Prozessor 108 vorhanden ist, gibt der Pro
zessor 108 eine Nachricht 2 auf den Übertragungsweg 151,
die einen Datenabschnitt aufweist, dessen Format in der
Fig. 4 gezeigt ist und der als Teil davon das fragliche
Programm enthält. Auf der Basis des Funktionskodes der
Nachricht beurteilt jeder der Kontrollprozessoren, ob das
erhaltene Programm für den damit verbundenen Prozessor er
forderlich ist. Nach Feststellung der Notwendigkeit nimmt
der Kontrollprozessor die Nachricht an. Da die Nachricht 2
das Programm enthält, das in der Funktion dem Programm ent
spricht, das von dem Prozessor 101 benötigt wird, liefert
der Kontrollprozessor 121 die Nachricht 2 an den Prozessor
101. Der Prozessor 101 speichert das in der Nachricht 2 ent
haltene Programm in seinem Anwenderprogrammbereich ab und
beginnt mit der Ausführung des Programms.
In dem Fall, daß ein Prozessor eine Überlastung festgestellt
hat, veranlaßt er ebenfalls die Aussendung einer Statusnach
richt, und wenn der Prozessor, der die Nachricht angenommen
hat, aufgrund seiner eigenen Belastung entscheidet, daß er
eine Statusnachricht absendet, kann auf die Absendung dieser
Statusnachricht der überlastete Prozessor ein Programm ab
geben.
Die Fig. 10(a) bis 10(c) zeigen den Fluß der Vorgänge im
Gesamtsystem, wenn Belastungen zu hoch und zu niedrig sind.
Es wird angenommen, daß die Prüfvorrichtung des Prozessors
101 eine Überlastung des eigenen Prozessors festgestellt hat
(das heißt die Prüfvorrichtung hat festgestellt, daß die
Anzahl von Dateneinheiten, die für den eigenen Prozessor
innerhalb einer festen Zeitspanne vom Übertragungsweg 151
angenommen werden, größer ist als ein bestimmter Bezugswert,
daß die Anzahl von Programmschritten, die innerhalb einer
bestimmten Zeit verarbeitet werden, größer als ein be
stimmter Bezugswert ist usw.). Der Prozessor 101 veran
laßt dann, daß eine Statusnachricht 901 auf den Übertra
gungsweg 151 gegeben wird. Das Format der Statusnachricht
901 ist in der Fig. 11(a) gezeigt. Der Inhalt der Status
nachricht 901 besteht aus den Programm-Funktionskodes
1001 bis 100n aller Programme im Prozessor 101 und den
Belastungswerten für die jeweiligen Programme (die Anzahl
der Schritte innerhalb einer festen Zeitspanne, die von
den entsprechenden Programmen abgewickelt werden) l1-ln
(1011-101n). Der m-te Prozessor 10m (m=2, 3, . . ., 8),
der die Statusnachricht 901 erhalten hat, stellt fest, ob
die Statusnachricht einen Belastungswert li enthält, gemäß
dem die Summe Lm der Belastungswerte aller seiner eigenen
Programme die folgende Gleichung erfüllt:
L₁ - li ≧ Lm + li (i = 1, 2, . . ., n) (1).
Wenn eine Anzahl von Werten li vorhanden ist, die die Glei
chung (1) erfüllen, wird aus der Anzahl der Werte derjeni
ge Wert ausgewählt, mit dem die Differenz zwischen der
linken und der rechten Seite der Gleichung (1) am klein
sten ist. Es wird angenommen, daß hier die Prozessoren 106
bis 108 festgestellt haben, daß der Wert l1 die Gleichung
(1) und obige Bedingung erfüllt. In diesem Fall veranlassen
die Prozessoren 106 bis 108, daß Statusnachrichten 906 bis
908 abgegeben werden. Das Format der Statusnachrichten 906
bis 908 ist in der Fig. 11(b) gezeigt, und sie bestehen je
weils aus der Summe Lm 1021 der Belastungswerte aller Pro
gramme im entsprechenden Prozessor und einem Programm-Funk
tionskode PFCi 1022 entsprechend dem Belastungswert li, der
die Gleichung (1) erfüllt. Die Prozessoren 101 und 106 bis
108 nehmen die Statusnachrichten 906 bis 908 innerhalb
einer festen Zeitspanne an, und sie vergleichen die Summen
Lm der Statusnachrichten, die den gleichen Programm-Funk
tionskode enthalten wie sie selbst, um die Nachricht fest
zustellen, deren Summe Lm am kleinsten ist. Es wird ange
nommen, daß hier die Summe der Belastungswerte aller Pro
gramme im Prozessor 107 als am kleinsten unter den Summen
aus den Prozessoren 106 bis 108 ist. Der im Gesamtsystem
darauf folgende Vorgang ist in der Fig. 10(b) gezeigt. Der
Prozessor 107 gibt eine Statusnachricht 911 auf den Über
tragungsweg 151 aus. Der Inhalt der Statusnachricht 911
ist der Programm-Funktionskode PFCi 1022 aus der Status
nachricht 907. Der Prozessor 101 veranlaßt, nachdem er die
Statusnachricht 911 erhalten hat, daß das Programm 2, das
dem Inhalt der betreffenden Nachricht entspricht, auf den
Übertragungsweg 151 gegeben wird.
Der Fall, daß die eingebaute Prüfvorrichtung des Prozessors
101 eine Unterlast des eigenen Prozessors festgestellt hat,
wird anhand der Fig. 10(a) beschrieben. Der Prozessor 101
gibt dann eine Statusnachricht 901 ab. Der m-te Prozessor
10m, der die Statusnachricht erhalten hat, stellt bezüglich
der Belastungswerte l1′-ln′ der eigenen Programme fest, ob
es einen Belastungswert li′ gibt, der die folgende Gleichung
erfüllt:
L₁ + li ≧ Ln - li′ (i = 1, 2, . . ., n) (2).
Wenn es eine Anzahl von Werten li′ gibt, die die Gleichung
(2) erfüllen, dann wird daraus der Wert li ausgewählt, mit
dem die Differenz zwischen der linken und der rechten Seite
der Gleichung (2) am kleinsten ist. Es wird angenommen, daß
hier die Prozessoren 106 bis 108 das Vorhandensein eines
Wertes li′ festgestellt haben, der die Gleichung (2) er
füllt. Diese Prozessoren 106 bis 108 veranlassen daher,
daß jeweils eine Statusnachricht 906 bis 908 abgegeben
wird. Die Prozessoren 101 und 106 bis 108 nehmen die Sta
tusnachrichten 906 bis 908 innerhalb einer festen Zeit
spanne an und vergleichen die Summen Lm der Statusnach
richten, um diejenige Nachricht festzustellen, deren
Summe Lm am größten ist. Unter den Summen für die Pro
zessoren 106 bis 108 sei die Summe für die Programme im
Prozessor 107 am größten. Der daraufhin im Gesamtsystem
ablaufende Vorgang ist in der Fig. 10(c) gezeigt. Der
Prozessor 101 veranlaßt, daß eine Statusnachricht 911
über den Übertragungsweg 151 läuft. Der Inhalt der Sta
tusnachricht 911 ist der Programm-Funktionskode PFC 1022
der Statusnachricht 907. Nach Erhalt der Statusnachricht
911 veranlaßt der Prozessor 107, daß das Programm 2 auf
den Übertragungsweg 151 gegeben wird, das dem Inhalt der
betreffenden Nachricht entspricht.
Die Statusnachrichten 1, 901, 907 bis 909 und 911 sollten
jeweils verschiedene Funktionskodes haben, und die in der
Fig. 8 gezeigten Schritte sind die Schritte des Prozessors,
der die Statusnachricht 1 oder 911 erhalten hat.
Bezüglich der Statusnachrichten 901 und 907 bis 909 soll
ten getrennte Funktionskodes für eine Überlast und eine
Unterlast vorgesehen werden.
Erfindungsgemäß überwacht somit jeder Prozessor den Zustand
der eigenen Programme und kann auf eine besondere Beurtei
lung des Zustandes hin eine Statusnachricht abgeben; der
die Statusnachricht empfangende Prozessor kann auf eine
Beurteilung des Inhaltes der Nachricht hin ein Programm
abgeben, wenn das abzusendende Programm in ihm enthalten
ist; und jeder der Prozessoren kann beurteilen, ob das
sich auf dem Übertragungsweg befindende Programm für den
eigenen Prozessor erforderlich ist, und wenn es erforder
lich ist, kann er es laden und ausführen; so daß jeder der
Prozessoren in der Lage ist, Situationen zu bewältigen,
bei denen im Programm Unregelmäßigkeiten auftreten oder
bei denen die Belastung des Prozessors zu groß oder zu
klein ist.
Erfindungsgemäß kann daher in einem dezentralen System,
bei dem eine Anzahl von Prozessoren durch ein Netzwerk
miteinander verbunden ist und bei dem Programme Online
unter den Prozessoren ausgetauscht werden können, jeder
der Prozessoren feststellen, ob ein Programm aus dem
Netzwerk zu laden ist, und er kann es zum Zeitpunkt der
Feststellung, daß das Programm in der Funktion einem be
notigten Programm entspricht, laden. Die Prozessoren kön
nen daher mit Programmfehlern, Überlastungen und einer
Unterlast selbständig fertig werden.
Claims (5)
1. Lastverteilungsverfahren zum Betreiben eines dezentralen
Datenverarbeitungssystems mit einer Anzahl von Prozessoren
(101-108), die durch ein Netzwerk (151) miteinander ver
bunden sind, wobei zwischen den Prozessoren Daten und Programme
ausgetauscht werden können, gekennzeichnet durch die Schritte
- a) des Überwachens in jedem der Prozessoren, des eigenen Belastungszustandes;
- b) des Beurteilens, ob der Belastungszustand einen Programm austausch mit einem anderen Prozessor erfordert;
- c) des Abgebens einer ersten Statusnachricht (901) an das Netzwerk, wenn der Belastungszustand einen Programmaustausch erfordert;
- d) des Aufnehmens der ersten Statusnachricht (901) vom Netz werk von jedem der anderen Prozessoren;
- e) des Beurteilens, in jedem der die erste Statusnachricht aufnehmenden Prozessoren, ob der eigene Belastungszustand das Austauschen eines Programms des jeweiligen Prozessors mit dem die erste Statusnachricht absendenden Prozessor ermöglicht;
- f) des Abgebens, von wenigstens einem der die erste Status nachricht aufnehmenden Prozessoren, einer zweiten Statusnachricht (906; 907; 908) an das Netzwerk, wenn der eigene Belastungs zustand das Austauschen eines Programms des jeweiligen Prozessors mit dem die erste Statusnachricht abgebenden Prozessor ermöglicht;
- g) des Aufnehmens der zweiten Statusnachricht von wenigstens einem der übrigen Prozessoren;
- h) des Entscheidens, in dem die zweite Statusnachricht auf nehmenden Prozessor, ob mit dem die erste Statusnachricht ab gebenden Prozessor Programme auszutauschen sind; und
- i) des Ausführens des Programmaustausches in Übereinstimmung mit dem Ergebnis des Entscheidungsschrittes.
2. Lastverteilungsverfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß ein Programm auf dem Netzwerk übermittelt wird,
wenn ein Belastungswert (Lm+li), der durch Addition eines
Vorganges für das Programm mit den Vorgängen anderer Prozessoren
erhalten wird, kleiner ist als ein Belastungswert (L₁-li),
der durch Subtraktion des kVorganges für das Programm von
einem Vorgang für den eigenen Prozessor erhalten wird.
3. Lastverteilungsverfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß ein Programm auf dem Netzwerk übermittelt wird,
wenn ein Belastungswert (Ln+li), der durch Subtraktion eines
Vorganges für das Programm des Prozessors, der eine Status
nachricht erhalten hat, größer ist als ein Belastungswert (L₁+li),
der durch Addition des Vorganges für das Programm mit
einem Vorgang für den Prozessor erhalten wird, der die Status
nachricht abgesendet hat.
4. Lastverteilungsverfahren nach Anspruch 1, dadurch gekenn
zeichnet, daß die Überwachung des Belastungszustandes auch die
Überwachung auf Programmfehler einschließt; daß beim Auftreten
eines Programmfehlers die erste Statusnachricht (1) abgegeben
wird, wobei in der Statusnachricht das Programm durch einen
Funktionskode (202) angegeben wird; und daß ein anderer Pro
zessor auf dem Netzwerk bei Vorhandensein dieses Programms das
Programm auf das Netzwerk gibt.
5. Lastverteilungsverfahren nach Anspruch 4, dadurch gekenn
zeichnet, daß die Feststellung des Erfordernisses des Ladens
eines Programms anhand des Funktionskodes (202) erfolgt, der
in der Statusnachricht (1) enthalten ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63017063A JPH01194054A (ja) | 1988-01-29 | 1988-01-29 | 分散処理システムのプログラムローデイング方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3902488A1 DE3902488A1 (de) | 1989-08-10 |
DE3902488C2 true DE3902488C2 (de) | 1994-08-18 |
Family
ID=11933527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3902488A Expired - Fee Related DE3902488C2 (de) | 1988-01-29 | 1989-01-27 | Lastverteilungsverfahren zum Betreiben eines dezentralen Datenverarbeitungssystems |
Country Status (7)
Country | Link |
---|---|
US (1) | US5410651A (de) |
JP (1) | JPH01194054A (de) |
KR (1) | KR930000590B1 (de) |
CN (1) | CN1010435B (de) |
BR (1) | BR8900358A (de) |
DE (1) | DE3902488C2 (de) |
IN (1) | IN171742B (de) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110925A (ja) * | 1992-09-28 | 1994-04-22 | Hitachi Ltd | ネットワークで接続された計算機とその利用方法 |
EP0632375B1 (de) * | 1993-06-04 | 1999-02-03 | Hitachi, Ltd. | Verfahren zu multipler Ausführung multipler-Versionprogramme und Rechnersystem dafür |
JP3552258B2 (ja) * | 1993-12-27 | 2004-08-11 | 株式会社日立製作所 | 分散計算機システム及びその情報管理方法 |
JPH07262156A (ja) * | 1994-03-16 | 1995-10-13 | Fujitsu Ltd | マルチダウンロードシステム |
DE4414171A1 (de) * | 1994-04-22 | 1995-10-26 | Paul Bantzer | Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk |
JPH07311752A (ja) * | 1994-05-11 | 1995-11-28 | Internatl Business Mach Corp <Ibm> | 分散データ処理システム及び初期プログラムロード方法 |
JPH0830471A (ja) * | 1994-07-14 | 1996-02-02 | Hitachi Ltd | ジョブの実行プロセサ変更方式 |
JP3307508B2 (ja) * | 1994-09-01 | 2002-07-24 | 富士通株式会社 | 通信ネットワーク構成検出方法 |
JPH08249136A (ja) * | 1995-03-10 | 1996-09-27 | Sony Corp | 記録再生装置及び伝送方法 |
US5915095A (en) * | 1995-08-08 | 1999-06-22 | Ncr Corporation | Method and apparatus for balancing processing requests among a plurality of servers based on measurable characteristics off network node and common application |
US6134601A (en) * | 1996-06-17 | 2000-10-17 | Networks Associates, Inc. | Computer resource management system |
US6360256B1 (en) * | 1996-07-01 | 2002-03-19 | Sun Microsystems, Inc. | Name service for a redundant array of internet servers |
US5805829A (en) * | 1996-10-01 | 1998-09-08 | International Business Machines Corp | Process for running applets over non-IP networks |
US8312529B2 (en) | 1996-11-29 | 2012-11-13 | Ellis Frampton E | Global network computers |
US7805756B2 (en) * | 1996-11-29 | 2010-09-28 | Frampton E Ellis | Microchips with inner firewalls, faraday cages, and/or photovoltaic cells |
US6167428A (en) | 1996-11-29 | 2000-12-26 | Ellis; Frampton E. | Personal computer microprocessor firewalls for internet distributed processing |
US20050180095A1 (en) * | 1996-11-29 | 2005-08-18 | Ellis Frampton E. | Global network computers |
US6725250B1 (en) | 1996-11-29 | 2004-04-20 | Ellis, Iii Frampton E. | Global network computers |
US7024449B1 (en) | 1996-11-29 | 2006-04-04 | Ellis Iii Frampton E | Global network computers |
US8225003B2 (en) | 1996-11-29 | 2012-07-17 | Ellis Iii Frampton E | Computers and microchips with a portion protected by an internal hardware firewall |
US7506020B2 (en) | 1996-11-29 | 2009-03-17 | Frampton E Ellis | Global network computers |
US7926097B2 (en) | 1996-11-29 | 2011-04-12 | Ellis Iii Frampton E | Computer or microchip protected from the internet by internal hardware |
US6732141B2 (en) | 1996-11-29 | 2004-05-04 | Frampton Erroll Ellis | Commercial distributed processing by personal computers over the internet |
US7634529B2 (en) * | 1996-11-29 | 2009-12-15 | Ellis Iii Frampton E | Personal and server computers having microchips with multiple processing units and internal firewalls |
US7035906B1 (en) | 1996-11-29 | 2006-04-25 | Ellis Iii Frampton E | Global network computers |
KR100265955B1 (ko) * | 1996-12-02 | 2000-09-15 | 김영환 | 주프로세서에대해다수개의부프로세서가존재하는시스템의부프로세서로딩방법 |
US6098091A (en) * | 1996-12-30 | 2000-08-01 | Intel Corporation | Method and system including a central computer that assigns tasks to idle workstations using availability schedules and computational capabilities |
US5997167A (en) * | 1997-05-01 | 1999-12-07 | Control Technology Corporation | Programmable controller including diagnostic and simulation facilities |
US6055363A (en) * | 1997-07-22 | 2000-04-25 | International Business Machines Corporation | Managing multiple versions of multiple subsystems in a distributed computing environment |
US5956515A (en) * | 1997-07-22 | 1999-09-21 | International Business Machines Corporation | Method for managing multiple versions of multiple subsystems in a distributed computing environment |
US5991544A (en) * | 1997-12-09 | 1999-11-23 | Nortel Networks Corporation | Process and apparatus for managing a software load image |
JPH11175322A (ja) * | 1997-12-17 | 1999-07-02 | Sony Corp | 情報処理装置および情報処理方法、並びに提供媒体 |
US6101328A (en) * | 1997-12-31 | 2000-08-08 | Intel Corporation | System for preventing multiple instances of the same dynamic executable module |
US6553403B1 (en) * | 1998-06-03 | 2003-04-22 | International Business Machines Corporation | System, method and computer program product for monitoring in a distributed computing environment |
US6549932B1 (en) * | 1998-06-03 | 2003-04-15 | International Business Machines Corporation | System, method and computer program product for discovery in a distributed computing environment |
US6728947B1 (en) * | 1998-06-05 | 2004-04-27 | R. R. Donnelley & Sons Company | Workflow distributing apparatus and method |
US6460136B1 (en) * | 1999-07-12 | 2002-10-01 | Hewlett-Packard Co., | Method and apparatus for loading an operating system kernel from a shared disk memory |
US7389341B2 (en) * | 2001-01-31 | 2008-06-17 | Accenture Llp | Remotely monitoring a data processing system via a communications network |
US20030061349A1 (en) * | 2001-09-24 | 2003-03-27 | George Lo | Method and system for collaboratively developing programming code for programmable controllers |
US20030140161A1 (en) * | 2001-12-21 | 2003-07-24 | Matthew A. Hayduk | Portable computing device having a dynamic client classmark and method therefor |
WO2003076252A1 (fr) * | 2002-03-08 | 2003-09-18 | Kayaba Industry Co., Ltd. | Dispositif de regulation de l'ecoulement destine a une servodirection |
JP3826859B2 (ja) * | 2002-08-19 | 2006-09-27 | ソニー株式会社 | 情報処理方法とその方法を実現するプログラム及び記録媒体 |
US7634559B2 (en) * | 2003-09-11 | 2009-12-15 | Standard Chartered (Ct) Plc | System and method for analyzing network software application changes |
US8125796B2 (en) | 2007-11-21 | 2012-02-28 | Frampton E. Ellis | Devices with faraday cages and internal flexibility sipes |
US8479216B2 (en) * | 2009-08-18 | 2013-07-02 | International Business Machines Corporation | Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node |
US8479215B2 (en) * | 2009-08-18 | 2013-07-02 | International Business Machines Corporation | Decentralized load distribution to reduce power and/or cooling costs in an event-driven system |
US8429735B2 (en) | 2010-01-26 | 2013-04-23 | Frampton E. Ellis | Method of using one or more secure private networks to actively configure the hardware of a computer or microchip |
CN102305179B (zh) * | 2011-08-23 | 2013-12-18 | 国电联合动力技术有限公司 | 风力发电机组偏航扇区管理和优化控制系统及其方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS615177B2 (de) * | 1975-01-16 | 1986-02-17 | Hitachi Ltd | |
JPS53144605A (en) * | 1977-05-23 | 1978-12-16 | Nec Corp | Electronic decentralized control switching system |
JPS57146361A (en) * | 1981-03-06 | 1982-09-09 | Hitachi Ltd | Decentralized processing method |
DE3374964D1 (en) * | 1982-09-29 | 1988-01-28 | Toshiba Kk | Decentralized information processing system and initial program loading method therefor |
US4633387A (en) * | 1983-02-25 | 1986-12-30 | International Business Machines Corporation | Load balancing in a multiunit system |
JPS60230260A (ja) * | 1984-04-27 | 1985-11-15 | Nec Corp | 分散処理システムにおけるロ−ド方式 |
JPS61114363A (ja) * | 1984-11-07 | 1986-06-02 | Hitachi Ltd | 計算機システム間ジヨブ転送方式 |
JP2709705B2 (ja) * | 1985-06-12 | 1998-02-04 | 株式会社日立製作所 | マルチコンピユータシステムにおけるプログラム管理方法 |
JPH06103481B2 (ja) * | 1985-11-15 | 1994-12-14 | 株式会社日立製作所 | プログラムロ−デイング方式 |
JPS62174861A (ja) * | 1986-01-28 | 1987-07-31 | Nec Corp | マルチプロセツサの分散管理方式 |
KR900005883B1 (ko) * | 1986-04-04 | 1990-08-13 | 가부시끼가이샤 히다찌세이사꾸쇼 | 분산 처리 시스템과 그 방법 |
-
1988
- 1988-01-29 JP JP63017063A patent/JPH01194054A/ja active Pending
-
1989
- 1989-01-09 KR KR1019890000160A patent/KR930000590B1/ko not_active IP Right Cessation
- 1989-01-23 IN IN72/CAL/89A patent/IN171742B/en unknown
- 1989-01-27 DE DE3902488A patent/DE3902488C2/de not_active Expired - Fee Related
- 1989-01-27 BR BR898900358A patent/BR8900358A/pt not_active IP Right Cessation
- 1989-01-28 CN CN89100528A patent/CN1010435B/zh not_active Expired
-
1993
- 1993-03-16 US US08/031,923 patent/US5410651A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR890012225A (ko) | 1989-08-25 |
JPH01194054A (ja) | 1989-08-04 |
IN171742B (de) | 1992-12-26 |
CN1037414A (zh) | 1989-11-22 |
KR930000590B1 (ko) | 1993-01-25 |
CN1010435B (zh) | 1990-11-14 |
US5410651A (en) | 1995-04-25 |
BR8900358A (pt) | 1989-09-19 |
DE3902488A1 (de) | 1989-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3902488C2 (de) | Lastverteilungsverfahren zum Betreiben eines dezentralen Datenverarbeitungssystems | |
DE3629178C2 (de) | ||
DE69629218T2 (de) | System und Verfahren um die Belastung einer Mehrzahl von Datei-Servern zu verteilen | |
DE3201768C2 (de) | ||
DE60318468T2 (de) | Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem | |
DE3611223C2 (de) | ||
EP0346801B1 (de) | Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem | |
DE4235193C2 (de) | Netzwerksystem und zugehöriges Softwareverwaltungsverfahren | |
DE112006003745T5 (de) | Fernaktualisierungssystem für ein Aufzugssteuerprogramm | |
DE2500086A1 (de) | Diagnostisches verbindungssystem fuer computergesteuerte werkzeugmaschinen | |
DE2943149C2 (de) | Ringnetzwerk mit mehreren an eine Daten-Ringleitung angeschlossenen Prozessoren | |
DE4305522C2 (de) | Einrichtung zur rechnergestützten Diagnose eines aus Modulen bestehenden technischen Systems | |
DE3718218A1 (de) | Bilddaten-verarbeitungsgeraet mit aufbereitungsfunktion | |
DE3209046C2 (de) | Terminal-Verarbeitungssystem | |
DE3619660C2 (de) | ||
DE10109863A1 (de) | Verfahren zur systematischen beurteilung der Qualität von im Betrieb befindlichen medizintechnischen Geräten | |
DE3841214C2 (de) | Vorrichtung zur Behandlung von Statusdaten in einem Mehreinheitensystem | |
DE19780639C2 (de) | Arbeitsübernahmesystem | |
DE4010109C2 (de) | Duplexrechnersystem | |
DE3938950C2 (de) | ||
DE112011100536T5 (de) | Transaktionsverarbeitungssystem | |
DE102007010330A1 (de) | Bildspeichersystem | |
DE4402866C2 (de) | Puffer-Verwaltungssystem zur Verwaltung eines Puffer-Pools | |
DE4103411A1 (de) | Verfahren und vorrichtung zur programmaenderung in verteilten datenverarbeitungssystemen | |
DE112011105472T5 (de) | Kommunikationsvorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8128 | New person/name/address of the agent |
Representative=s name: STREHL, P., DIPL.-ING. DIPL.-WIRTSCH.-ING. SCHUEBE |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |