DE4103411A1 - Verfahren und vorrichtung zur programmaenderung in verteilten datenverarbeitungssystemen - Google Patents

Verfahren und vorrichtung zur programmaenderung in verteilten datenverarbeitungssystemen

Info

Publication number
DE4103411A1
DE4103411A1 DE4103411A DE4103411A DE4103411A1 DE 4103411 A1 DE4103411 A1 DE 4103411A1 DE 4103411 A DE4103411 A DE 4103411A DE 4103411 A DE4103411 A DE 4103411A DE 4103411 A1 DE4103411 A1 DE 4103411A1
Authority
DE
Germany
Prior art keywords
environment
program
processor
cpu
data processing
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.)
Ceased
Application number
DE4103411A
Other languages
English (en)
Inventor
Kinji Mori
Yasuo Suzuki
Tsunao Kanzaki
Hiroaki Fujii
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
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 Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Publication of DE4103411A1 publication Critical patent/DE4103411A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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/46Multiprogramming arrangements

Description

Die Erfindung betrifft ein Verfahren zur Programmänderung bei Entwicklung, Test und Ausführung eines Programmes in einem ver­ teilten Datenverarbeitungssystem sowie ein System zur Anwendung dieses Verfahrens.
Bei bekannten, verteilten Datenverarbeitungssystemen mit einer Mehrzahl von Prozessoren, die über ein Netzwerk miteinander ver­ bunden sind, wird nur ein der Umgebung eines Prozessors anpaßba­ res Programm in den Prozessor geladen und ausgeführt. Es ist je­ doch noch kein Verfahren zur Änderung und Ausführung eines Pro­ grammes in Abhängigkeit von der Prozessorumgebung bekannt.
In der Struktur bekannter Programme ist der Programmverarbei­ tungsteil nicht von den Eingabe/Ausgabeteilen getrennt. Folglich muß ein Anwender das Programm auf der Grundlage der Prozessorum­ gebung ändern, wenn dort ein Eingang oder Ausgang entsprechend einem Eingabe- oder Ausgabeteil nicht vorhanden ist.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Pro­ grammänderung in verteilten Datenverarbeitungssystemen sowie ein System zur Durchführung dieses Verfahrens anzugeben, bei dem je­ der Prozessor ein Programm abruft und autonom dieses Programm an seine Umgebung anpaßt.
Die erfindungsgemäße Lösung dieser Aufgabe ist in dem Pa­ tentanspruch 1 bzw. 7 angegeben.
Ein besonderer Vorteil dieser Lösung besteht darin, daß bei Auf­ treten eines Fehlers in einem Prozessor autonom ein Programm ge­ ändert und an eine neue Umgebung angepaßt werden kann.
Weiterhin vorteilhaft ist, daß eine autonome Programmänderung und Anpassung an eine zu einem Zeitpunkt vorherrschende Umgebung erfolgen kann, zu dem ein Fehler in einem Prozessor auftreten kann.
Weiterhin ist eine autonome Programmänderung und Anpassung an eine neue Umgebung möglich, wenn die Leistungsfähigkeit des Pro­ zessors erweitert wird.
Außerdem ist mit dem erfindungsgemäßen Verfahren bzw. der Vor­ richtung eine Programmänderung möglich, bei der jeder Prozessor autonom ein Programm entsprechend der Umgebung des Prozessors ändert.
Als weiterer Vorteil ist schließlich anzusehen, daß eine auto­ nome Änderung eines unter einer anderen Umgebung ausgeführten Programmes und eine Anpassung an die Umgebung eines Prozessors in Abhängigkeit von der erforderlichen Kapazität und der Lei­ stungsfähigkeit des Programmes erfolgen kann.
Die Unteransprüche haben vorteilhafte Weiterbildungen des Erfin­ dungsgedankens zum Inhalt.
Das erfindungsgemäße Verfahren zur Ausführung eines Programmes unter verschiedenen Umgebungen in einem Mehrprozessorsystem mit einer Mehrzahl von Prozessoren, die untereinander über ein Netz­ werk verbunden sind, weist die folgenden Schritte auf:
  • - Übertragung des Programmes von einem ersten Prozessor zu einem zweiten Prozessor, die beide zu dem Mehrprozessorsystem gehören,
  • - autonome Überprüfung durch den zweiten Prozessor, ob eine in dem Programm gesetzte, anzuwendende Umgebung mit einer tatsächlich vorhandenen Umgebung zusammenpaßt,
  • - autonome Änderung des Programmes durch den zweiten Prozessor in Abhängigkeit von dem Ergebnis der Überprüfung, und
  • - Ausführung des geänderten Programmes durch den zweiten Pro­ zessor.
