DE4103411A1 - Verfahren und vorrichtung zur programmaenderung in verteilten datenverarbeitungssystemen - Google Patents
Verfahren und vorrichtung zur programmaenderung in verteilten datenverarbeitungssystemenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
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.
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.
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)
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)
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 |
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 |
US6345311B1 (en) * | 1995-12-27 | 2002-02-05 | International Business Machines Corporation | Method and system of dynamically moving objects between heterogeneous 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)
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)
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 |
-
1990
- 1990-02-05 JP JP2024546A patent/JPH03229352A/ja active Pending
-
1991
- 1991-01-24 US US07/645,099 patent/US5450567A/en not_active Expired - Fee Related
- 1991-02-05 DE DE4103411A patent/DE4103411A1/de not_active Ceased
Patent Citations (3)
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)
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 |
---|---|
US5450567A (en) | 1995-09-12 |
JPH03229352A (ja) | 1991-10-11 |
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 | |
EP0743595B1 (de) | Kommunikationssystem mit Mitteln zum Austausch von Software | |
DE3424962C2 (de) | ||
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 | |
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 | |
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 | |
DE19534207A1 (de) | Verfahren zur Kodierung oder Dekodierung von Protokolldateneinheiten (PDU) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8131 | Rejection |