DE3902488C2 - Lastverteilungsverfahren zum Betreiben eines dezentralen Datenverarbeitungssystems - Google Patents

Lastverteilungsverfahren zum Betreiben eines dezentralen Datenverarbeitungssystems

Info

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
Application number
DE3902488A
Other languages
English (en)
Other versions
DE3902488A1 (de
Inventor
Toshihiko Sekizawa
Kinji Mori
Yasuo Suzuki
Masayuki Orimo
Katsumi Kawano
Minoru Koizumi
Kozo Nakai
Hirokazu Kasashima
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3902488A1 publication Critical patent/DE3902488A1/de
Application granted granted Critical
Publication of DE3902488C2 publication Critical patent/DE3902488C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program 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.
DE3902488A 1988-01-29 1989-01-27 Lastverteilungsverfahren zum Betreiben eines dezentralen Datenverarbeitungssystems Expired - Fee Related DE3902488C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 가부시끼가이샤 히다찌세이사꾸쇼 분산 처리 시스템과 그 방법

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