Erfindungsgemäß wird also ein Verfahren zur autonomen Pro­ grammänderung angegeben, bei dem jeder Prozessor so ausgelegt ist, daß er das Programm an seine Umgebung anpassen kann. Jeder Prozessor kann somit auf eine Änderung seiner Umgebung aufgrund von Fehlern seiner Anschlüsse oder der zur Programmausführung erforderlichen, angeschlossenen Systeme reagieren.
Weitere Einzelheiten, Merkmale und Vorteile der Erfindung erge­ ben sich aus der nachfolgenden Beschreibung von Ausführungsbei­ spielen anhand der Zeichnungen. Es zeigt:
Fig. 1 das Blockschaltbild des Aufbaus eines in einem Mehrcom­ putersystem verwendeten Computers, bei dem die Erfin­ dung angewandt werden kann,
Fig. 2 das Blockschaltbild des allgemeinen Aufbaus eines Mehr­ computersystems, in dem die Erfindung angewandt werden kann,
Fig. 3 das Blockschaltbild zur Verdeutlichung des Ablaufes, wenn ein Prozessor ein von einem anderen Prozessor er­ haltenes Programm ausführt,
Fig. 4 die Darstellung eines Programmformates,
Fig. 5 die Darstellung einer Organisationstabelle für eine Um­ gebung,
Fig. 6 die Darstellung einer E/A-Ferntabelle,
Fig. 7 die Darstellung eines Ablaufes zur Erzeugung der E/A- Ferntabelle,
Fig. 8 das Flußdiagramm zur Verdeutlichung eines Ablaufes bei Konvertierung einer ursprünglichen E/A-Tabelle in eine E/A-Ferntabelle,
Fig. 9 das Flußdiagramm zur Verdeutlichung eines Ablaufes bei Verwendung einer alternativen inneren Organisationsta­ belle,
Fig. 10 eine alternative innere Organisationstabelle,
Fig. 11 eine Tabelle, der zu verwendenden E/A-Reihenfolge,
Fig. 12 das Flußdiagramm zur Verdeutlichung des Ablaufes bei Verwendung einer alternativen Ferntabelle,
Fig. 13 eine alternative Organisations-Ferntabelle,
Fig. 14 die Darstellung eines Ablaufes bei Erzeugung einer al­ ternativen Organisations-Ferntabelle,
Fig. 15 die Darstellung eines Formates von Programminformatio­ nen, und
Fig. 16 ein Flußdiagramm zur Verdeutlichung des Ablaufes bei Kompilierung eines Programmes.
Gemäß des in Fig. 2 gezeigten Aufbaus eines erfindungsgemäßen Mehrcomputersystems sind Computer 10, 20,...n0 miteinander über einen Übertragungsweg 1 verbunden, um Daten und Programme zu übertragen. Jeder Computer enthält einen Prozessor und einen Speicher zur Speicherung von Daten und Programmen und ist mit einem Terminal 11, 21,...n1 verbunden.
Der typische Aufbau eines Computers 10 ist in Fig. 1 gezeigt. Ein Prozessor (CPU) 100 ist über ein Interface 101 mit dem Über­ tragungsweg 1 und über ein Interface 102 mit dem Terminal 11 verbunden. Der Prozessor 100 ist außerdem mit einem Eingangspuf­ fer 103, einem Ausgangspuffer 104, einem Programmspeicher 105, einem Datenspeicher 106, einer Inhalts-Codetabelle 107, einer Speicherorganisationstabelle 108 und einer Umgebungsorganisati­ onstabelle 109 verbunden. Ein von dem Computer ausgeführtes Pro­ gramm wird in geeigneter Weise vorher durch einen Benutzer über den Terminal 11 eingegeben oder von einem anderen Computer über­ tragen.
Fig. 3 zeigt ein Flußdiagramm zur Verdeutlichung eines Ablaufes zur Ausführung des Programms, welches durch einen anderen Pro­ zessor durch die CPU 100 ausgeführt wird. Es soll angenommen werden, daß das Programm mit dem in Fig. 4 gezeigten Format aus­ geführt wird. Das Programm enthält einen Eingangsbereich (rcv Netzwerk msg), einen Verarbeitungsbereich und einen Ausgabebe­ reich (snd Netzwerk msg). Zur Ausführung des Programmes wird zu­ nächst in der CPU 100 eine in Fig. 5 gezeigte Umgebungs-Organi­ sationstabelle gesetzt. In dieser Tabelle werden E/A-Bereiche wie in Fig. 5 gezeigt gesetzt, wenn eine Eingangsumgebung mit z. B. einer Tastatur, einer Datei, einer PI/O und einem Netzwerk und eine Ausgangsumgebung mit z. B. einem Monitor (CRT), einem Drucker, einer Datei, einem PI/O und einem Netzwerk vorhanden ist.
Das in Fig. 3 gezeigte Flußdiagramm soll nun im Detail beschrie­ ben werden. Wenn die CPU 100 mit dem Schritt 201 ein Programm erhält, welches für eine andere Umgebung als der der CPU 100 entwickelt worden ist, Überprüft die CPU 100 zuerst die ur­ sprünglichen E/A-Bereiche des Programms. Im Schritt 202 über­ prüft die CPU 100 die E/A-Bereiche seiner Umgebung durch Bezug auf die in Fig. 5 gezeigte Umgebungs-Organisationstabelle. Mit dem Schritt 203 wird die Übereinstimmung zwischen den ursprüng­ lichen E/A-Bereichen und den E/A-Bereichen unter der CPU-Umge­ bung verglichen.
In Fig. 5 ist ein Eingabebereich (rcv Tastatur msg) in einer Eingangsumgebung der Umgebungs-Organisationstabelle und ein Aus­ gangsbereich (snd CRT msg) in einer Ausgabeumgebung der Tabelle gezeigt, während der Eingangsbereich des empfangenen Programms ein rcv Tastenfeld msg und der Ausgabebereich ein snd CRT msg aufweist, so daß unter dieser Bedingung eine Übereinstimmung ge­ geben ist. Im Schritt 204 wird durch die CPU 100, durch die die Übereinstimmung zwischen dem ursprünglichen E/A-Bereich und dem übertragenen E/A-Bereich unter der entsprechenden Bedingung im Schritt 203 bestätigt worden ist, die Verwendung des ursprüngli­ chen E/A-Bereiches bewirkt. Im Schritt 205 startet die CPU 100 das Laden und Ausführen des Programmes mit den ursprünglichen E/A-Bereichen.
Im folgenden soll nun der Fall erläutert werden, in dem unter der augenblicklichen Bedingung die Übereinstimmung im Schritt 203 der Fig. 3 nicht erzielt werden kann.
Fig. 6 zeigt ein Beispiel einer von der CPU 100 erzeugten E/A- Ferntabelle, wenn keine Übereinstimmung zwischen der Umgebung der CPU 100 und der der ursprünglichen E/A-Programmbereiche be­ steht. Bei dieser Darstellung bezeichnen die Buchstaben r und s den Eingabebereich (rcv) bzw. den Ausgabebereich (snd).
Fig. 7 zeigt den Ablauf bei der Erzeugung der in Fig. 6 gezeig­ ten E/A-Ferntabelle. Es sei vorausgesetzt, daß vier CPUs (CPU 1 bis CPU 4) miteinander über ein Netzwerk verbunden sind. Die CPU 4 hat keine E/A-Einheit, so daß es zur Ausführung eines Program­ mes durch die CPU 4 erforderlich ist, die E/A-Einheiten anderer CPUs (CPU 1 bis CPU 3) zu verwenden. In diesem Fall sendet die CPU 4 eine E/A-Befehlssequenz 901 mit einem Inhaltscode 900 des auszuführenden Programmes auf das Netzwerk. Jede CPU (CPU 1 bis CPU 3) hängt an die E/A-Befehlssequenz 901 eine sich auf die in­ neren E/A-Einheiten beziehende Meldung an. Wenn die E/A-Befehls­ sequenz 901 durch das Netzwerk zirkuliert, kann die CPU 4 auf die sich auf die E/A-Einheiten jeder CPU (CPU 1 bis CPU 3) be­ ziehenden Meldungen zugreifen. Die CPU 4 erhält aus den Meldun­ gen 902 der E/A-Befehlssequenz Informationen darüber, daß die CPU 1 mit einer Datei, die CPU 2 mit einem Monitor (CRT) und einer Tastatur und CPU 3 mit einem Drucker (L/P) verbunden ist. Die CPU 4 erzeugt auf der Basis der Meldungen 902 intern die in Fig. 6 gezeigte E/A-Ferntabelle. Folglich verwaltet die E/A- Ferntabelle gemäß Fig. 6, die durch die oben beschriebene Opera­ tionen erzeugt worden ist, die Informationen der mit jeder CPU verbundenen E/A-Einheiten.
Fig. 8 zeigt ein Flußdiagramm zur Verdeutlichung des Ablaufes, wenn die CPU 100 ein Programm ausführt, in dem die ursprüngli­ chen E/A-Bereiche durch die E/A-Fernbereiche ersetzt worden sind. Wenn von der CPU 100 bei Ausführung eines Programmes er­ faßt wird, daß die momentane Umgebung nicht mit den ursprüngli­ chen E/A-Bereichen des Programmes zusammenpaßt, überträgt die CPU 100 in einem Schritt 301 eine E/A-Befehlssequenz auf das Netzwerk 1, um Meldungen bezüglich der E/A-Einheiten anderer CPUs zu erhalten. Anschließend erzeugt die CPU 100 eine E/A- Ferntabelle des gleichen Typs, wie er in Fig. 6 gezeigt ist. In einem Schritt 302 wird abgefragt, ob die den ursprünglichen E/A- Bereichen entsprechenden E/A-Einheiten in der E/A-Ferntabelle existieren. Wenn in einem Schritt 302 erfaßt wird, daß die ur­ sprünglichen E/A-Programmbereiche für die E/A-Ferneinheiten ver­ fügbar sind, tauscht die CPU die ursprünglichen E/A-Programm­ teile mit den E/A-Fernteilen in einem Schritt 303 aus, die den E/A-Ferneinheiten entsprechen. Zu diesem Zeitpunkt werden die ursprünglichen Eingabe-Programmteile (rcv Netzwerk msg) und die Ausgabeteile (snd Netzwerk msg) in E/A-Fernteile für eine CRT (snd Fern-CRT msg) einer anderen CPU und eine Tastatur (rec Fern-Tastatur msg) einer anderen CPU konvertiert. Als nächstes wird in einem Schritt 304 das Programm, in dem die ursprüngli­ chen E/A-Teile in die E/A-Fernteile konvertiert werden, kompi­ liert. Wenn aufgrund der Konvertierung eines E/A-Teiles ein Übersetzungsfehler auftritt, müssen die E/A-Fernteile für das auszuführende Programm erneut bestimmt werden. Wenn in einem solchen Fall ein Übersetzungsfehler auftritt, kehrt der Ablauf zum Schritt 302 zurück, um die E/A-Fernbereiche erneut zu be­ stimmen. Das Programm wird dann in dem Schritt 304 erneut kompi­ liert. Wenn kein Übersetzungsfehler auftritt, folgt Schritt 305, in dem das kompilierte Programm geladen und ausgeführt wird.
Wenn die ursprünglichen E/A-Programmteile nicht mit der momenta­ nen Umgebung der CPU, durch die das Programm ausgeführt werden soll, zusammenpassen, erzeugt die CPU, wie oben beschrieben, die E/A-Ferntabelle aus den sich auf die anderen E/A-Einheiten be­ ziehenden Informationen, die durch Übertragung der E/A-Befehls­ sequenz 901 mit dem Inhaltscode 900 der Programme anderer CPUs erhalten wurden. Auf der Grundlage dieser E/A-Ferntabelle werden die ursprünglichen E/A-Teile in die E/A-Fernteile konvertiert, so daß das Programm ausgeführt werden kann.
Im folgenden soll nun der Fall erläutert werden, in dem die den ursprünglichen E/A-Teilen entsprechenden E/A-Einheiten nicht in der E/A-Ferntabelle gefunden werden können. In diesem Fall über­ prüft die CPU 100, ob interne alternative E/A-Einheiten vorhan­ den sind oder nicht. Fig. 9 zeigt ein Flußdiagramm des Ablaufes zur Erfassung einer internen Alternative.
Wenn die CPU 100 in einem Schritt 302 gemäß Fig. 8 das Nichtvor­ handensein von E/A-Einheiten entsprechend ursprünglichen E/A- Programmteilen in seiner E/A-Ferntabelle erfaßt, wird zur Ab­ frage, ob interne alternative E/A-Einheiten existieren in einem Schritt 401 gemäß Fig. 9 eine interne alternative Organisations­ tabelle erzeugt. In dem Fall, in dem eine Tastatur, eine Datei, eine PI/O und ein Netzwerk als Eingabeeinheiten in der internen alternativen Organisationstabelle registriert sind und eine CRT, ein Drucker, eine PI/O und ein Netzwerk als Ausgabeeinheiten re­ gistriert sind, können die E/A-Teile gesetzt werden. Wenn anhand der internen alternativen Organisationstabelle in einem Schritt 402 festgestellt wird, daß interne alternative E/A-Einheiten existieren, führt die CPU den Schritt 404 aus. In dem Fall, in dem z. B. der ursprüngliche Eingabeteil ein Tastaturprogramm ist (rev Tastatur msg) und der Ausgabeteil ein Monitor (snd CRT msg) anspricht, werden eine Datei (rcv Datei msg) bzw. ein Drucker (snd Drucker msg) als Alternativen für die ursprünglichen Ein­ gabe- und Ausgabebereiche verwendet. Wenn eine Mehrzahl von E/A- Alternativen besteht, wird, wie in Fig. 11 gezeigt, in einem Schritt 403 eine Tabelle für die Reihenfolge, in der diese zu verwenden sind, erzeugt.
Wenn in der CPU-Eingabe Alternativen, wie z. B. Tastatur, Datei, PI/O und ein Netzwerk vorhanden sind, wird die Reihenfolge ent­ sprechend der Alternative für den ursprünglichen Eingabeteil be­ stimmt. Stattdessen kann, wie in Schritt 405 gezeigt, eine ver­ fügbare Alternative durch Abfrage eines Benutzers bezüglich einer zu verwendenden Alternative bestimmt werden. In diesem Fall kann ein Standardwert bestimmt werden.
Im Schritt 406 wird das Programm, in dem die ursprünglichen E/A- Teile durch die bestimmten Alternativen ersetzt worden sind, übersetzt. Wenn ein Übersetzungsfehler auftritt, müssen zur Aus­ führung des Programmes neue Alternativen bestimmt werden. In diesem Fall kehrt der Ablauf dazu zu dem Schritt 402 zurück. Wenn nach der Übersetzung im Schritt 406 kein Übersetzungsfehler aufgetreten ist, wird das Programm in einem Schritt 407 geladen und gestartet. Wie oben beschrieben wurde, führt in dem Falle, in dem die ursprünglichen E/A-Teile des Programmes nicht mit der Umgebung der CPU zusammenpassen, die CPU das Programm durch Kon­ vertieren der ursprünglichen E/A-Programmteile in solche für ihre internen alternativen E/A-Einheiten aus.
Im folgenden sollen nun für den Fall, in dem keine als Alterna­ tive der ursprünglichen E/A-Programmbereiche dienenden E/A-Ein­ heiten in einer Umgebung der CPU 100 vorhanden sind, Erläuterun­ gen bezüglich entfernter Alternativen gemacht werden.
Fig. 12 zeigt das Flußdiagramm des Ablaufes, mit dem entfernte Alternativen erhalten werden. Unter der Annahme, daß in dem Schritt 402 in Fig. 9 keine E/A-Einheiten entsprechend den ur­ sprünglichen E/A-Programmteilen in der internen alternativen Ta­ belle vorhanden sind, erzeugt die CPU 100, wie in Fig. 13 ge­ zeigt, eine entfernte alternative Organisationstabelle, um in einem Schritt 501 in Fig. 12 abzufragen, ob die E/A-Einheiten in der entfernten alternativen Organisationstabelle verfügbar sind.
In Fig. 14 ist die Darstellung des Ablaufes gezeigt, mit dem eine in Fig. 13 gezeigte, entfernte alternative Organisationsta­ belle erzeugt wird. Es sei vorausgesetzt, daß in diesem Beispiel vier CPUs (CPU 1 bis CPU 4) miteinander über ein Netzwerk ver­ bunden sind. Die CPU 4 hat, wie in Fig. 13 gezeigt, keine E/A- Einheit. In dem Fall der Ausführung eines Programmes mit einem Teil (rcv Tastatur msg) als Eingabeteil und einem Teil (snd CRT msg) als Ausgabeteil ist es notwendig, die E/A-Einheiten anderer CPUs (CPU 1 bis CPU 3) zu verwenden. In diesem Fall sendet die CPU 4 zum Auffinden einer Ausgabeeinheit, die einem ursprüngli­ chen Ausgabeprogrammteil entspricht, auf das Netzwerk eine E/A- Befehlssequenz 901 mit einem Inhaltscode 900 des auszuführenden Programmes. Jede CPU (CPU 1 bis CPU 3) hängt sequenziell eine auf ihre entfernten Alternativen bezogene Meldung an diese E/A- Befehlssequenz 901 an. Nachdem diese E/A-Sequenz 901 einmal im Netzwerk umgelaufen ist, gelangt sie wieder zur CPU 4. Die CPU 4 erhält aus den an die Sequenz 901 angehängten Meldungen 902 In­ formationen darüber, daß die CPU 1 mit einem Drucker, die CPU 2 mit einer Datei und die CPU 3 mit einer PI/O verbunden ist. Die CPU 4 erzeugt aus diesen Meldungen 902, wie in Fig. 13 gezeigt, die Organisationstabelle für entfernte Alternativen. Diese Orga­ nisationstabelle wird zur Verwaltung der auf die alternativen E/A-Einheiten jeder CPU bezogenen Informationen verwendet.
Wenn in einem Schritt 502 gemäß Fig. 12 eine entfernte Alterna­ tive für die ursprünglichen E/A-Teile des Programmes in der Or­ ganisationstabelle für entfernte Alternativen vorhanden ist, folgt als nächstes Schritt 504, in dem der ursprüngliche Ausga­ beteil (snd CRT msg) des Programmes konvertiert oder ersetzt wird durch eine entfernte alternative Ausgabe (snd Drucker msg). In dem Fall, in dem eine Mehrzahl entfernter Eingabe-Ausgabeal­ ternativen bestehen, kann eine mögliche entfernte Alternative entweder entsprechend einer Tabelle für die zu verwendende Rei­ henfolge oder entsprechend der Anweisung durch einen Benutzer bestimmt werden, wobei die Tabelle in einem Schritt 503 erzeugt wird und die gleiche Form wie in Fig. 11 gezeigt aufweist. Wenn im letztgenannten Fall keine Anweisung erfolgt, wird eine Stan­ dardalternative gesetzt. Wenn auf diese Weise eine Alternative bestimmt worden ist, wird das konvertierte Programm in einem Schritt 505 übersetzt. In dem Fall, in dem während der Überset­ zung ein Fehler auftritt, ist zur Ausführung des Programmes eine erneute Bestimmung einer entfernten Alternative erforderlich. In diesem Fall kehrt dazu der Ablauf zu dem Schritt 502 zurück. Im Schritt 505 wird dann die Übersetzung erneut vorgenommen. Wenn kein Übersetzungsfehler auftritt, wird in Schritt 506 das Pro­ gramm geladen und ausgeführt. In der oben beschriebenen Weise wird der ursprüngliche E/A-Teil eines Programmes in einen ent­ fernten, alternativen E/A-Teil durch eine CPU konvertiert, die nicht das Programm ausgeführt hat. Auch in dem Fall, in dem keine den ursprünglichen E/A-Teilen des Programmes entsprechende Alternative in einer der CPUs in dem Netzwerk vorhanden ist, kann das Programm durch Konvertieren des ursprünglichen Eingabe­ teiles in ein Teil (rcv Netzwerk msg) und des ursprünglichen Ausgabeteiles in ein Teil (snd Netzwerk msg) ausgeführt werden, d. h. unter Verwendung des Netzwerkes.
Übersetzung und Laden eines Programmes kann unter Berücksichti­ gung folgender Tatsachen durchgeführt werden:
In Fig. 15 ist ein Programmformat gezeigt. Das Programm 1000 enthält Inhaltscodes 1001, ein Anwenderprogramm 1002, eine Pro­ grammkapazität 1003 (in Bytes), die erforderliche Leistungsfä­ higkeit 1004 (MIPS-Wert) und einen Programmhauptteil 1006. Die Kapazität 1003 und die Leistungsfähigkeit 1004 werden als Pro­ gramminformation 1005 bezeichnet.
Fig. 16 zeigt ein Flußdiagramm zur Verdeutlichung des Ablaufes der Auswertung bei Übersetzung des Programmes 1000. Gemäß Fig. 15 weist das Programm 1000 Daten als Programminformation 1005 auf, die die dafür erforderliche Leistungsfähigkeit enthalten. Der MIPS-Wert wird z. B. zur Charakterisierung der Leistungsfä­ higkeit 1004 verwendet. In Schritt 601 wird die erforderliche Leistungsfähigkeit (MIPS-Wert) des Programmes 1000 geprüft. Es sei vorausgesetzt, daß die CPU den Wert der Leistungsfähigkeit in einer Umgebungs-Parametertabelle enthält. In Schritt 602 wird dann der Wert der Leistungsfähigkeit (welcher hier als β be­ zeichnet werden soll) in dieser Umgebungs-Parametertabelle abge­ fragt. In Schritt 603 wird der Wert β der CPU mit der erforder­ lichen Leistungsfähigkeit (MIPS-Wert) 1004 verglichen. Wenn die erforderliche Leistungsfähigkeit (MIPS) des Programmes kleiner ist als der Wert β, wird das Programm so wie es ist übersetzt. Im anderen Fall wird in Schritt 604 eine Änderung des Programmes 1000 durchgeführt. In diesem Fall wird die Anzahl wiederholter Berechnungen in dem Programm 1000 entsprechend (1) einem ver­ hältnis des MIPS-Wertes gemäß Fig. 15 oder (2) um ein vorbe­ stimmtes Verhältnis reduziert, wodurch die erforderliche Lei­ stungsfähigkeit 1004 des Programmes 1000 an die Leistungsfähig­ keit der Umgebung der CPU angepaßt wird.
Im folgenden soll nun das Laden des Programmes mit Bezug auf Fig. 15 beschrieben werden. Das Programm 1000 enthält gemäß Fig. 15 Daten, die als Programminformation 1005 die Programmkapazität (Bytes) enthalten. Wenn diese Kapazität kleiner ist als eine be­ stimmte Kapazität der Umgebungs-Parametertabelle der CPU, bleibt das Programm in einem Hauptspeicher (core memory). Wenn anderer­ seits die Programmkapazität 1003 größer ist als die bestimmte Kapazität, wird das Programm auf einer Diskette gespeichert und nicht in dem Hauptspeicher erhalten. Insbesondere wird in dem ersten Fall das Programm in einem regulären Bereich, im zweiten Fall in einem irregulären Bereich gespeichert.
Wie oben beschrieben wurde, übersetzt und lädt die CPU also autonom das unter einer anderen Umgebung ausgeführte und von einer anderen CPU erhaltene Programm entsprechend der erforder­ lichen Kapazität oder Leistungsfähigkeit, die an ihre Umgebung angepaßt werden kann.
Wesentlich bei dieser Ausführungsform ist, daß (1) jeder Prozes­ sor ein in dem Prozessor gespeichertes Programm überprüft und autonom das Programm entsprechend seiner Umgebung ändert bzw. an diese Umgebung anpaßt, (2) jeder Prozessor autonom ein Programm ändert bzw. an seine Umgebung anpaßt, wenn ein Fehler in einem Prozessorsystem auftaucht, (3) jeder Prozessor ein Programm än­ dert bzw. an eine erweiterte Umgebung eines Prozessorsystems an­ paßt, und (4) jeder Prozessor ein Programm in seinem eigenen Sy­ stem so ändern kann, daß es entsprechend seiner besonderen Umge­ bung ausführbar ist. Weiterhin kann jeder Prozessor auf über­ mäßige oder geringe Belastung reagieren.
Jede CPU ändert also ein in ihr vorhandenes Programm in der Weise, daß die Eingabe/Ausgabeteile der Umgebung der CPU ent­ sprechen. Ein Programm kann folglich ohne Rücksicht auf die Um­ gebung jeder CPU ausgeführt werden. Weiterhin kann jede CPU ein in ihr gespeichertes Programm so ändern, daß es an Fehler oder Erweiterungen der Umgebung angepaßt ist. Schließlich kann ein von einer anderen CPU erhaltenes Programm durch jede CPU autonom entsprechend seiner Umgebung übersetzt und geladen werden, d. h. entsprechend der erforderlichen Kapazität oder der erforderli­ chen Leistungsfähigkeit.

