DE2150506A1 - Verfahren zur herstellung von querverbindungen zwischen programmen von datenverarbeitungsanlagen waehrend der programmausfuehrung - Google Patents
Verfahren zur herstellung von querverbindungen zwischen programmen von datenverarbeitungsanlagen waehrend der programmausfuehrungInfo
- Publication number
- DE2150506A1 DE2150506A1 DE19712150506 DE2150506A DE2150506A1 DE 2150506 A1 DE2150506 A1 DE 2150506A1 DE 19712150506 DE19712150506 DE 19712150506 DE 2150506 A DE2150506 A DE 2150506A DE 2150506 A1 DE2150506 A1 DE 2150506A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- address
- symbol
- field
- tables
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Exchange Systems With Centralized Control (AREA)
Description
2150505
Böblingen, den 17. August 1971
km-sz
Amtliches Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: Docket GE 971 501
Verfahren zur Herstellung von Querverbindungen zwischen Programmen von Datenverarbeitungsaniagen
während der Programmausführung
Die Erfindung betrifft ein Verfahren zur Herstellung von Querverbindungen
zwischen mehreren gleichzeitig im internen Speicher einer Datenverarbeitungsanlage gespeicherten Programmen während
der Programmausführung, die unter der Regie eines überwachungsprogrammes
erfolgt.
Ein Programm zur Ausführung einer Datenverarbeitungsaufgabe mit
Hilfe einer elektronischen Rechenanlage (Prcblemprogramm) besteht zumeist aus mehreren selbständigen Teilprogrammen, die an verschiedenen
Stellen und/oder zu verschiedenen Zeiten geschrieben wurden. Jedes Teilprogramm, das auch Programmodul genannt wird,
weist Befehle auf, durch die auf Teile anderer Programmodule Bezug genommen wird. Bei diesen Teilen kann es sich um Unterprogramme,
Konstantwerte, Zwischenresultate usw. handeln, die in betreffenden anderen Programmoduln definiert sind und von diesen
benutzt bzw. erzeugt werden. Die Bezugnahme kann über die echten Speicheradressen erfolgen, auf denen die entsprechenden
Teile der anderen Programmodule gespeichert sind. Hierzu ist es aber erforderlich, daß die echten Speicheradressen bereits be-
309820/0325
kannt sind, wenn die Teilprogramme geschrieben werden. Die Querverbindungen
zwischen den einzelnen Teilprograminen werden somit vom Programmierer endgültig festgelegt. Dies ist nur möglich,
wenn die Speicherbelegung mit einer vorbestimmten Anzahl von Teilprogrammen fest vorausgeplant wird. Eine solche Arbeitsweise
schränkt die Flexibilität in der Anwendung der Problemprogramme stark ein.
Die Bezugnahme von Befehlen eines Programmoduls auf Teile eines -anderen Progcammoduls kann ferner über Symbole erfolgen, die
Namen der Programmteile darstellen, zu denen eine Querverbindung
hergestellt werden soll. Dies erleichtert die Programmierung insofern, als der Programmierer sich nicht mit den echten Speicheradressen
der Datenverarbeitungsanlage beschäftigen muß, auf denen die Programmteile später stehen werden. Durch ein Verbindungsprogramm werden die Symbole echten Speicheradressen zugeordnet
und in die einzelnen Teilprogramme eingesetzt. Das Verbindungsprogramm erzeugt ein ladefähiges Problemprogramm, das in einem
externen Speicher der Datenverarbeitungsanlage aufbewahrt wird, bis es für die eigentliche Pragrammausführung in den internen
Speicher der Anlage geladen werden kann (IBM Systems Reference Library GC 2865342 "IBM System /360 Operating System - Introduction",
Oktober 1969, Seiten 77 bis 79). Auf diese Weise wird die Programmierung erheblich erleichert und eine hohe
Flexibilität bei der Anwendung erzielt. Es ist hierbei jedoch notwendig, daß vor der Verfügbarkeit des ladefähigen Problemprogramms
ein separater Ablauf des Verbindungsprograitiiaes erfolgt, durch den die benötigten Querverbindungen zwischen den
zur Zeit der Programmausführung gleichzeitig im internen Speicher der Datenverarbeitungsanlage befindlichen Teilprogrammen
hergestellt werden. Ebenso ist jeweils ein neuer Lauf des Verbindungsprogrammes
notwendig, wenn die Teilprogrammstruktur innerhalb des Problemprogrammes geändert werden soll. Dies erschwert
insbesondere den Aufbau von solchen Problemprogrammen, innerhalb derer sich die Teilprogrammstruktur nicht nach einem
vorgegebenen Plan, sondern in Abhängigkeit vom jeweiligen Bedarf
Docket GE 971 501
309820/0328
ändert (dynamische Programmstruktur). Während des Laufes des Verbindungsprogramms
ist die Datenverarbeitungsanlage für die Ausführung von Problemprogrammen blockiert, weshalb dieser Lauf für
den Benutzer eine Verlustzeit darstellt.
Aufgabe der Erfindung ist es, ein Verfahren anzugeben, das unter Vermeidung der genannten Nachteile eine Herstellung von Querverbindungen
zwischen verschiedenen, zur gleichen Zeit im internen Speicher der Datenverarbeitungsanlage gespeicherten Programmen
.während der Programiuausführung, also ohne vorausgehenden separaten
Lauf eines Verbindungsprogrammes, gestattet. Erfindungsgemäß
wird dies dadurch erreicht, daß in jedem Programm eine erste Tabelle von im Programm vorhandenen, programmextern definierten
Symbolen mit einem zugehörigen, zunächst leeren Feld für die Adresse dieses Symbols gebildet wird, daß in jedem Programm eine
zweite Tabelle von im Programm definierten, programinextern ansprechbaren
EingangsSymbolen und den Adressen dieser Symbole gebildet
wird, daß im tiberwachungsprogramm eine Adressentabelle für die ersten und zweiten Tabellen der Programms erzeiigt wird,
daß beim Aufruf eines externen Symbols während des Ablaufes eines Programms ein Versuch gemacht wird, die Adresse dieses Symbols
aus der ersten Tabelle des gleichen Programms in den betreffenden Befehl zu laden, daß eine Programmunterbrechung erfolgt,
wenn die erste Tabelle für das betreffende Symbol noch keine Adresse enthält, daß aufgrund der Programmunterbrechung
das Überwachungsprogramm wirksam wird und mit dem betreffenden externen Symbol alle im Speicher vorhandenen zweiten Tabellen
nach einem gleichnamigen Eingangssymbol durchsucht, und daß die
Adresse des ermittelten Eingangssymbols in das freie Feld des
gleichnamigen externen Symbols der ersten Tabelle übertragen wird, wonach der Lauf des Programms an der Unterbrechungsstelle
mit einem erneuten Versuch, die Adresse des externen Symbols aus der ersten Tabelle zu laden, fortgesetzt wird.
Weitere vorteilhafte Ausgestaltungen und Weiterbi!düngen dor ErDock
β ι GE 971 1jO1
309820/032S
findung sind aus den Ansprüchen ersichtlich. Nachfolgend ist ein ,
Ausführungsbeispiel der Erfindung an Hand von Zeichnungen erläutert.
Es zeigen:
Fig. 1 ein Blockdiagramm zur Veranschaulichung des bekannten
Verfahrensablaufes, bei dem Querverbin-.düngen
zwischen verschiedenen Programmen mit Hilfe eines separaten Verbindungsprogrammes
hergestellt werden,
Flg. 2 eine Abwandlung des Blockdiagramm.es von Fig. 1,
wie sie sich durch Anwendung des erfindungsgemäßen Verfahrens ergibt,
Fig. 3 ein vereinfachtes Ablaufdiagramm zur Darstellung
des erfindungsgemäßen Verfahrens,
Fign. 4A, B Strukturen der im /ablaufdiagramm von Fig. 3 verwendeten
Verbindungs- und Adressentabellen,
Fign. 5A, B, C den Stand der Verbindungs- und Adressentabellen
von Fign. 4A, B bei der beispielsweisen Herstellung einer Querverbindung von einem Programm Pl
zu einem Programm P2, ·
Fig. 6 ein Ablaufdiagramm zur Bildung der Adressentabelle
ADTAB im Überwachungsprogramm während des Ladens der Programme in den internen Speicher der
Datenverarbeitungsanlage,
Fign. 7A, B detailliertere Ablaufdiagramme für die Herstellung
einer Verbindung zwischen zwei Programmen Pl, P2,
Fign. 8A, B ein Ablaufdiagramm für das Löschen der hergestellten Verbindungen, wenn eines der Programme
Docket GE 971 501 309820/032 6
„ 5 .. Geändert gomäS Eingabe
eingegangen an» ..
aus dem internen Speicher der Datenverarbeitungs anlage entfernt wird,
Fig. 9 ein Ablaufdiagramm für die zum Befehl LEAC ge-.
hörenden Mikroprogrammschritte und
Fig. 10 eine Darstellung des Formats des LEAC-Befehls.
Das Ablaufdiagramm von Fig. 1 zeigt den herkömmlichen Weg der
.Verknüpfung von drei Teilprogrammen i,u einem ladefähigen Arbeitsprogramm. Jedes der Teilprogranime wird in einer geeigneten Programmiersprache
geschrieben und danach in einen Lochkartenstapel 12 übertragen. Das im Lochkartenstapel enthaltene Programm wird
als Quellemnoäul QM bezeichnet. Jeder Quellenmodul QMl bis QM3
wird in einem separaten übersetzungsschritt 13 in einen Objektfitodul
OM übersetzt. Der Objektmodul ist ein arbeitsfähiges Teilprograimii,
das die Öperationsschlüssel und Adressen in der Sprache der Rechenanlage enthält. Der Übersetzungsschritt 13 erfolgt
unter Anwendung geeigneter Übersetzungsprogramme TR-PRGR 1 bis
Die Objektmodule OMl bis 0M3 werden auf einem externen Speicher 14 der Reehehanlage zwischengespeichert. In einem weiteren Arbeitsschritt
15 werden die Objektmodule OMl bis 0M3 gemeinsam unter der Wirkung eines Verbindungsprogramms zu einem ladefähigen
Objektprogramm LOP vereinigt, äe* auf einem weiteren externen
Speicher 16 zwischengespeichert wird. Das Verbindungsprogramm set2t in die befehle der einzelnen Objektmodule, die auf Teile
anderer Objektmodule Bezug nehmen, die relativen Adressen ein, die diesen Teilen iri den anderen Öbjektmödulen zugewiesen sind.
Vom Zwisehenspe'iöiier 16/ der als Bibliötheksspeicher der Rechenanlage
für ladefähige Objektprogramme dient, wird durch einen
Ladeschritt 17 unter der Wirkung eines Ladeprogrammes das betreffende
Objektprogramm LOP in den Häuptspeicher 18 der Rechenanlage
geladen^ Das im Hauptspeicher 18 stehende Programm LOP,
dem durch das Lädeprogtämm die echten Hauptspeicheradressen zugewiesen
würden, Kann nun dutch die Rechenanlage ausgeführt werden.
Docket GE 971 501 3Q982Ö/0 32S
2150508
Das Ablauf diagramm von Fig. 2 weicht-gegenüber dem von Fig. 1 insofern
ab, als der Schritt 15 und der externe Speicher 16 fehlen. Die als Kartenstapel 12 vorliegenden Quellenmodule QMl bis QM3
werden im Schritt 13 durch Übersetzungsprogramme TR-PRGR 1 bis zu Objektmodulen OMl bis 3 übersetzt, welche als Lademodule LMl
bis 3 im externen Speicher 14 der Rechenanlage gespeichert werden. Der Speicher 14 dient als Bibliothek für ladefähige und
arbeitsbereite Teilprogramme. Im Ladeschritt 17 werden durch das Ladeprogramm die Lademodule LMl bis 3 nacheinander in den Hauptspeicher
18 der Rechenanlage geladen. Jeder Lademodul LMl bis erhält dabei seine eigenen Hauptspeicherplätze zugewiesen. Die
in den Hauptspeicher geladenen Teilprogramme LMl bis 3 weisen
untereinander noch keine Querverbindungen auf. Die herzustellenden Querverbindungen sind lediglich symbolisch markiert. In jedem
Teilprogramm sind die Symbole, die auf ein anderes der Teilprogramme Bezug nehmen, mit "EXTRN" bezeichnet. Ebenso sind in
jedem Teilprogramm diejenigen Symbole, auf die von anderen der Teilprogramme Bezug genommen wird, mit "ENTRY" bezeichnet. Die
im Schritt 13 zur Wirkung kommenden übers etzerprograinme legen
. nach den in den Quellenmoduln QM enthaltenen Angaben am Anfang
eines jeden Lademoduls LMl bis 3 eine erste Tabelle aller EXTRN-Symbole und eine zweite Tabelle aller ENTRY-Symbole an. Außerdem
wird beim Laden der Lademodule LMl bis 3 in den Hauptspeicher
eine Adressentabelle im Überwachungsprogramm gebildet für die Adressen aller ENTRY- und EXTRN-Tabellen. Die Rechenanlage
kann nun mit der Programmausführung beginnen, wobei die im Hauptspeicher 18 stehenden Teilprogramme LMl bis 3 gemeinsam das Objektprogramm
bzw. Arbeltsprogramm bilden.
In Fig. 3 sind die wesentlichsten Schritte des erfindungsgemHßen
Verfahrens zur Herstellung der Querverbindungen zwischen den im Hauptspeicher der Rechenanlage stehenden Programmen dargestellt.
Während der Programmübersetzung werden in einem Schritt 21 am
Beginn eines jeden Lademoduls eine erste Tabelle EXTAB und eine zweite Tabelle ENTAB gebildet. Die Struktur dieser Tabellen ist
in Fig ^ 4A angegeben. Die Tabelle EXTAB weist eine Kopfzeile auf
Docket GE §71 501 30β820/032Β
215050a
•m *7 m
mit den Eintragungen A und GEX. Die Eintragung A umfaßt ein Byte und stellt einen Indikator für das Vorhandensein einer Tabelle
EXTAB dar. Wenn A- 1, schließen sich an die Kopfzeile Eintragungen
der Tabelle EXTAB an. Wenn A den Wert O hat, enthält die
Tabelle keine weiteren Eintragungen. Die Eintragung GEX umfaßt drei Bytes und gibt die Zahl der in der Tabelle EXTAB enthaltenen
Elemente (Zeilen) an. Die folgenden Zeilen dieser Tabelle bestehen
aus. je einem Feld NAMEX-und ADREX. Das erstgenannte Feld umfaßt
acht Bytes und enthält den Namen eines im betreffenden Teilprograram
enthaltenen Symbols, das in einem anderen Teilprogramm definiert ist. Das Feld ADREX besteht aus drei Bytes, die sich
anfangs im Null-Zustand befinden und später die Adresse des extern
definierten Symbols aufnehmen. Die Tabelle EXTAB enthält so viele Zeilen, wie der Wert im Feld GEX angibt. Die Tabelle ENTAB
enthält in einer Kopfzeile das Feld GEN, das aus drei Bytes besteht
und die Anzahl der in dieser Tabelle, enthaltenen Eleiaente
bzw. Zeilen bezeichnet. Die folgenden Zeilen der Tabelle ΕΝΤΛΒ
enthalten je drei Felder: NAMEN, B, ADREN. Das Feld NAMEN besteht aus acht Bytes und enthält den Namon eines im betreffenden Programm
definierten und von einem anderen Programm benützten Symbols.
Derartige Symbole werden nachfolgend im allgemeinen mit Eingangssymbol bezeichnet. Das Feld B bestellt aus einem Byte,
das sich anfangs im Null-Zustand befindet und auf 1 gesetzt wird, wenn das zugehörige Feld ADREN benutzt wird. Das Feld ADREN besteht
aus drei Bytes und enthält die Adresse des Symbols, das im zugehörigen Feld NAMEN eingetragen ist. Die schraffierten Felder
beider Tabellen enthalten keine Information.
Im Schritt 21 von Fig. 3 werden somit für jedes Programm die Tabeilen
EXTAB und ENTAB angelegt. Die Eintragungen für die Felder NAMEX der Tabelle EXTAB und für die Felder NAMEN und ADREN für
die Tabelle ENTAB werden aus den im betreffenden Programm enthaltenen Angaben gewonnen. In diesem Programm sind alle extern definierten
Symbole mit der Bezeichnung EXTRN versehen, und für |edee der so gekennzeichneten Symbole erfolgt eine Eintragung
In der Tabelle EXTAB. Hierbei bleiben die Felder ADREX dieser
Docket GE 971 501
aOSI20/032B
215050g
Tabelle frei. Desgleichen sind im Programm die von anderen Programmen
aufrufbaren Symbole mit ENTRY gekennzeichnet."Für jedes
der so gekennzeichneten Symbole erfolgt bei der übersetzung des Programms eine Eintragung in eines der Felder NMlEN der Tabelle
ENTAB. Außerdem wird in das zu diesem Feld gehörende Feld ADREN die im Programm angegebene Adresse des betreffenden ENTRY-Symbols
eingespeichert. Die Felder B bleiben hierbei jedoch im NuI1-Zustand.
.Im folgenden Schritt 22, der während der Ladeoperation 17 von
Fig. 2 zur Ausführung kommt, wird von dem überwachungsprogramm, unter dessen Regie das Arbeitsprogramm in der Rechenanlage abläuft,
eine Adressentabelle ADTAB für die Tabellen EXTAB und ENTAB hergestellt, die in den Teilprogrammen enthalten sind,
welche zum Arbeitsprogramm gehören. Die Struktur der Tabelle ADTAB ist aus Fig. 4B ersichtlich. Jede Zeile dieser Tabelle
weist folgende vier Felder auf: IDENT, E, AEX, F, AEN. Das Feld ' IDENT besteht aus acht Bytes und enthält den Namen eines in den
Hauptspeicher 18 der Rechenanlage geladenen Programmes, das Tabellen
EXTAB und/oder ENTAB besitzt. Das Feld E besteht aus einem Byte, das anfangs den Wert O enthält. Dieses Feld wird auf 1 gesetzt,
wenn die Tabelle EXTAB in dem im Feld IDENT angegebenen Programm wenigstens ein EXTRN-Symbol enthält. Das Feld AEX umfaßt
vier Bytes und enthält die Adresse der Tabelle EXTAB, die zum Programm gehört, dessen Name im zugehörigen Feld IDENT steht.
Das Feld AEX enthält O, wenn für das Programm keine Tabelle EXTAB existiert. Das Feld F besteht aus einem Byte, das anfangs den
Wert 0 enthält. In diesem Feld wird der Wert 1 eingespeichert, wenn die Tabelle ENTAB, die zu dem im Feld IDENT angegebenen
Programm gehört, während des Laufes des Arbeitsprogranvmes wenigstens einmal benutzt wurde. Das Feld AEN besteht aus vier Bytes
und enthält die Adresse der Tabelle ENTAB, die zum Programm gehört, dessen Name im Feld IDENT steht. Das Feld AEN befindet
sich im Null-Zustand, wenn das betreffende Programm keine Tabelle
ENTAB aufweist.
Docket GE 971 501 309820/0325
215050S
Die Tabelle ÄDTAB wird vom Überwachungsprogramm angelegt, das den Ablauf des Problemprogrammes in der Rechenanlage steuert. Das
Überwachungsprogramm wird auch wirksam, um innerhalb des Problemprogrammes die erforderlichen Querverbindungen zwischen den im
internen Speicher 18 stehenden, das Problemprogramm bildenden Teilprogrammen LMl bis 3 herzustellen. Wenn während des Ablaufes
des Problemprogrammes (Schritt 23 in Fig. 3) ein Befehl auftritt, der ein EXTRN-Symbol aufruft, wird versucht, die Adresse dieses
Symbols aus der Tabelle EXTAB des Programmes in den betreffenden ,Befehl zu laden. Hierzu wird im Schritt 24 geprüft, ob sich in
der Tabelle EXTAB für das betreffende EXTRN-Symbol bereits ein
Adresseneintrag befindet. Dies geschieht unter Benutzung eines Befehls
LEAC R1 , D0(X0, B0)
mit der Bezeichnung 'Adresse laden1. Hierin bedeutet LEAC den symbolischen
Operationscode, R- eine Registeradresse als ersten Operanden des Befehls und D2(X0, B0) den zweiten Operanden, der
eine Adresse darstellt, die sich aus dem Inhalt eines Indexregisters
X2, dem Inhalt eines Basisregisters B0 und einer Verschiebeadresse
D0 zusammensetzt. Die vom Befehl ausgeführtä Operation
besteht darin, daß der zweite Operand in das vom ersten Operanden bezeichnete Register geladen wird. Mit einem derartigen Befehl
können z. B. bekannte Datenverarbeitungsanlagen des IBM Systems /360, wie Modell 25, versehen werden durch Einspeicherung
eines Mikroprogrammes, dessen Schritte im einzelnen in einem späteren Abschnitt in Verbindung mit Fig. 9 beschrieben werden.
Bei der Ausführung des Befehls LEAC wird geprüft, ob der im Programm
als Adresse des betreffenden EXTRN-Symbols bezeichnete zweite
Operand den Wert O besitzt. Wenn sich im Schritt 24 von Fig. ergibt, daß die gesuchte Adresse einen von O abweichenden Wert
hat, ist dies eine Aussage dafür, daß sich die Adresse in der Tabelle EXTAB befindet. Nach Übertragung der Adresse in das vom.
ersten Operanden bezeichnete Register wird deshalb der Programm-
Docket GE 971 501 308820/0325
lauf gemäß Schritt 23 fortgesetzt. Ergibt der Schritt 24 dagegen einen O-Inhalt für die gesuchte Adresse, erfolgt gemäß Schritt
25 eine Unterbrechung des Programms und ein Aufruf des überwa-·
chungsprogramms der Rechenanlage. Das Überwachungsprogramm durchsacht
daraufhin alle verfügbaren Tabellen ENTAB mit dem betreffenden EXTRN-Symbol als Suchargument nach einem NAMEN-FeId gleichen
Inhalts (Schritt 26). Hierzu benutzt das Überwachungsprogramm die Tabelle ADTAB, um für jedes Teilprogramm LM die zugehörige
Tabelle ENTAB zu finden, deren Adresse in dem am weitesten rechts stehenden Feld AEN der Tabelle ADTAB gespeichert ist.
Wenn beim Durchsuchen der ENTAB-Tabeilen ein Feld NAMEN gefunden
wird, dessen Inhalt gleich dem EXTHN-Symbol ist, wird der Inhalt
des zugehörigen Feldes ADREN, das die Adresse des gleichnamigen
ENTRY-Symbols enthält, in die Tabelle EXTAB des unterbrochenen Programms übertragen. Die übertragung erfolgt im Schritt 27 (Fig.
3) in das Adressenfeld ADREX des EXTRN-Sy:nbols, das die Unterbrechung
verursacht hat. Nach Beendigung dieses Schrittes wird der Programmlauf gemäß Schritt 23 an der gleichen Stelle fortgesetzt,
an der zuvor die Unterbrechung stattfand. Gemäß Schritt 24 wird wiederum mit einem LEAC-Befehl versucht, die Adresse des externen
Symbols aus der Tabelle EXTAB r,u erhalten. Da sich die gesuchte
Adresse nun in dieser Tabelle befindet, hat der erneute Versuch Erfolg, und es erfolgt eine Fortsetzung des Programmlaufes unter
Verwendung der Teile aus einem anderen Programmodul LM, die durch das EXTRN-Symbol bezeichnet wurden. Beim Auftreten des nächsten
EXTRN-Symbols werden die Schritte 24 bis 27 in der erläuterten Weise wiederum durchlaufen.
An Hand der Fign. 5A bis C und der nachstehenden Codelisten wird nachfolgend zur Verdeutlichung der Schritte gemäß Fig. 3 ein
Zahlenbeispiel erläutert. In diesem Beispiel wird davon ausgegangen,'
daß ein Programm Pl drei externe Symbole EXTRN R, S, T anspricht, die in einem Programm P2 definiert sind. Die angegebenen
Codelis.ten basieren auf einer Rechenanlage des IBM Systems /360.
Docket GE 971 501 3Q9820/032S
2150505
Code im Programm Pl (Codeliste 1)
Name OP-Code Operand Erläuterung
Pl | START | X'801 ^ |
A | DC | AL3(3) |
GEX | DC | CL8'R' |
ι»-Γ DC | F1O' | |
rAR | Ldc | CL8'S' |
Tdc | F1O' | |
AS | (^DC | CL8'T' |
TDC | F1O' j | |
AT | EXTRN ■ |
R^S, T I |
LEAC | 10, AR | |
L | 3. 0(10 | |
Nur EXTAB vorhanden:
EXTAB
EX = 1 (Bit 0)
GEX = 3
ΓNAMEX (I) (^ADREX (1) JNMiEX (2) [^ ADREX (2) fNAMEX (3) (^ ADREX (3)
ΓNAMEX (I) (^ADREX (1) JNMiEX (2) [^ ADREX (2) fNAMEX (3) (^ ADREX (3)
Lade Register IO mit der Adresse von R. 3, 0(10) Benutzung des Registers 10.
LEAC
8, AS
LEAC
1, AT
ENDE
CLl 971 309B20/032S
geändert gemäß Eingabe
- 12 - eingegangen am r:.T.:.'....'.-~--
Das Übersetzungsprogramm (Schritt 13 von Fig. 2) baut aus der
obigen das Programm Pl als Quellenmodul darstellenden Codeliste für jedes externe Symbol R, Sj T ein Element der Tabelle EXTAB
im Programm Pl auf. Diese Tabelle ist in Fig. 5A dargestellt. Sie ist auf Adresse IO 000 im Hauptspeicher 18 der Rechenanlage
gespeichert und besteht aus drei Elementen, die in den NAMEX-Feldern (Fig. 4A) die Symbole R, S und T enthalten. Die ADREX-Felder
dieser Elemente weisen vor Beginn des Programmlaufes alle den Wert 0 auf. Die mit b gekennzeichneten Felder enthalten keine
signifikante Information. In der Kopfzeile der Tabelle EXTAB
wird in die Bitstelle 0 des Feldes A die Markierung EX = 1 als Anzeige für das Vorhandensein einer Tabelle EXTAB eingestellt.
Dies geschieht durch die Zeile 2 der Codeliste 1, indem die Definition einer hexadezimalen Konstante 80 die höchste Bitstelle
des betreffenden Feldes auf den Wert 1 setzt. Durch die folgende Zeile der Codeliste 1 wird das; Feld GEX in der Kopfzeile
der Tabelle EXTAB auf den Wert 3 gestellt, da die Taljelle drei
Elemente enthält. Die nächsten sechs Zeilen der Codeliste betreffen die Definition der Elemente R, Sr T für die Tabelle
EXTAB. Zur Vereinfachung der Darstellung wurde angenommen, daß das Programm Pl keine Tabelle ENTAB aufweist.
Docket GE 971 501 309820/0325
Name QP-Coäe Operand Erläuterungen
Nur ENTAB vorhanden: Keine EXTAB-Elemente:
Feld nicht benützt;
P2 | i | START | X»40· |
A | DC | AI»3(O) | |
GEX | DC | X1OO' | |
DC | AI*3(3) | ||
GEN | DC | CLB1R' | |
rDC | X1OO1 | ||
DC | AL3(R) | ||
OC | |||
fDC | X1OO' | ||
DC | AL3(S) | ||
^DC | CI»8'T' | ||
'DC | X1OO* | ||
DC | ÄL3 (T) | ||
DC | |||
ENTAB EN = 1 (Bit 1} GEX = 0
0
GEN = 3 ΓΝΑΜΕΝ (1)
JB (1)
(,ADREN (1) ΓΝΑΜΕΝ (2) j B (2)
(^ADREN (2) rNAMEN (3) ' B (3)
.ADREN (3)
(,ADREN (1) ΓΝΑΜΕΝ (2) j B (2)
(^ADREN (2) rNAMEN (3) ' B (3)
.ADREN (3)
ENTRY
R, S, T,
R | DS | F |
S | DC | CItIOO |
T | DS | D |
ENDE
Docket GE 971 501
309820/0325
14 - oöändert gemäß Eingabe
eingegangen am ....
Der obere Teil der Codeliste 2 dient-zur Definition der Tabelle
ENTAB im Programm P2 (Fig. 5A). Die Kopfseile dieser Tabelle
steht auf der Hauptspeicheradresse 16 000. Durch die Zeile 2 der Codeliste 2 wird mit Einsetzen einer hexadezimalen Konstante 40
in das Feld A dessen Bitstelle 1 auf den Wert 1 gesetzt, womit die Markierung EN = 1 vorgenommen wird. Dies bedeutet, daß das
Programm P2 nur eine Tabelle ENTAB aufweist und keine Tabelle EXTAB. Dementsprechend wird durch die dritte Zeile der Codeliste
2 das Feld GEX der Kopfzeile auf 0 gesetzt. z der Tabelle EiITAB (Kopfzeile dieser Tabelle) -
P=A eine O eingesetzt, da dieses Feld im folgenden nicht benutzt
wird. Durch die fünfte Zeile der Codeliste 2 wird der Wert 3 für das Feld GEN der Tabelle ENTAB definiert. In den folgenden
neun Zeilen der Codeliste 2 werden die drei Elemente R, S, T definiert. Hieraus folgt während der übersetzung gemäß Schritt
13 von Fig. 2 ein Tabellenaufbau, wie ihn die Fig. 5A angibt. Beim Laden des übersetzten Programmes P2 gemäß Schritt 17 von
Fig. 2 werden in die Adreßfelder ADREN der Elemente von Tabelle
ENTAB die Hauptspeicheradressen 17 000, 17 OO4, 17 104 eingesetzt.
Während der gleichen Operation, also während des Ladens, wird vom Überwachungsprogramm die Tabelle ADTAB angelegt, wie aus
Fig. 5A ersichtlich ist. Hierbei wird in das dem Programranamen Pl
zugeordnete Adressenfeld AEX (Adresse von Tabelle EXTAB) die Hauptspeicheradresse 10 000 eingesetzt. Ebenso wird in. das dem
Programmnamen P2 zugeordnete Adressenfeld AEN (Adresse der Tabelle ENTAB) die Hauptspeicheradresse 16 004 eingesetzt. In Zeile
10 der Codeliste 1 sind die Symbole R, S, T als externe Symbole gekennzeichnet. Die folgenden Zeilen 11 bis 13 betreffen nicht
dargestellte Teile des Programms Pl. Die Zeile 14 enthält die Instruktion LEAC, durch welche die Adresse des externen Symbols
R aus der Tabelle EXTAB in das Register 10 geladen werden soll. Diese Instruktion bewirkt während des Programmlaufes eine Programmunterbrechung, da das Adreßfeld des Elementes R in der Tabelle EXTAB beim ersten Auftreten dieser LEAC~Instruktion noch
leer ist. Die während dieser Programmunterbrechung sich in den Tabellen ergebenden Änderungen sind aus Fig. 5B ersichtlich, über
Docket GE 971 501 309 8 2Ö/032 6
das zweite Element der Tabelle ADTAB findet das überwachungsprograram.
die Adresse 16 004 der Kopf zeile von Tabelle ENTAB dos Programms P2. Das überwachungsprogramm beginnt daraufhin eine Untersuchung
der Felder NAMEN dieser Tabelle nach dem Symbol R und findet dieses bereits im ersten Element der Tabelle. Daraufhin
wird die im Feld ADREN stehende Hauptspcieheradresse 17 000 in
das Feld ADREX des ersten Elementes von Tabelle EXTAB des Programms
Pl übertragen. Diesös Adressenfeld ist dem in der LEAC-Instruktion
angegebenen externen Symbol R zugeordnet. Außerdem wird in das Feld B des ersten Elementes in der Tabelle ΕΝΤΛΒ eine
"1 eingesetzt zur Anzeige dafür, daß dieses Element während des
Programmlaufes bereits benutzt wurde. In das Feld E der ersten Zeile der ADTAB wird eine 1 gespeichert als Anzeige dafür, daß
in EXTAB von Pl mindestens eine Adresse gespeichert wurde. In das Feld F der zweiten Zeile der ADTAB wird ebenfalls eine 1 gespeichert
als Anzeige dafür, daß die ENTAlI von P2 mindestens
einmal benutzt wurde. Das Programm Pl wird durch einen erneuten und diesmal erfolgreichem Versuch fortgesetzt, die Adresse des
Symbols R aus der Tabelle EXTAB in das Register 10 zu laden. In der folgenden Zeile 15 wird diese aus dem Programm P2 geholte
Adresse innerhalb des Programms Pl benutzt. Die Querverbindung vom Programm Pl zum Programm P2 wird somit während des Ablaufes
des Programms Pl unter Zwischenwirkung des Überwachungsprogramms
hergestellt. Entsprechende Querverbindungen bewirken die LEAC-Instruktionen in den Zeilen 19 und 24 der Codeliste 1. Die hierbei
auftretenden Veränderungen in den Tabellen EXTAB von Programm Pl und ENTAB von Programm P2 sind in der aus Fig. 5B ersichtlichen
Weise herleitbar. Die restlichen Zeilen der Codeliste 1 betreffen Teile des Programms Pl, die für das Wesen der
Erfindung ohne Bedeutung sind. Das gleiche trifft auf die Zeilen 16 bis 22 und 27 bis 29 der Codeliste 2 zu. In den Zeilen ?4 bis
26 der Codeliste 2 sind die im Programm P2 von außen ansprechbaren Symbole R, S, T definiert.
Im oben beschriebenen Beispiel wird lediglich ein Zugriff in einer Richtung vom Programm Pl zum Programm P2 erläutert. Nach
DocKet GE 971 5Ol
308 820/0325
- 16 - geändert pemäß Eingabe eingegangen am "Z. C*. ir.Ί λ
den gleichen Prinzipien kann jedoch eine Verbindung in umgekehrter
Richtung hergestellt werden, indem vom Programm P2 ein Zugriff zu Teilen des Programms Pl erfolgt. In diesem Falle er- ·
hält das Programm P2 an seinem Anfang die entsprechenden Definitionen
zum Aufbau einer Tcibelle EXTAB und das Programm Pl die
entsprechenden Definitionen zum Aufbau einer Tabelle ENTAB. Die während des Programmlaufes wechselweise herstellbaren Querverbindungen sind auch nicht auf zwei Programme beschränkt. Sie
können vielmehr auf eine beliebige Anzahl von gleichzeitig im Hauptspeicher 18 der Rechenanlage befindlichen Programmen aus-"
gedehnt werden. Die Adressentabelle 7^DTAB (Fig. 5A), die zur ■Adressierung der Tabellen EXTAB und ENTAB in den verschiedenen
Programmen benutzt wird, läßt sich, wie dargestellt, beliebig erweitern.
Unter Bezugnahme auf die Fign. 6 bis 8 werden nachfolgend die ■ Schritte erläutert, die das Überwachungsprogramm der Rechenanlage
ausführt, wenn das Programm in den Hauptspeicher geladen wird, wenn eine Querverbindang zu einem anderen, zur gleichen
Zeit im Hauptspeicher befindlichen Programm hergestellt werden soll und wenn .eines dieser Programme wieder aus dem Hauptspeicher
entfernt wird. Die beim Laden eines Programmes vom Überwachungsprogramm auszuführenden Operationen sind aus Fig. 6 ersichtlich.
Der Block 31 betrifft allgemein das Laden des Programms auf die
Adresse ADR, wobei Operationen ausgeführt werden, die mit dem Gegenstand der Erfindung nicht in Verbindung stehen, wie z. B.
die Zuweisung einer Hauptspeicheradresse als Anfaiigsadresse· für
das Laden des Programms. Im Schritt 32 wird geprüft, ob die am Anfang des Programms stehenden Tabellen EXTAB und ENTAB im Feld
A (Fig. 4A) eine Anzeige EX = O und EN — O enthalten-» Sind beide
Anzeigen O, erfolgt über 30 eine Rückkehr zum Ladeprograimm. das
daraufhin die einzelnem Befehle dos betreffonden Problemprogramms
auf din zugewiesenen Hauptspoichorplfitse überträgt. Enthält dagegen
eine der t&mk EX und EN reservierten Bitstellen einen von
O abwaschenden Wert, wird im Schritt 33 untersucht, ob in der
Adressentabelle ADTAB (Fig. 4B) noch Platz frei ist.. Die Zahl der
cu·: 971 sol 309820/0325
COPY BAD ORIGINAL
j O U 000
- 17-
in dieser Tabelle besetzten Elemente ist im übcrwnchungnprogramm
durch das Symbol N erfaßt, während die Angabe MAX die mu/ii.aal
zulässige Elementcnzahl für die Tabelle ADTAB bc^nichnet. Ist
die Bedingung N < MAX nicht erfüllt, so erfolgt über 34 e.i no Rückkehr ins Ladcprograinm, wobei in dem Programm, welches das
Laden veranlaßt hatte, eine Anzeige gespeichert wird, daß aus Platzmangel keine Verbindung zu program-uoxtern definierton Symbolen
hergestellt werden kann. Im anderen Falle geht die Steuerung des Überwachungsprogrammcs zum Schritt 35 über, der ο inon
Laufwert i = 1 setzt. Der Laufwert i bezeichnet dasjenige Ul'j-.
ment der Ted. eile ADTAB, das sich gerade in Behandlung befindet.
Im Schritt 36 wird geprüft, ob das Element i der Tabelle ADTAB,
im vorliegenden Falle also das erste Element dieser Tabelle:, ein leeres IDENT-FeId enthält. VJenn das erste Element boreitr» besetzt
ist, wird eine Nein-Antwort erhalten, worauf durch Schritt
37 eine Inkrementicrung des Laufwertes i um 1 erfolgt. Der Schritt
38 prüft:, ob die Tobellongröße bereits überschritten ist. LLefert
der Schritt 38 eine Ja-Anzeige, so liegt ein Symstcmfchlor vor,
der über 39 zur Anzeige gelangt. Befindet sich dagegen der Wort i innerhalb der vorgcschr!ebenen Tabellengröße, erfolgt cino Verzweigung
zurück zum Schritt 36. Wenn der Schritt 36 anzeigt, daß das untersuchte IDENT-FeId leer ist, erfolgt im Schritt 40 eine
Inkrementicrung des die besetzten Elemente der Tabelle ADTAB anzeigenden
Wertes N um 1. Im Schritt 41 wird daraufhin der Prograinmname
des zu ladenden Programms in das Feld IDENT übertragen. Das Uberwachungsprogromm prüft im Schritt 42, ob in der Tabelle
EXTAB des zu ladenden Programms der EX-Anzeiger auf 1 steht. Ist
dies der Fall, erfolgt durch Schritt 43 eine übertragung der
Adresse dor Kopfzeile dieser Tabelle EXTAB in das Adressonfeld
AEX des jeweils in Behandlung befindlichen Elementes der Tabelle ADTAB. Da diese Tabelle normalerweise am Anfang dos zu ladenden
Programms steht, handelt es sich dabei um die Anfangsadressc ADR
dieses Programms. Daraufhin geht die Steuerung zum Schritt 44 über, der die Ar zeige EN der Tabelle ENTAB des zu ladenden Programms
auf das /orliegen einer 1 prüft. Der Schritt 44 kommt auch zur Wirkung, w>nn dar Schritt 42 eine Nein-Anzeige erzeugt.. Wird
COPY
Docket GE 971 501 COS 820/ 0225 BAD ORlQj NAL
fih: EM ein vor, I cuwci. ulic »dor Viert I-jfitycr. tollt, liegt ein SystA-mf
chlor vor, der über 39 zur Arwairc yolaugt. Im anderen Falle
v/i id durch Sc-iri.,L· 4Γ>
Una Adreßfelcl dec in I3ehandlung befindlich-n
Elementen in dar Tabelle ADTAD geladen. Die zu ladende
Ati.oüae ergibt sich durch ADR -i- 4 ·",- 12 · GlSX. Diener Ausdruck
bedeutet, daß sur /.niavicjriadrcaae ADR des zu ladenden Programms
ei -o InkremontiGrnay u.i- doa Spsicherrawa erfolgt, den die Tabelle
r::-'i/\B einnimmt, üio Taballci ENTiVO öchllcwu aica somit unmittelbar
i\;< die Tabelle EIvVAIi au. «ach dem Schriit 45 erfolgt über 46 eine
lülilkehr in daa Lado.prograivan, vielclies daraufhin mit der Ladoopo-•i-^ίίο'Λ
fortfährt«,
τ-, -i Hand dar Fi<;;ne 7Λ \χηύ VD v;ird clio Harr, cc llung von QuQrvorbinirir.cj-ea
r;v:ir.chcn rlc i i:l;.:'<jitj.g in Jlcu^ta pol char der IlGclienanlagm
:■' l'Luülichen P]:or-rt.:;i:.im orläuteirt, Der Schritt 51 von Fig. 7Λ
: c/llt dem Auf ruf ci/.o;-. extern uaiJi.alerücn Symbols in einem von
·.. -r nec:hc:;ianlago auiii- oLührton Pirajramin dar. Wie an Hand der Codclista
I erläutert wvirüa, vjird. uio.-.cr Aufruf durch die Instruki
Lon LKAC ausgoZiih::h, vjclctio ciio äCroüüQ das in ihr enthaltenen
zwei tau O^eraiiöon iw ein voa üirnton Operanden beaeichnetos Re-Cjüster
ir.dto Ir/.:.:ri't;;.j 1.- dicr.ar C; craizioa findan verschiedene
PrilfnchrlttG st^i-.ü,, vca öenan In Picj. 7A mir die Schritte 52,
53 darvfCMtcll-;: ./..;...1,, ϊ:α Gerrit:; "Γ. wird geprüft, ob die zu ladende
JVci-ocno C ·. ■ o;::;ranuon. ;{. el::,.! ',lort 0 aufweist. Handelt es
r.ich ν:::, oincu vz.:i G a.r.vC;ic^e^:"o:i '.,:ii:tff führt der Prüf schritt
eine Prilfuar; CwS-JIl1 öl·» ca η ich u :. cir.G era α öl iü tüte Adresse handelt.
VJird clicG ebonl:.V'i.l;: vorneintj cr...o:;.c;t nach Vornahme weiterer
Prufcica;:itte oiao Portsotsuivj t".::.:, iiro^raKims. Im Falle von Ja-Anaeigea
erfolgt c^ogon οίηα i:;c;;rGn:munterbrecUung durch den
Gehritt 54. si;-.-, Ja-Anacigo in Hv^ritt 52 badöutet, daß dio
Λ ei rc η so Ciaa güc^olvLch, cetera c.2i-;.nlQs:ten Symbols in der ΕΧΤΛΒ-Tabolla
do a Όζοζ-r:::::.:: nlch« anCi.."ItG« ist. Die Programmunterbrechung
gcraSiÜ Gc'a-rltfc 5i hat ciaa Vairav/eigung sum Uberwachungsprogrr-rca
zur PoIrG, ck;a Über don Schritt 56 dio In Fig. 7B dar- "
goatellta Verbir.CuaVjsroutiiio beginnt. Durch den Schritt 57 wird
dia Adro33G Q daa Opararidon CP2 dar Inatruktion I.riAC geholt.
COPY
Docket GE 971 501 300020/0320 BAD ORIGINAL
Diese Adresse, die auf ein ADREX-FeId dar Tabelle EXTAB des unterbröclieiien''Programms
zeigt, wird im Schritt 58 um 8 vermindert, wodurch, die'Adresse des zu diesem Feld gehörenden Feldes MAMEX
gefunden wird. Der Inhalt dieses Feldes, der dem aufgerufenen Symbol entspricht, wird im folgenden als Suchwert benutzt. Durch
einen Schritt 59'wird ein Laufwert i = 1 gesetzt. Dieser Lauf- . wert bezeichnet die Nummer des gerade angesprochenen Elements in
der Adressentabelle ADTAB. Jm Schritt GO wird geprüft, ob das
Feld IDENT "des Elementes i in Tabelle ADTAB leer ist. Handelt
es'sich um ein leeres Feld, wird durch Schritt 61 eine Inkremen-
.tierüng des Laufwertes i um 1 herbeigeführt. Der Schritt 62 prüft,
ob dar Laufwert i noch innerhalb der Größe der Tabelle ADTAB liegt. Ist dies der Fall, erfolgt eine Verzweigung zurück zum
Schritt 60. Stellt das tJberwachungsprogramm nach mehrmaliger Wiederholung
der' Schritte 60 bis 62 fest, daß die Tabellengröße überschritten ist, erfolgt über 63 eine Rückkohr ins Problemprogramm,.
Diesem wird hierbei'angezeigt, daß kein Symbol mit. dem gewünschten
Namen im Hauptspeicher der Rechonahlage enthalten ist. Wenn der
Schritt 60 ein Nein-Resultat liefert als Anzeige, daß das Element i der Tabelle ADTAB besetzt ist, wird ein Schritt 64 wirksam,
durch den das dem gleichen Tabellenelernent angehörende Adressenffild
AEN geprüft wird, ob sein Inhalt von 0 abweicht. Hierdurch wird festgestellt, ob das Programm, dem dieses Element über das
- IDENT-FeId zugeordnet ist, eine Tabelle ENTAB enthält. Liefert
der Schritt 64 eine Ja*··Anzeige», wird durch den Schritt 65 ein .
Laufwert J=I gesetzt, der das jeweils in Behandlung befindliche
Element der betreffenden Tabelle ENTAB bezeichnet. Andornfalls
erfolgt vom Schritt 64 eine Verzweigung zum Schritt 61. Das iiberwachungsprogramm
prüft nun durch eine Suchschleife, der die Schritte 66, 67 und 68 angehören, ob der Name des gesuchten Symbols in der Tabelle ENTAB enthalten ist. Der Schritt G6 prüft den
Namen des Elementes J auf Gleichheit mit dem im Schritt 58 definierten
Suchwert. Ein Nein-RciJultctt. diar.es Vergleiches führt zu
einer Inkremantierung'des Lauiwortes J um 1 durch den Schritt 67.
Im Schritt 68 wird geprüft, ob der Laufv/ert. noch .innerhalb der
Crößo dar Tabelle ENTAU liegt.- Ist dies der Fall, v.'Jid eine
r,i: 971 W)I 309820/0325 COPY
6AD ORIGINAL
Wiederholung des Schrittes 66 eingeleitet, andernfalls erfolgt eine Verzweigung zum Schritt 61, wodurch zur Prüfung der Tabelle
ENTAB eines anderen Programmes übergegangen wird.
Wenn der Schritt 66 eine Anzeige liefert, daß der Inhalt des
NAMEN-Feldes init dem Suchwert identisch, ist, wird der Schritt
69 ausgeführt, der den Inhalt des Feldes ADREN im Element J der durchsuchten ENTAB-ΤabelIe in das Feld ADREX überträgt, das auf
Adresse Q steht und dem Suchwert (EXTRN-Symbol) als Adressenfeld
zugeordnet ist. Im Schritt 69 wird auch des Feld E des noch auf- - gerufenen Elementes i in der Tabelle ADTAB auf 1-gestellt, um
dadurch zu markieren, daß in der zu diesem Element gehörenden Tabelle EXTAB wenigstens eine Adresse gespeichert wurde. Als
nächstes wird der Schritt 70 ausgeführt, durch den das Element B in der durchsuchten Tabelle ENTAB auf 1 gestellt wird zur Anzeige
dafür, daß das Adressenfeld ADREN dieses Elementes benützt wird.
Außerdem wird durch den Schritt 70 das Feld F des Elementes i in der Adressentabelle ADTAB auf 1 gesetzt zur Anzeige dafür, daß
die diesem Element zugeordnete Tabelle ENTAB mindestens einmal benutzt wurde, über den Schritt 71 erfolgt nun eine Rückkehr in
das Problemprogramm. Durch die oben erläuterten Schritte wurde die Adresse des externen Symbols in die Tabelle EXTAB gebracht.
Das Problemprogramm wird durch eine Wiederholung der LEAC-Instruktion,
die zuvor die Unterbrechung verursacht hatte, fortgesetzt.
Wenn eines der im Hauptspeicher 18 der Rechenanlage enthaltenen Programme, zwischen denen während der ProgrammausführLing Querverbindungen
hergestellt wurden, aus dem Hauptspeicher entfernt werden soll, müssen die. in den im Speicher verbleibenden Programmen
enthaltenen Querverbindungen aufgelöst werden, um Aäressicrungsfehler
während der weiteren Ausführung der Programms zu vermeiden. Die hierzu notwendigen Arbeitaschritte sind in den
Fign. 8A und 8B dargestellt. Mit einem Schritt. 76 sind diejenigen
Operationen des Überwachungsprogramms angegeben, die eine Entfernung des auf der Ac3rcs.oe ADR geladenen. Programms aus "dom
Hauptspeicher 18 bewirken und die nicht Gegenstand der Erfindung
Docket GE 971 50.1 309820/032 5
BAD ORIGINAL
sind. Durch den Schxitt 77 wird der Laufwert i für die Arbeit
an der Adressentabelle ADTAB auf 1 gestellt. Im Schritt 78 wird
das Feld IDENT im Element i dieser Tabelle aufgerufen und geprüft,
ob sein Inhalt mit dem Namen des zu entfernenden Programms identisch ist. Wenn dies nicht der Fall ist, erfolgt eine Inkremen
tierung des Laufwertes i um 1. Hierzu dient der Schritt 79,
der durch einen Prüfschritt 80 gefolgt wird, welcher feststellt, ob i noch innerhalb der Tabellengröße liegt. Ist dies der Fall,
erfolgt eine Wiederholung des Schrittes 78 und gegebenenfalls auch der Schritte 79 und 80. Wird hierbei die Tabelle ADTAB
-. aufgearbeitet, ohne daß sich ein Feld IDENT mit dem Namen des
zu entfernenden Programms findet, wird die Verbindung-lösen-Routine
über 114 beendet. Das Programm hat in diesem Fall weder eine Tabelle EXTAB noch eine Tabelle ENTAB. Durch eine Übereinstimmungsanzeige
des Schrittes 78 wird der Schritt 82 wirksam, ■der eine Löschung des ermittelten IDENT-Feldes veranlaßt. Per
Kennwert N für die Zahl der in der Tabelle ADTAB besetzten Elemente
wird im Schxitt 83 um 1 reduziert. Der Schritt 84 prüft, ob
der Wert von N < O ist. Ein bejahendes Ergebnis dieser Prüfung .
führt zu einer Systemfehler-Anzeige über 85. Andernfalls erfolgt
durch Schritt 86 eine Prüfung des Feldes AEN im Element i der Tabelle
ADTAB, ob dieses Feld einen von 0 abweichenden Wert enthält. Ein Nein-Resultat dieses PrüfSchrittes führt über 115 zum Ende
der Verbindung-lösen-Routine, da in diesem Falle das Programm
keine ENTAB-Tabelle hatte. Ein Ja-Resultat des Schrittes 86 führt
zum Schritt 87, welcher prüft, ob das Feld F des Elementes i einen
Inhalt hat, der von O abweicht. Auch hier bewirkt ein Nein-Resultat
über 116 eine Beendigung der Verbindung-lösen-Routine,
da in diesem Falle die dem Element i zugeordnete Tabelle ENTAB ..
nicht benutzt worden ist. Ein Ja-Resultat der Prüfung von Schritt •87 führt zum Schritt 88, der den Laufwert J auf 1 setzt, wobei
für die folgende Adressierung der Elemente der Tabelle ENTAB die Adresse AEN (i) als Basis genommen wird. Der Schritt 89 prüft, ob
das Feld B des Elementes J in der angesprochenen Tabelle ENTAB
einen von O abweichenden Wert enthält. Ein Nein-Resultat dieser.
Prüfung zeigt an, daß zu dem ENTRY-Symbol, das dem betreffenden
Docket GE 971 5Ol 30 9 S 20/03 2 S
Tabellenelement zugeordnet ist, keine Verbindung hergestellt wurde,
Durch den Schritt 90 erfolgt eine Inkrementierung des J-Wertes
um 1 und der Schritt 91 prüft, ob der inkrementierte J-Wert noch
innerhalb der Größe der behandelten Tabelle ENTAB liegt. Ist dies der Fall, wird der Schritt 89 und gegebenenfalls auch die Schritte
90 und 91 wiederholt. Andernfalls wird durch einen Schritt das qesamte ADTAB-Elernent i gelöscht, wonach die Verbindung-lösen-Routine
über 117 beendet wird.
Wenn der Schritt 89 ein Ja-Resultat als Anzeige dafür liefert,
"daß das Element J bereits Gegenstand einer Querverbindung war, wird der Schritt 94 (Fig. 8B) wirksam, der einen neuen Laufwert
L=I einstellt. Dieser Laufwert wird zur Behandlung der- IDENT-Felder
der Tabelle ADTABbenutzt. Ein Schritt 95 prüft, ob das
Feld IDENT des Elementes L in dieser Tabelle leer ist. Eine Ja-Anzeige
hierfür führt zu einer Inkrementierung des Wertes L um
1 im Schritt 96. Der Schritt 97 prüft, ob der Wert L noch inner-, halb der Größe der Tabelle ADTAB liegt. Wenn dies der Fall ist,
erfolgt eine Verzweigung zurück zum Schritt 95. Andernfalls verzweigt das Überwachungsprogramm zum Schritt 9O von Fig. 8A, der
den Laufwert J für die Behandlung der angesprochenen ENTAB-Tabelle
inkrementiert. Ergibt sich bei der Durchführung des Schrittes 95,
daß das Feld IDENT des Elementes L in der Tabelle ADTAB nicht
leer ist, wird ein Prüfschritt 102 wirksam, der durch Prüfung des Feldes AEX im Element L auf einen von O abweichenden Viert
feststellt, ob für dieses Element eine Tabelle EXTAB existiert.
Ein Ja-Resultat dieses Schrittes führt zu einem weiteren Prüf—
schritt 103, der durch Untersuchung des Feldes E im gleichen Element
feststellt, ob bereits eine Adresse in dieser EXTAB-Tabelle
gespeichert worden isb. Nein-Resultate der Schritte 102 und 103
bewirken-jeweils eine Verzweigung zum Schritt 96, der den Laufwert
L inkrementiert. Als Folge eines Ja-Resultates des Schrittes
103 gelangt die Steuerung zum Schritt 104, der einen weiteren Laufwert K=I definiert und einen Anzeigeschalter AZSCH auf das
Prüfkriterium 0 setzt. Der Lauf wert K dient zur Behandlung der
Elemente in der angesprochenen EXTAB-Tabelle, und der Schalter
Docket GE 971 501 3 0 9 θ 2 OV 0 3 2 5
- 23 - ' Geändert Qemäß Eingabe
• eingegangen om "kA.-.a- 7. ί
wird beim Abfragen der Adreεsenfelder ADREX dieser Tabelle benutzt,
In clen folgenden Schritten wird mit dem Namen des ENTAB-Elementes,
dessen B-Feld einen von O abweichenden Viert hat (Schritt 89 in Fig. 8A)j eine Suche durch alle vorhandenen Tabellen EXTAB durchgeführt.
Der Name des ENTAB-Elemerites wird dabei als Suchargument
benutzt. Wird ein gleichnamiger Inhalt in einem Feld NAMEX der Tabelle EXTAB gefunden, so wird das dazugehörige Adressenfeld
gelöscht. Diese Operationen beginnen mit Schritt 105, der den Inhalt des Feldes NAMEN im Element J der Tabelle ENTAB des
aus dem Speicher zu entfernenden Programms mit dem Inhalt des Feldes NAMEX im Element K der in Behandlung befindlichen Tabelle
EXTAB vergleicht. Ergibt diese Vergleichsoperation eine Übereinstimmung,
so wird durch Schritt 106 das zum Feld NAMEX gehörige Adressenfeld ADREX gelöscht. Der folgende Schritt 107 inkarementiert
den Wert K um 1, wonach im Schritt 108 geprüft wird, ob der K-Wert noch innerhalb der Größe der in Behandlung befindlichen
EXTAB-Tabelle liegt. Wenn dies der Fall ist, wird der Schritt 105 wiederhol*;. Wenn der Schritt 105 eine Nein-Aussage liefert,
erfolgt durch Schritt 109 eine Prüfung, ob das Adressenfeld ADREX des Elementes K in der Tabelle EXTAB den Wert 0 enthält. Wenn
dies der Fall ist, wird als nächstes der Schritt 107 ausgefüllt, andernfalls wird durch einen Schritt 110 der Anzeigeschalter
AZSCH in den Zustand 1 gebracht. Hierdurch wird eine Anzeige
gespeichert, daß das letzte behandelte Element K der Tabelle EXTAB eine Eintragung enthält. Nach Beendigung des Schrittes 110
wird der Schritt 107 ausgeführt. Wenn die Operation gemäß Schritt
108 zu einem Ja-Resultat führt, wird durch einen Schritt 111 abgefragt, ob sich der Schalter AZSCH im 1-Zustand befindet. Ist
dies der Fall, so befindet sich in der untersuchten Tabelle EXTAB wenigstens noch ein belegtes Adressenfeld' ZvDREX, dessen zugeordnetes
Feld NAMEX nicht mit dem air, Argument benutzten Inhalt des
Feldes NAMJiN im Element J der Tabelle ENTAB in dem. aus dem Speicher
zu entfernenden Programm übereinstimmt. Liefert der Schritt 111 die Anzeige "nein", so wird durch einen Schritt 112 das Feld
E <"iös Elementos· L in der Adrossentabelle ADTAB auf 0 gesetzt.
Auf die Schritte 111 und 112 folgt jeweils eine Verzweigung zum
j)(K,-]cc.i. α:: 9V«. boi 309 820/03 2 5
BAD ORIQINAU
Schritt 96, um eine Weiterschaltung auf das nächste Element der Adressentabelle vorzunehmen. , · -
Durch die obigen Verfahrensschritte wurden alle Querverbindungen
gelöst,. die von anderen Programmen zu dem aus dem Hauptspeicher
der Rechenanlage zu entfernenden Programm bestanden haben. Die EXTAB-Tabellen der anleren Programme wurden auf derartige Querverbindungen
durchgesucht, und die gefundenen Querverbindungen wurden gelöscht (Schritt 106) . Außerdem wurde das dem zu entfernenden
Programm zugeordnete' Element der Adressentabelle ADTAB
'ermittelt und ebenfalls gelöscht (Schritte 82 und 92). Für das oben erläuterte.Zahlenbeispiel ist das Ergebnis dieser Operationen
in Fig. 5C dargestellt. Hierbei wurde davon ausgegangen, daß
das Programm P2 aus dem Hauptspeicher zu entfernen ist und daß die Querverbindungen, die von dem im Hauptspeicher bleibenden
Programm. Pl zum Frogramm P2 bestehen, gelöst werden sollen.
An Hand der Fig. 9 werden im einzelnen die Operationsschritte
erläutert, die zur Ausführung des Befehls LEAC bei einer Datenverarbeitungsanlage
des IBM Systems /360 durchgeführt werden. Es kann sich hierbei z. B. um eine mit einem Mikroprogramm arbeitende
Anlage des Typs IBM System /360, Modell 25, handeln.
Der Ausführung des LEZiC-Befehls voraus geht der Interpretationszyklus (I-Zyklus)., der sich vom Interpretations zyklus anderer
Befehle des gleichen Typs nicht unterscheidet. Durch einen Schritt 121 v/erden die Bytes 0 und 1 des zu interpretierenden Befehls
aus dem Hauptspeicher 18 der Anlage in ein nicht dargestelltes Befehlsregister gelesen. Danach erfolgt durch Schritt 122 eine
Inkrementierung der Befehlsadresse um 2. Im Byte O des Befehls
ist dessen Operationscode enthalten. Der Schritt 123 prüft, ob der Befehl das gelesenen Operationscodes ein Befehl vom Typ RX
ist. Da der LEAC-Berehl diesem Befehls typ angehört, -ist der
Verneinungsfall, der gemäß Block 124 eine Abfrage nach dem Vorliegen
anderer Befehls typen vorsieht, für die vorliegenc3e Betrachtung
ohne Interes.se. Wenn dar Schritt 123 eine Ja-Anzcige
Dockoh GE 971 501 3Q9Q20/0 32 5
BAD
2150508
- 25 - geändert gemäß Eingabe eingegangen am ......S.^.ii'.-.ii...
liefert, v/erden durch den Schritt 125 die Bytes 2 und 3 des
Befehls gelesen, wonach wiederum eine Inkrementierung der Befehlsadresse
um 2 durch den Schritt 126 erfolgt. Im Schritt 127 wird das vom zu interpretierenden Befehl bezeichnete Basisregi-"
ster daraufhin untersucht, ob es'den Wert O enthält. Es handelt
sich dabei um das Basisregister, das durch die Komponente B im LEAC-Befehl (Fig. 10) bezeichnet wird. Diese Komponente befindet
sich auf den Bitstellen 16 bis 19 des Befehls, die von der
ersten Hälfte des Bytes 2 eingenommen werden. Ist der Inhalt des Basisregisters O, dann wird durch Schritt 128 festgestellt,
-daß die Adresse des zweiten Operanden gleich der im Adressenfeld
D2 enthaltenen Verschiebeadresse ist. Im anderen Falle setzt der
Schritt 129 die Adresse des zweiten Operanden gleich dem Inhalt des Basisregisters B^ plus der Verschiebeadresse D2. In beiden
Fällen wird als nächstes der Schritt 130 ausgeführt, durch den das Indexregister X0 auf das Vorliegen eines Null-Inhaltes geprüft
wird. Das Indexregister X„ wird durch die zweite Hälfte des
Bytes 1 in den Bitstellen 12 bis 15 des LEAC-Befehls bestimmt.
Eine Ja-Anzeige hat zur Folge, daß der Schritt 131 die durch den
Schritt 128 bzw. 129 ermittelte Adresse um den Inhalt des Indexregisters
erhöht* während eine Nein-Anzeige des Schrittes 130 die
S-ceuerung veranlaßt, den Schritt 131 zu umgehen. Damit liegt nun
die Adresse des zweiten Operanden der LEAC-Instruktion fest, und
es folgt nun in einer Anzahl von Prüfschritten eine Prüfung dieser Adresse in verschiedener Hinsicht.
Der Schritt 132 prüft, ob es sich um eine gültige Adresse handelt,
d. h. ob die Adresse innerhalb des zulässigen Adressenbereiches
der Datenverarbeitungsanlage liegt. Wenn dies nicht der Fall ist, erfolgt über 133 die Anzeige eines Adressenfehlers vom Typ I.
Liegt eine gültige Adresse vor, wird durch einen Schritt 134 festgestellt, ob der zweite Operand auf einer Vjslliwiedtgireiize beginnt.
Auch hier liegt ein Adressierfehler vor, wenn der Schritt 133 eine Nein-Anzeige zum Ausgang 135 liefert. Diese Art·von
Adressierfehler ist mit II klassifiziert. Eine Ja-Anzeige führt
zu einem weiteren Prüfschritt 136, durch den festgestellt wird,
Docket GE. 971 501 . 309 820 /0 32 S
_ 26 - geändert gemäß Eingab©
eingegangen am ....?ζ.Φ:*ζ;Λ£
ob die ermittelte Adresse eine geschützte Adresse ist» Ist dies
der Fall, erfolgt über 137 die Anzeige eines Adressierfehlers vom
Typ III, der eine Speicherschutz-Unterbrechung des laufenden Programms
veranlaßt. Im anderen Falle wird als nächstes der Schritt 138 ausgeführt, welcher den Operationscode des Befehls (Bitstel—
len O bis 7) prüft, ob er den Inhalt "LEAC" aufweist. Wenn dies
nicht der Fall sein sollte, wird bei 139 durch im einzelnen nicht dargestellte Operationen eine Abfrage nach dem Vorliegen anderer
OP-Codes durchgeführt. Dies ist jedoch hier ohne Interesse, da von der Voraussetzung ausgegangen wird, daß der zu interpretierende Befehl ein LEAC-Befehl ist. Mit der Ja-Anzeige aus Schritt
138 ist der Interpretationszyklus beendet, und die Steuerung
tritt in den Ausführungszyklus (Ε-Zyklus) ein. Der erste Schritt
dieses Zyklus besteht im Lesen des zweiten Operanden im Schritt
140. Durch Schritt 141 wird der zweite Operand daraufhin geprüft, ob er den Wert O aufweist. Liegt ein von O abweichender Wert vor,
so wird mit dem Schritt 142 der zweite Operand in das Register Rl übertragen, das den ersten Operanden der LEAOOperation darstellt.
Damit ist die Operation "Adresse laden" ausgeführt, und die Maschine
kann mit der Intarpretation des folgenden Befehls beginnen. Liefert dagegen der Schritt 141 eine Ja-Anzeige, so wird
durch ainen Schritt 143 ein Unterbrechungscode 0020 in ein dafür vorgesehenes, nicht dargestelltes Register gebracht, was in der
Folge bei 144 eine Unterbrechung des laufenden Programms zu Folge hat. Die Programmunterbrechung gemäß Schritt 144 ist mit der
P rogr amniunt erb rechung von Schritt - in Fig. 7A identisch. Sie
bewirkt einen Aufruf des überwachungsprogramms zur Ausführung
der oben an Hand der Fig. 7B erläuterten Operationen.
Die vorausgehend an Hand der Fig. 9 beschriebenen Operationsschritte sind durch ein entsprechendes Mikroprogramm auf bekannten
mik-röprogrammierten Maschinen des IBM Systems /360 ausführbar. Eine Anlage dieses Typs ist z. B. in der deutschen Offenlegungsschrift
1 815 078 im Detail beschrieben.
Beim oben beschriebenen Ausführungsbeißpiel wurde davon ausgegangen,
daß die Tabellen EXTAB und ENTAB jeweils in dem Speicher
gebildet werden, in welchem sich das betreffende Problemprogramm
Docket GE 971* 501 3QS8 2 0/03 2
2150508
.- 27 -
befindet. Im Beispiel ist dies normalerweise der Hauptspeicher 18,
Sofern es sich bei diesem Speicher nicht um einen sehr schnellen Speicher handelt, ist es im Interesse einer hohen Arbeitsgeschwindigkeit
vorteilhaft, diese Tabellen in einen oder mehreren besonders schnellen Arbeitsspeichern unterzubringen, die durch die
Befehle, welche auf ENTRY- oder EXTRN-Symbole Bezug nehmen, ansteuerbar
sind. Das gleiche gilt für die Adressentabelle ADl1AB,
wobei die Ansteuerung des betreffenden Arbeitsspeichers durch das überwachungsprogramm erfolgt. Datenverarbeitungsanlagen, die
neben dem Hauptspeicher schnelle Arbeitsspeicher bzw. allgemein verwendbare Registersätze aufweisen, sind allgemein bekannt, wie
beispielsweise die obengenannte Offeniegungsschrift zeigt.
Das erfindungsgemäße Verfahren ist auch bei Rechenanlagen ausführbar,
welche über eine Instruktion zum Laden extern definierter Adressen nach Art der Instruktion LEAC nicht verfügen. In diesem ·
Falle ist in die Codelisten (z. B. Codeliste 1) anstelle der Instruktion LEAC die folgende Befehlsequenz einzufügen:
L | 10, | = A(EX) |
LTR | 10, | 10 |
BNZ | 4" + | 6 |
SVC | nnn |
Diese Befehle, die z. B. zum Standardbefehlsatz von Datenverarbeitungsanlagen
des IBM System /360 gehören, haben folgende Bedeutung. Durch den Befehl L wird eine im zweiten Operanden näher
spezifizierte Adresse in ein durch den ersten Operanden angegebenes
Register geladen. Die zweite Instruktion hat die Bedeutung "Laden und Testen". Hierdurch wird der Inhalt des Registers 10
wiederum in das Register 10 geladen, wobei verschiedene Testoperationen
zur Ausführung gelangen, die sich auf den zu ladenden Zahlenwert beziehen. Eine dieser Testoperationen ist die Prüfung,
ob der zu ladende Wert 0 ist. Der Befehl BNZ betrifft eine Verzweigung, wenn der geprüfte Viert von 0 abv?eicht. Hierdurch wird
der nächste Befehl übersprungen, wenn der in der Instruktion LTR getestete Viert von 0 abweicht. Ist dies nicht der Fall, kommt
die Instruktion SVC zur Aue; i üb rung, die oinc Verzweigung zum Über-
Docket GK 973 1301 309820/0325
ORIGINAL
wachungsprogramrn ausführt. Die von diesen Befehlen ausgeführten Operationen entsprechen somit in ihrer Auswirkung auf das erfindungsgemäße
Verfahren der erläuterten Instruktion LEAC.
Docket GE 971
30982070325
Claims (14)
- _ 29 - '
PATENTANSPRÜCHEVerfahren zur Herstellung von Querverbindungen zwischen mehreren gleichzeitig im internen Speicher einer Datenverarbeitungsanlage gespeicherten Programmen während der Programmaus führung, die unter der Regie eines Überwachungsprogramms erfolgt, dadurch gekennzeichnet, daß zu jedem Programm eine erste Tabelle von im Programm vorhandenen, programmextern definierten Symbolen mit einem zugehörigen, zunächst leeren Feld für die Adresse dieses Symbols gebildet* wird, daß zu jedem Programm eine zweite Tabelle von im Programm definierten, programmextern ansprechbaren EingangsSymbolen und den zugehörigen Adressen dieser Symbole gebildet wird, daß zum Überwachungsprogramm eine gemeinsame Adressentabelle für die ersten und zweiten Tabellen der Programme erzeugt wird, daß beim Aufruf eines ex-. ternen Symbols während des Ablaufes eines Programms ein Versuch gemacht wird, die Adresse dieses Symbols aus der ersten Tabelle des gleichen Programms für den betreffenden Befehl zu laden, daß eine Programmunterbrechung erfolgt, wenn die erste Tabelle für das betreffende Symbol noch keine Adresse enthält, daß aufgrund der Programmunterbrechung das Überwachungsprogramm wirksam wird und mit ; dem betreffenden externen Symbol alle, im Speicher vorhan-' denen zweiten Tabellen nach einem gleichnamigen Eingangs- : symbol durchsucht, und daß die Adresse des ermittelten Eingangssymbols in das freie Feld des gleichnamigen externen Symbols der ersten Tabelle übertragen wird, wonach der Lauf des Programms an der Unterbrechungsstelle .mit einem erneuten Versuch, die Adresse des externen Symbols aus der ersten Tabelle zu laden, fortgesetzt wird. - 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Tabelle für jedes aus Eingangssymbol und zugehöriger Adresse bestehendes Element ein MarkierungsfeldDocket GE 971 501 30982Ö/Q32Saufweist, in das ein Benutzungskennzeichen eingespeichert wird, wenn das betreffende Element zum erstenmal zum Aufbau einer Querverbindung benützt wird, und daß die Benutzungskennzeichen als Suchkriterien dienen, wenn die hergestellten Querverbindungen bei Entfernung eines Programms aus dem internen Speicher wieder gelöst werden.
- 3. ■ Verfahren nach Anspruch 1 und 2, dadurch gekennzeichnet,daß bei Entfernung eines Programms aus dem internen Speicher in der zweiten Tabelle des zu entfernenden Programms alle Elemente aufgesucht werden, die ein Benutzungskennzeichen enthalten, daß mit den in diesen Elementen gespeicherten EingangsSymbolen die ersten Tabellen aller anderen im internen Speicher verbleibenden Programme nach gleichnamigen, extern definierten Symbolen durchsucht werden und daß in den ermittelten Elementen der ersten Tabellen die Adresseneintragungen gelöscht werden.
- 4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Programmunterbrechung durch einen bzw. eine ein Laden der Adresse eines extern definierten Symbols aus der ersten Tabelle in ein vom Programm benutztes Register steuernden Befehl bzw. Befehlsfolge ausgelöst wird, wenn die zu ladende Adresse den Wert O enthält.
- 5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß am Kopf der ersten Tabelle ein Kennzeichen gespeichert wird, das für beide Tabellen je ein Indikatorbit enthält zur Anzeige, ob die betreffende Tabelle im Programm signifikante Eintragungen enthält oder nicht.
- 6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daßam Kopf einer jeden Tabelle ein Kennfeld mit der Anzahl " der verfügbaren Tabellenelementö gespeichert wird.Docket GE 971 5Ol 309820/0325
- 7. Verfahren nach einem äer Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die im Überwachungsprogramm gebildete gemeinsame" Adressentabelle in jedem ihrer Elemente eine Programmidentifizierungsangabe und je eine Adresse der zu dieser Programmidentifizierungsangabe gehörigen ersten und zweiten Tabelle enthält.
- 8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß jedes Element der gemeinsamen Adressentabelle für jede ' der in ihm enthaltenen Adressen ein Kennfeld aufweist, in' welches eine Anzeige eingespeichert wird, wenn in die zugehörige erste Tabelle wenigstens eine externe Adresse eingegeben wurde bzw. wenn die zugehörige zweite Tabelle wenigstens einmal benutzt wurde.
- 9.. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die erste und zweite Tabelle am Anfang des Quellenprogramms definiert und beim maschinellen übersetzen im Objektprogramm gebildet wird und daß für die Markierung der Eingangssymbole und der programmextern definierten Symbole innerhalb des Programms hierfür bereits vorhandene Standardbezeichnungen verwendet werden.
- 10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch ge-■ kennzeichnet, daß beim Laden eines Programms in den internen Speicher zunächst geprüft wird, ob sich die Indikatorbits für das Vorhandensein einer ersten und einer zweiten Tabelle im zu ladenden Programm im O-Zustand befinden, daß im Verneinungsfalle das nächste freie Element der gemeinsamen Adressentabelle ermittelt und in dessen Programmidentifizierungsfeld der Name dieses Programmes eingeschrieben wird, daß daraufhin jedes der Indikatorbits einzeln geprüft wird, ob es sich im 1-Zustand befindet, und daß irn Bejaungsfalle die Adresse der ersten und/ oder zweiten Tabelle des Programms in das gleiche Tabellenelement eingespeichert wird.Docket GK 973 50] 30 98 20/032 5 - ,
- 11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß bei der durch den Aufruf eines externen- Symbols verursachten Programmunterbrechung das externe ' Symbol als Suchbegriff gespeichert wird, daß das nächste besetzte Element der gemeinsamen Adressentabelle ermittelt wird, daß geprüft wird, ob dieses Element eine Adresse für eine zweite Tc±>elle enthält, daß im Bejahungsfalle durch Aufsuchen der Elemente dieser Tabelle geprüft wird, ob eines der dort eingetragenen Eingangssymbole identisch ist mit dem gespeicherten externen Symbol ,· und daß im Falle einer Identitätsanzeige die im gleichen Element ent-. haltene, dem Eingangselement zugeordnete Adresse auf das Adressenfeld des externen Symbols in der ersten Tabelle des unterbrochenen Programms übertragen wird.
- 12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß beim Entfernen eines Programms aus dem Hauptspeicher die Elemente mit dem Namen dieses Programms in der gemeinsamen Adressentabelle aufgesucht und gelöscht werden, daß geprüft wird, ob das gefundene Element eine Eintragung im Adressenfeld für die zweite Tabelle enthält und ob die Benutzungsanzeige dieser Adresseneintragungim 1-Zustand ist; daß im Bejahungsfalle beider Prüfungen das Eingangssymbol aus dem betreffenden Element als Such- | . begriff gespeichert und die gemeinsame Adressentabelle unter Verwendung eines Laufwertes nach Elementen durchsucht wird, die eine Eintragung im Adressenfeld für die ersten Tabellen enthalten und deren Benutzungsanzeige für diese Adresseneintragung im 1-Zustand ist, daß das externe Symbol eines jeden Elementes der so ermittalten ersten Tabellen mit dem gespeicherten Eingangssymbol auf Identität verglichen wird und daß im Identitätsfalle im gefundenen Element die dem externen Symbol zugeordnete Adresse gelöscht wird.DochotGE 971 501 3o9g20/032SSAD~ 33 -
- 13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß bei fehlender Identität zwischen dem als Suchbegriff gespeicherten Eingangssymbol und dem in der betreffenden ersten Tabelle gefundenen externen Symbol geprüft wird, ob das Element eine Adresseneintragung enthält, daß im Bejahungsfalle ein Anzeigeschalter in den 1-Zustand gebracht und zur Prüfung des nächsten Elementes übergegangen wird, daß nach Prüfung aller Elemente der Tabelle in der gemeinsamen Adressentabelle die Benutzungsanzeige für die durchsuchte erste Tabelle gelöscht wird, wenn der Anzeigeschalter nicht im 1-Zustand steht, und daß danach eine Inkrementierung des Laufwertes zur Weiterschaltung auf das nächste Element der gemeinsamen Adressentabelle erfolgt.
- 14. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß für die Aufnahme der ersten und zweiten Tabellen und/oder der gemeinsamen Adressentabelle ein oder mehrere schnelle Arbeitsspeicher verwendet werden.Docket GE 97! 501 309β20/0326Leerseite
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19712150506 DE2150506A1 (de) | 1971-10-09 | 1971-10-09 | Verfahren zur herstellung von querverbindungen zwischen programmen von datenverarbeitungsanlagen waehrend der programmausfuehrung |
CA153,268A CA1000410A (en) | 1971-10-09 | 1972-10-04 | Method of cross-referencing data processing programs during execution thereof |
GB4615272A GB1394258A (en) | 1971-10-09 | 1972-10-06 | Stored programme data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19712150506 DE2150506A1 (de) | 1971-10-09 | 1971-10-09 | Verfahren zur herstellung von querverbindungen zwischen programmen von datenverarbeitungsanlagen waehrend der programmausfuehrung |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2150506A1 true DE2150506A1 (de) | 1973-05-17 |
Family
ID=5821972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19712150506 Pending DE2150506A1 (de) | 1971-10-09 | 1971-10-09 | Verfahren zur herstellung von querverbindungen zwischen programmen von datenverarbeitungsanlagen waehrend der programmausfuehrung |
Country Status (3)
Country | Link |
---|---|
CA (1) | CA1000410A (de) |
DE (1) | DE2150506A1 (de) |
GB (1) | GB1394258A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001055845A2 (en) * | 2000-01-28 | 2001-08-02 | Wind River Systems, Inc. | System and method for flexible software linking |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2428834A (en) * | 2005-08-04 | 2007-02-07 | Ibm | Linking objects with graphical user interface items |
-
1971
- 1971-10-09 DE DE19712150506 patent/DE2150506A1/de active Pending
-
1972
- 1972-10-04 CA CA153,268A patent/CA1000410A/en not_active Expired
- 1972-10-06 GB GB4615272A patent/GB1394258A/en not_active Expired
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001055845A2 (en) * | 2000-01-28 | 2001-08-02 | Wind River Systems, Inc. | System and method for flexible software linking |
WO2001055845A3 (en) * | 2000-01-28 | 2002-03-07 | Wind River Systems Inc | System and method for flexible software linking |
US6542167B1 (en) | 2000-01-28 | 2003-04-01 | Wind River Systems, Inc. | System and method for flexible software linking |
Also Published As
Publication number | Publication date |
---|---|
CA1000410A (en) | 1976-11-23 |
GB1394258A (en) | 1975-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2645537C2 (de) | ||
DE69924857T2 (de) | Programm-kode-umwandlung | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE1956604B2 (de) | Datenverarbeitungsanlage | |
DE2145120A1 (de) | Digitales Datenverarbeitungsgerat | |
EP0619667A1 (de) | Verfahren zum Zugriff auf Adressmerkmale von Kommunikationsteilnehmern mit einem ersten Adress Bereich, beim Versenden von Datenpaketen | |
DE2839726A1 (de) | Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE68924719T2 (de) | Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung. | |
DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
DE2801610A1 (de) | Verfahren zum definieren von anfangswerten fuer die textverarbeitung | |
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE68927202T2 (de) | Paralleler Prozessor | |
DE2218839A1 (de) | Verfahren und einrichtung zur zuteilung von speicheradressen zu datenelementen | |
DE3518818A1 (de) | Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen | |
DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
DE2558417A1 (de) | Datenverarbeitungssystem | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE19615683A1 (de) | Verfahren und Steuereinrichtung für eine graphische Steuerung von Abläufen in einem Netzwerkmanagementsystem | |
DE2150506A1 (de) | Verfahren zur herstellung von querverbindungen zwischen programmen von datenverarbeitungsanlagen waehrend der programmausfuehrung | |
DE3025167C2 (de) | Datenverarbeitungseinrichtung | |
DE1487637B2 (de) | Verfahren und anordnung zur wegesuche in mit schalt matrizen aufgebauten koppelfeldern | |
DE19637883B4 (de) | Datenverarbeitungsanlage zur Ausführung großer Programmsysteme | |
DE3215062C2 (de) | Schaltungsanordnung zur Prüfung der Verarbeitbarkeit von Speicheroperanden für logische und dezimale Befehle vor Befehlsausführung | |
DE2261221C2 (de) | Steuerwerk in einer Datenverarbeitungsanlage |