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 programmausfuehrung

Info

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
Application number
DE19712150506
Other languages
English (en)
Inventor
Wilhelm Ploechl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM Deutschland GmbH
Original Assignee
IBM Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IBM Deutschland GmbH filed Critical IBM Deutschland GmbH
Priority to DE19712150506 priority Critical patent/DE2150506A1/de
Priority to CA153,268A priority patent/CA1000410A/en
Priority to GB4615272A priority patent/GB1394258A/en
Publication of DE2150506A1 publication Critical patent/DE2150506A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic 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)
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
Code im Program« P2 (Codeliste 2)
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)
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\χηύ 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)

  1. _ 29 - '
    PATENTANSPRÜCHE
    Verfahren 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. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Tabelle für jedes aus Eingangssymbol und zugehöriger Adresse bestehendes Element ein Markierungsfeld
    Docket GE 971 501 30982Ö/Q32S
    aufweist, 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 Adresseneintragung
    im 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/032S
    SAD
    ~ 33 -
  13. 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. 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/0326
    Leerseite
DE19712150506 1971-10-09 1971-10-09 Verfahren zur herstellung von querverbindungen zwischen programmen von datenverarbeitungsanlagen waehrend der programmausfuehrung Pending DE2150506A1 (de)

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)

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2428834A (en) * 2005-08-04 2007-02-07 Ibm Linking objects with graphical user interface items

Cited By (3)

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