Claims (12)

1. Verfahren zur Ausführung bzw. Änderung eines Programmes un­ ter verschiedenen Umgebungen in einem Mehrprozessorsystem mit einer Mehrzahl von Prozessoren, die miteinander über ein Netzwerk verbunden sind, gekennzeichnet durch die fol­ genden Schritte:
  • - autonome Überprüfung durch einen ersten Prozessor, ob eine in dem Programm gesetzte, anzuwendende Umgebung mit einer tatsächlich vorhandenen Umgebung übereinstimmt,
  • - autonome Änderung des Programmes durch den ersten Prozes­ sor entsprechend dem Ergebnis der Überprüfung, und
  • - Ausführung des geänderten Programmes durch den ersten Prozessor.
2. Verfahren nach Anspruch 1, gekennzeichnet durch den Verfah­ rensschritt der Übertragung des Programmes von einem zwei­ ten Prozessor zu dem ersten Prozessor.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß bei dem Verfahrensschritt der Überprüfung weiterhin autonom nach einer Änderung der Umgebung des ersten Prozessors ab­ gefragt wird, ob die gesetzte, anzuwendende Umgebung mit der geänderten Umgebung des ersten Prozessors überein­ stimmt.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekenn­ zeichnet, daß bei dem Verfahrensschritt der Programmände­ rung weiterhin das Programm durch den ersten Prozessor ge­ ändert wird, um an die Umgebung eines der anderen Prozesso­ ren als tatsächlich anzuwendende Umgebung angepaßt zu wer­ den, wenn festgestellt wird, daß die gesetzte anzuwendende Umgebung sich von einer Umgebung des ersten Prozessors un­ terscheidet.
5. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekenn­ zeichnet, daß bei dem Verfahrensschritt der Programmände­ rung eine Änderung des Programmes durchgeführt wird, um eine Umgebung des ersten Prozessors als tatsächlich anzu­ wendende Umgebung zu verwenden, wenn festgestellt wird, daß die gesetzte anzuwendende Umgebung in dem verteilten Pro­ zessorsystem nicht vorhanden ist.
6. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekenn­ zeichnet, daß bei dem Verfahrensschritt der Programmände­ rung eine Änderung des Programmes erfolgt, um eine Umgebung eines der anderen Prozessoren als tatsächlich anzuwendende Umgebung zu verwenden, wenn festgestellt wird, daß die ge­ setzte anzuwendende Umgebung in dem verteilten Prozessorsy­ stem nicht vorhanden ist und eine der gesetzten, auszufüh­ renden Umgebung entsprechende Umgebung bei dem ersten Pro­ zessor nicht vorhanden ist.
7. Verteiltes Datenverarbeitungssystem mit einer Mehrzahl von Prozessoren, die miteinander über ein Netzwerk (1) verbun­ den sind, dadurch gekennzeichnet daß ein besonderer Prozes­ sor (100) dieser Prozessoren autonom überprüft, ob eine in dem Programm gesetzte, anzuwendende Umgebung mit einer tatsächlich anzuwendenden Umgebung zusammenpaßt, weiterhin das Programm entsprechend dem Ergebnis der Überprüfung än­ dert und das geänderte Programm ausführt.
8. Verteiltes Datenverarbeitungssystem nach Anspruch 7, da­ durch gekennzeichnet, daß der besondere Prozessor (100) autonom überprüft, ob die gesetzte auszuführende Umgebung mit der tatsächlich auszuführenden Umgebung übereinstimmt, wenn die Umgebung des besonderen Prozessors geändert wird.
9. Verteiltes Datenverarbeitungssystem nach Anspruch 7, da­ durch gekennzeichnet, daß ein anderer Prozessor das Pro­ gramm zu dem besonderen Prozessor (100) überträgt und die­ ser Prozessor das Programm empfängt.
10. Verteiltes Datenverarbeitungssystem nach einem der Ansprü­ che 7 bis 9, dadurch gekennzeichnet, daß der besondere Pro­ zessor (100) das Programm so ändert, daß es an eine Umge­ bung eines der anderen Prozessoren als tatsächlich anzuwen­ dende Umgebung angepaßt ist, wenn festgestellt wird, daß sich die gesetzte anzuwendende Umgebung von der Umgebung des besonderen Prozessors unterscheidet.
11. Verteiltes Datenverarbeitungssystem nach einem der Ansprü­ che 7 bis 9, dadurch gekennzeichnet, daß der besondere Pro­ zessor (100) das Programm so ändert, daß eine Umgebung des besonderen Prozessors als tatsächlich anzuwendende Umgebung verwendet wird, wenn festgestellt wird, daß die gesetzte anzuwendende Umgebung in dem verteilten Datenverarbeitungs­ system nicht vorhanden ist.
12. Verteiltes Datenverarbeitungssystem nach einem der Ansprü­ che 7 bis 9, dadurch gekennzeichnet, daß der besondere Pro­ zessor (100) das Programm so ändert, daß eine Umgebung eines anderen Prozessors als tatsächlich anzuwendende Umge­ bung verwendet wird, wenn festgestellt wird, daß die ge­ setzte anzuwendende Umgebung in dem verteilten Datenverar­ beitungssystem nicht vorhanden ist und eine der gesetzten, anzuwendenden Umgebung entsprechende Umgebung bei dem be­ sonderen Prozessor nicht vorhanden ist.
DE4103411A 1990-02-05 1991-02-05 Verfahren und vorrichtung zur programmaenderung in verteilten datenverarbeitungssystemen Ceased DE4103411A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2024546A JPH03229352A (ja) 1990-02-05 1990-02-05 プログラム変更方法

Publications (1)

Publication Number Publication Date
DE4103411A1 true DE4103411A1 (de) 1991-08-08

Family

ID=12141153

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4103411A Ceased DE4103411A1 (de) 1990-02-05 1991-02-05 Verfahren und vorrichtung zur programmaenderung in verteilten datenverarbeitungssystemen

Country Status (3)

Country Link
US (1) US5450567A (de)
JP (1) JPH03229352A (de)
DE (1) DE4103411A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4429969A1 (de) * 1994-08-24 1996-02-29 Sel Alcatel Ag Verfahren für einen Programmpaketeaustausch in einem Mehrrechnersystem und Rechner dafür
DE19609646A1 (de) * 1995-03-16 1996-09-19 Hitachi Ltd Verfahren und System zur Programmkorrektur

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548745A (en) * 1993-01-19 1996-08-20 Canon Kabushiki Kaisha Method and apparatus for designating context in a windowing environment
DE19527808C2 (de) * 1995-07-28 1999-04-01 Siemens Ag Verfahren zum Modifizieren der Softwareprozeduren eines Kommunikationssystems
US6345311B1 (en) * 1995-12-27 2002-02-05 International Business Machines Corporation Method and system of dynamically moving objects between heterogeneous execution environments
US5774728A (en) * 1995-12-27 1998-06-30 International Business Machines Corporation Method and system for compiling sections of a computer program for multiple execution environments
US6263442B1 (en) * 1996-05-30 2001-07-17 Sun Microsystems, Inc. System and method for securing a program's execution in a network environment
FR2765363B1 (fr) * 1997-06-30 2000-02-18 Actikey Procede et systeme de controle de l'utilisation d'un logiciel
US8312446B2 (en) * 2002-12-17 2012-11-13 International Business Machines Corporation Dependency management when upgrading application components
US20100153693A1 (en) * 2008-12-17 2010-06-17 Microsoft Corporation Code execution with automated domain switching
EP2829970B1 (de) * 2013-07-26 2017-02-01 Fujitsu Limited Verfahren und Vorrichtung zur Portierung des Quellkodes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780821A (en) * 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4855905A (en) * 1987-04-29 1989-08-08 International Business Machines Corporation Multiprotocol I/O communications controller unit including emulated I/O controllers and tables translation of common commands and device addresses
US4858114A (en) * 1985-07-22 1989-08-15 International Business Machines Corporation Emulation system for automatically modifying I/O translation tables in programs designed to run on different types of computer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109484A (en) * 1986-04-09 1992-04-28 International Business Machines Corporation Self configuring terminal which polls loop network and generates list of connected devices for use in selectively downloading control programs
US5067072A (en) * 1987-11-06 1991-11-19 Visystems, Inc. Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies
US4970639A (en) * 1988-05-20 1990-11-13 International Business Machines Corporation Virtual machine architecture independent program loader
US4979106A (en) * 1988-08-29 1990-12-18 Amdahl Corporation Customization of a system control program in response to initialization of a computer system
US5097533A (en) * 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
US5261095A (en) * 1989-10-11 1993-11-09 Texas Instruments Incorporated Partitioning software in a multiprocessor system
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4858114A (en) * 1985-07-22 1989-08-15 International Business Machines Corporation Emulation system for automatically modifying I/O translation tables in programs designed to run on different types of computer
US4780821A (en) * 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4855905A (en) * 1987-04-29 1989-08-08 International Business Machines Corporation Multiprotocol I/O communications controller unit including emulated I/O controllers and tables translation of common commands and device addresses

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4429969A1 (de) * 1994-08-24 1996-02-29 Sel Alcatel Ag Verfahren für einen Programmpaketeaustausch in einem Mehrrechnersystem und Rechner dafür
US5852735A (en) * 1994-08-24 1998-12-22 Alcatel Sel Aktiengesellschaft Method and apparatus for exchanging a program over a network computer system that permits reactivation of the original program if an error occurs
DE19609646A1 (de) * 1995-03-16 1996-09-19 Hitachi Ltd Verfahren und System zur Programmkorrektur

Also Published As

Publication number Publication date
JPH03229352A (ja) 1991-10-11
US5450567A (en) 1995-09-12

Similar Documents

Publication Publication Date Title
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE69938218T2 (de) Vorrichtung und Verfahren zum Laden eines Java Anwendungsprogramms
DE69924857T2 (de) Programm-kode-umwandlung
DE60013658T2 (de) Fehlertolerante virtuelle Javamaschine
DE2948285C2 (de) Adressensteuereinrichtung für einen Datenprozessor
DE69918334T2 (de) Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen
DE3503119A1 (de) Verfahren zum automatischen erzeugen eines quellenprogramms
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
WO1994014117A1 (de) Verfahren zum testen mindestens einer klasse eines objektorientierten programmes auf einem rechner
DE4103411A1 (de) Verfahren und vorrichtung zur programmaenderung in verteilten datenverarbeitungssystemen
WO1998025204A1 (de) Verfahren zum testen von systemkomponenten eines objektorientierten programms
DE3201768A1 (de) Job-verarbeitungsverfahren
EP0685086A1 (de) Einrichtung zur automatischen erzeugung einer wissensbasis für ein diagnose-expertensystem.
DE3209046C2 (de) Terminal-Verarbeitungssystem
DE2423260A1 (de) Verfahren und schaltungsanordnung zur pruefung von daten verarbeitenden anlagen, insbesondere fernsprechvermittlungsanlagen mit ueber ein busleitungssystem an eine steuerzentrale angeschlossenen peripheren einrichtungen
DE4426001A1 (de) Verfahren zur Überlastvermeidung bei einem Systemanlauf eines Mehrrechnersystems und Mehrrechnersystem dafür
DE4429969A1 (de) Verfahren für einen Programmpaketeaustausch in einem Mehrrechnersystem und Rechner dafür
DE19831720A1 (de) Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerks
DE4104568A1 (de) Verfahren und vorrichtung zur programmverarbeitung
EP1005216B1 (de) Verfahren und Vorrichtung zur Validierung von Konfigurationsdaten für Telekommunikationssysteme
DE102009041098A1 (de) Verfahren zur Kennzeichnung eines in einem Computerspeichersystem enthaltenden Computerprogrammabschnitts
DE3426902C2 (de) Schaltungsanordnung zum Konfigurieren von Peripherieeinheiten in einer Datenverarbeitungsanlage
DE2842603A1 (de) Schnittstelle zwischen einem wartungsprozessor und einer mehrzahl einzeln zu pruefender funktionseinheiten eines datenverarbeitenden systems

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8131 Rejection