DE4220698A1 - System zur dynamischen verknuepfung modularer abschnitte von computersoftware - Google Patents
System zur dynamischen verknuepfung modularer abschnitte von computersoftwareInfo
- Publication number
- DE4220698A1 DE4220698A1 DE4220698A DE4220698A DE4220698A1 DE 4220698 A1 DE4220698 A1 DE 4220698A1 DE 4220698 A DE4220698 A DE 4220698A DE 4220698 A DE4220698 A DE 4220698A DE 4220698 A1 DE4220698 A1 DE 4220698A1
- Authority
- DE
- Germany
- Prior art keywords
- signal
- software
- block
- global
- module
- 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.)
- Granted
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
Ein Teil der Offenbarung dieser Patentanmeldung enthält
Material, welches dem Urheberrechtsschutz unterliegt. Der
Inhaber des Urheberrechts hat nichts gegen die Reproduktion
mittels Kopieren der Patentanmeldung oder der Patentveröf
fentlichung durch irgend jemand, wie diese in dem Patent
amt, der Amtsakte oder dem Register erscheinen, reserviert
sich ansonsten jedoch sämtliche Urheberrechte.
Die Erfindung betrifft Software und die Steuerung eines
Telekommunikations-Verbindungssystems. Insbesondere betrifft
sie ein Verfahren zur dynamischen Modifizierung von Adres
sierinformation innerhalb eines derartigen Systems.
Häufige Telekommunikations-Vermittlungssystems, deren Be
triebsablauf durch gespeicherte Programme gesteuert wird,
verwenden im allgemeinen einen oder mehrere Rechner, um die
unterschiedlichen Funktionen innerhalb des Systems zu steu
ern. Bei der Organisation derartiger konventioneller, durch
gespeicherte Programme gesteuerter Telekommunikations-Zen
tralen ist es bekannt, jede Zentrale in einzelne Funktions
blöcke zu unterteilen, so daß von jedem Block eine begrenzte
Anzahl von Funktionen durchgeführt wird. Daher erfordert die
Zusammenarbeit zwischen verschiedenen Blöcken die einfachst
möglichen Schnittstellen mit so wenig Nachrichten-Übermitt
lungsschaltungen wie möglich. Die Unterteilung der Software
zum Steuern derartiger Zentralen in diskrete Funktionsblöcke
führt zu einer häufigen Wechselwirkung zwischen diesen Blöc
ken über den Austausch von Softwaresignalen, welche den Fluß
von sowohl Befehlen als auch Daten innerhalb dieses Systems
steuern. Eine Funktionsblock-orientierte, durch gespeicherte
Programme gesteuerte Telekommunikationszentrale ist in dem
US-Patent Nr. 39 69 701 für Hundal beschrieben.
Im allgemeinen treten die Probleme, die mit dem Verknüpfen
und Laden diskreter Softwaremodule in Computersysteme ver
bunden sind, auch bei durch gespeicherte Programme gesteuer
ten Telekommunikationszentralen auf. Zu diesen Problemen
gehören solche, die mit dem Speichern der Programm-Module in
den Hauptspeicher zusammenhängen, was als Laden bezeichnet
wird, und das Kombinieren von Unterprogramm-Modulen zu einem
Verbundprogramm, was als Verknüpfen (Linking) bezeichnet
wird. Das mit diesem Themen zusammenhängende Grundprinzip
ist in einem Artikel mit dem Titel "Linkers and Loaders"
beschrieben, Leon Presser und John White, Computing Surveys,
Band 4, September 1972.
Das grundsätzliche Konzept umfaßt das Erfordernis, daß ver
kettende Programm-Module exakte Adressen in sich aufweisen
müssen, um auf andere Teile zugehöriger Programm-Module
zuzugreifen, die für einen ordnungsgemäßen Betriebsablauf
erforderlich sind. Wenn ein bestimmtes Programm-Modul aus
dem Speicher entfernt und später erneut geladen wird, so
kann es an einem anderen Speicherplatz liegen als an dem,
den es bei seinem vorherigen Aufenthalt inne hatte. Daher
muß vor dem Laden des Moduls irgendein Mechanismus vorhanden
sein, um einen Bezug zu den spezifischen Befehlen innerhalb
des Programms zur Verfügung zu stellen, so daß diese Befehle
durch die anderen Module des Programms geladen werden kön
nen.
Zusätzlich werden Programm-Module, die einen Teil des Be
triebsprogramms der Telekommunikations-Zentrale bilden,
häufig geändert oder vergrößert, um zusätzliche Funktionen
oder Wirkungen zur Verfügung zu stellen, wodurch die Inter
aktion mit anderen Programm-Modulen geändert wird. Beim
Abändern von Programm-Modulen ist es gewöhnlich erforder
lich, Teile der Befehle innerhalb dieses Moduls zuzufügen
bzw. wegzulassen, um das Ziel der Modifikation zu erreichen.
Diese Vorgänge erfordern es, daß die Adressen innerhalb der
spezifischen Module und deren individuelle modifizierte
Komponenten ordnungsgemäß in Betracht gezogen werden, wenn
sie zur Ausführung wiederum in das System geladen werden.
Der Vorgang des Speicherns übersetzter oder kompilierter
Programme in den Hauptspeicher eines Rechners für die Aus
führung ist allgemein als Laden bekannt. Das Laden von Pro
grammbefehlen in den Hauptspeicher aus anderen, sekundären
Speicherquellen oder Orten ist ein notwendiges Erfordernis
für die Ausführung der Software. Es haben sich in Folge der
Tatsache Probleme ergeben, daß einige Programme zu groß
sind, als daß sie vollständig in den Hauptspeicher geladen
werden können, und daß es daher erforderlich ist, während
der Ausführung Teile des Programms aus dem Speicher auszula
gern und wieder einzulagern. Auch aus der Tatsache haben
sich Probleme ergeben, daß Programme nicht immer in den
exakten absoluten Adressenraum zurückgeladen werden bei
jeder Ausführung, und daher müssen die Adressen für Symbole
innerhalb eines bestimmten Programm-Moduls oder Blockes
jedes Mal erneut berechnet werden, wenn der Block ausgeführt
wird.
Ein verwandtes Konzept ist als Verknüpfen (Linken) bekannt.
Das Verknüpfen umfaßt die Kombination von Unterprogrammen zu
einem Verbundprogramm und wurde als ein wertvolles Werkzeug
bei modernen Betriebssystemen akzeptiert, in welchen modu
lare Software einen wesentlichen Teil darstellt. Das Ver
knüpfen kann theoretisch zu irgendeinem von sieben unter
schiedlichen Zeitpunkten durchgeführt werden: zur Source
code-Erzeugungszeit; nach der Code-Erzeugung, jedoch vor dem
Kompilieren oder Übersetzen; zur Zeit der Kompilierung oder
Übersetzung; nach dem Übersetzen, jedoch vor dem Laden; beim
Laden; nach dem Laden, jedoch vor der Ausführung; oder bei
der Ausführung. Weit bekannte Systeme wie beispielsweise das
IBM System/360 und die UNIVAC 9400 führen ein Verknüpfen
nach dem Übersetzen, jedoch vor dem Laden durch. Viele exi
stierende Systeme führen ebenfalls eine Verknüpfung zum
Zeitpunkt des Ladens durch, jedoch begrenzt die Ausführung
der Vorgänge zusammen miteinander die Flexibilität, die
verfügbar ist, wenn die beiden Vorgänge getrennt ausgeführt
werden. Zwar wurde die Möglichkeit des Verknüpfens zur Zeit
der Ausführung erkannt, jedoch wurde angenommen, daß diese
Vorgehensweise, die als Segmentierung bekannt ist, mit zahl
reichen Problemen verbunden ist, beispielsweise mit höheren
Gemeinkosten und der Anforderung, daß die Hardware und Soft
ware hoch integriert sein müssen.
Eine Art des Umgehens mit der Verwaltung von Adressierinfor
mation innerhalb der Komponenten modularer Software besteht
in der Bereitstellung einer globalen Signal-Verteilungsta
belle, die mit den globalen Signalzahlen geladen wird, die
bestimmten Arten von Signalen innerhalb der Software zuge
ordnet sind, zusammen mit den lokalen Signalzahlen korre
spondierender Jobs innerhalb des betreffenden Moduls, wel
ches in die Software geladen wird. Dieses ermöglicht es
jeder globalen Signalzahl oder externen Differenz, eine
globale Signalzahl aufzurufen, so daß diese durch Querver
weis in der Globalsignalzahl-Verteilungstabelle angegeben
ist, um die lokale Signalzahl innerhalb eines bestimmten
Softwareblocks aufzufinden, bevor dieses Signal in einen
Jobpuffer des Prozessors geladen wird, um an einen anderen
Block der Software übertragen zu werden.
Zwar ist ein derartiges Verfahren der Verknüpfung von Vor
gängen innerhalb einzelner Softwareblöcke und zwischen die
sen, und der Verkettung von Adressen innerhalb der verschie
den Software-Module eines Programms effektiv, jedoch weist
es bestimmte inhärente Nachteile auf. Einer dieser Nachteile
besteht darin, daß nach einer erneuten Ladung eines revi
dierten Blocks in das System die Überarbeitung von Signalen,
die vor der Modifikation des Softwareblocks in den Jobpuffer
gebracht wurden, nicht mehr exakt ausgeführt werden kann, da
die lokalen Signalzahlen, die dem modifizierten Block zu
geordnet sind, hätten geändert werden können, als der Block
erneut geladen und die Globalsignal-Verteilungstabelle er
neut beschrieben wurde. Immer dann, wenn ein Modul eines
Programms modifiziert wurde und erneut geladen werden muß,
muß daher sämtliche Information innerhalb des Jobpuffers
gelöscht und dann erneut geladen werden. Wenn der Inhalt der
Globalsignal-Verteilungstabelle in Folge eines Ausladens und
erneuten Ladens eines modifizierten Softwareblocks geändert
wurde, kann dies zusätzlich zu der versehentlichen Verwen
dung einer alten lokalen Signalnummer in dem Jobpuffer füh
ren, was zu der Ausführung einer unrichtigen Befehlsadresse
führt, wenn ein anderes Signal dieser lokalen Signalnummer
in der neuen Version des erneut geladenen Blocks oder Moduls
zugeordnet wurde. Weiterhin empfängt der Software-Benutzer
keine Fehlernachricht, wenn dies auftritt, da die Software
nicht erkennen kann, daß die Befehlsadresse fehlerhaft ist.
Dies kann zu gestörten Ausgangssignalen führen, wenn der
Block vollständig ausgeführt werden kann.
Das Verfahren und das System gemäß der vorliegenden Erfin
dung überwinden diese und andere Nachteile und stellen einen
erhöhten Pegel an Geschwindigkeit und Verläßlichkeit inner
halb modularer Softwaresysteme dadurch zur Verfügung, daß
Adressen innerhalb der Software dynamisch verknüpft werden,
während die einzelnen Software-Module ausgeführt werden.
Gemäß einer Zielrichtung bezieht sich die Erfindung auf das
Verbinden von Adressen individueller Software-Module zur
Zeit der Ausführung dieser Software-Module innerhalb des
Zentralprozessors des Rechnersystems. Bei der Ausführung der
Grundlagen der vorliegenden Erfindung ist gemäß einer be
vorzugten Ausführungsform der Erfindung ein modulares Soft
ware-System, beispielsweise eines, welches in einem Telekom
munikations-Vermittlungssystem verwendet werden kann, so
ausgelegt, daß das Verbinden von Variablen und Signalen
innerhalb der Software bis zu dem Zeitpunkt während der
Ausführung verzögert wird, an welchem ein gegebenes Modul
tatsächlich ausgeführt wird. Diese Vorgehensweise überwindet
frühere Probleme bei modularen Systemen, die es nicht zulie
ßen, daß Modifikationen individueller Software-Module vor
genommen wurden, ohne daß es erforderlich war, daß der ge
samte Satz der Software-Module innerhalb des Softwaresystems
erneut vor der Ausführung verknüpft wurde.
Die Erfindung überwindet ebenfalls die Probleme, die mit der
Existenz begrenzten Speicherraums in dem Hauptspeicher des
Rechnersystems zusammenhängen, der in vielen Fällen zu klein
ist, um den gesamten Softwaresatz aufzunehmen. In einer
derartigen Situation müssen Software-Module in den Speicher
ein- und aus diesem ausgelagert werden, ohne eine Garantie,
daß das Software-Modul bei darauffolgenden Ausführungen
oder Ladungen an denselben physikalischen Adressenraum ge
bunden wird. Dies kann zu einer unrichtigen Bezugnahme loka
ler Adressen innerhalb eines Moduls führen.
Ein Aspekt einer bevorzugten Ausführungsform der vorliegen
den Erfindung umfaßt die Übertragung von Software-Signalen
von einem Modul eines modularen Softwaresystems auf ein
anderes Modul des Softwaresystems durch die Bezugnahme auf
eine lokale Signalnummer für jedes Signal, jeden Vorgang
oder Job, der innerhalb eines gegebenen Moduls auftritt. Auf
derartige lokale Signalzahlen kann in einer globalen Signal-
Verteilungstabelle Bezug genommen werden, welche einen Quer
verweis zwischen globalen Signal- oder Blockzahlen und loka
len Zahlen angibt, die innerhalb dieses Moduls vorhanden
sind. Die lokale Signalnummer und ihre zugeordneten Block
nummern werden in der globalen Signal-Verteilungstabelle
gespeichert oder aktualisiert zu dem Zeitpunkt, wenn das
Modul geladen oder ausgeführt wird, wodurch die voranstehend
angegebenen Probleme vermieden werden.
Ein Aspekt des Verfahrens gemäß der vorliegenden Erfindung
umfaßt die Identifizierung, welches Softwaresignal von
einem Modul an ein anderes übertragen werden soll, und die
Übertragung einer globalen Signalnummer, die diesem Softwa
resignal zugeordnet ist, und einer Blockzahl, die dem Modul
zugeordnet ist, welches das Softwaresignal empfangen soll,
an ein Register innerhalb des Jobpuffers des Systems, der in
der zentralen Verarbeitungseinheit enthalten ist. Sobald
sich die Information innerhalb des Jobpuffers befindet,
weist sie eine zugeordnete Priorität auf, und wird daraufhin
entsprechend dieser Priorität ausgeführt. Erreicht das Si
gnal die Spitze der Jobpuffer-Warteschlange und wird dann
ausgeführt, so wird auf die globale Signal-Verteilungstabel
le zugegriffen, um die zugeordnete Signalzahl in dem Emp
fangsmodul oder Empfangsblock zu erhalten. Dies wird durch
Kombinieren der globalen Signalzahl mit der Zahl erreicht,
die dem empfangenden Block zugeordnet ist. Schließlich zeigt
die lokale Signalzahl zu einer Befehlsadresse in dem empfan
genden Block, welche wiederum zu einem Befehl innerhalb des
empfangenen Blocks zeigt, der ausgeführt werden soll.
Zwar mag auf den ersten Blick dieses Verfahren der Adres
sierung und der Kommunikation ziemlich kompliziert erschei
nen, jedoch weist es mehrere wichtige Vorteile auf. Es er
laubt es einem Programm, irgendwo innerhalb des Programm
speichers des Systems gespeichert zu werden, ohne irgend
etwas zu beeinflussen, abgesehen von dem Wert, der in dem
Referenzspeicherplatz als die Programm-Startadresse für die
ses Modul gespeichert ist. Weiterhin kann eine Programmfolge
oder ein Job irgendwo innerhalb eines Softwareblocks ange
ordnet werden, ohne irgendetwas zu beeinflussen, abgesehen
von der Adresse in der Signal-Verteilungstabelle. Alle diese
Vorteile führen dazu, daß das Softwaresystem einfacher zu
nutzen ist und weniger anfällig für Befehlsfehler ist, die
häufig durch den menschlichen Benutzer nicht feststellbar
sind.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird
bei dem Vorgang der Übertragung von Signalen zwischen Soft
ware-Modulen oder -blöcken auch auf Daten und Parameter zu
gegriffen, die dem Softwaresignal oder -job zugeordnet sind,
und diese Daten und Parameter werden zusammen mit dem Soft
waresignal an den empfangenden Block zur Ausführung überge
ben. Dies wird dadurch erreicht, daß Bezug genommen wird auf
die Basis-Startadresse, die dem sendenden Block zugeordnet
und in dem Referenzspeicher des Systems gespeichert ist.
Diese Basis-Startadresse erlaubt dann einen Zugriff auf den
Abschnitt des Datenspeichers, in welchem die dem Softwaresi
gnal zugeordneten Daten gespeichert sind. Diese Art eines
Bezugnahme-Schemas erlaubt es daher, die Anzahl von Varia
blen pro Block vollständig flexibel zu halten, da nur die
Größe der Basisadressen-Tabelle beeinflußt wird.
Die Erfindung wird nachstehend anhand zeichnerisch darge
stellter Ausführungsbeispiele näher erläutert, aus welchen
weitere Vorteile und Merkmale hervorgehen. Es zeigt:
Fig. 1 eine diagrammartige Darstellung der Art und Weise,
auf welche Adressierinformation für modulare Soft
wareblöcke in einem Computerprogramm in einem Re
ferenzspeicher gespeichert wird;
Fig. 2 eine diagrammartige Darstellung der Art und Weise,
auf welche Programmbefehle und zugeordnete Adres
sierinformation innerhalb modularer Softwareblöcke
eines Computerprogramms gespeichert werden;
Fig. 3 eine diagrammartige Darstellung der Art und Weise,
auf welche individuelle Jobs innerhalb modularer
Softwareblöcke adressiert werden;
Fig. 4 eine diagrammartige Darstellung der Art und Weise,
auf welche modularen Softwareblöcken zugeordnete
Daten in einem Datenspeicher gespeichert werden;
Fig. 5 eine diagrammartige Darstellung der Art und Weise,
auf welche unterschiedliche Programm- und Daten
adressen innerhalb eines modularen Softwaresystems
behandelt werden;
Fig. 6 eine diagrammartige Darstellung der Art und Weise,
auf welche Softwaresignale von einem Block modula
rer Software zu einem anderen Block modularer
Software geschickt werden;
Fig. 7 eine diagrammartige Darstellung der Art und Weise,
auf welche Softwaresignale, die zeitweilig in ei
nem Jobpuffer eines zentralen Prozessors festge
halten werden, durch die Betriebssystem-Software
behandelt werden;
Fig. 8 eine diagrammartige Darstellung der Art und Weise,
auf welche modulare Softwareblöcke entsprechend
dem System gemäß der vorliegenden Erfindung dyna
misch verknüpft werden; und
Fig. 9 ein Flußdiagramm zur Erläuterung des Betriebsab
laufs des Verfahrens des Systems gemäß der vorlie
genden Erfindung.
Die Steuerung einer Telekommunikations-Zentrale kann auf
eine Anzahl unterschiedlicher Arten organisiert sein. Wenn
das System allerdings in verschiedene Funktionsblöcke unter
teilt wird, so findet die Zusammenarbeit zwischen den unter
schiedlichen Blöcken durch den Zentralprozessor des Systems
statt. Um die Anordnung und die Identifizierung der ver
schiedenen Funktionsblöcke innerhalb der Software zu er
leichtern, wird im allgemeinen jedem Block eine eindeutige
Zahl zugeteilt. Eine typische Vermittlung (Zentrale) enthält
im allgemeinen zwischen 300 und 500 Funktionsblöcke.
Das Gesamtsystem weist typischerweise mehrere unterschiedli
che Speicherbereiche auf, in welchen unterschiedliche Aspek
te des Software-Steuersystems gespeichert sind. In Fig. 1
sind zwei derartige Bereiche gezeigt, die einen Programm
speicher (PS) umfassen, der den Code enthält, der die Be
triebsbefehle oder -Schritte der Software aufweist, die ent
sprechend der Blockzahl angeordnet sind. Entsprechend wird
ein unterschiedlicher Bereich, der als der Referenzspeicher
(RS) bekannt ist, dazu verwendet, bestimmte Adressierparame
ter zu speichern, die für den Zugriff auf den Programmspei
cher verwendet werden. Beispielsweise beginnt in Fig. 1 der
Abschnitt des Programms, welcher den Block XX in dem Pro
grammspeicher enthält, an einer Programm-Startadresse (PSA)
in dem Programmspeicher, und diese PSA wird als ein diskre
tes Wort, welches dem Block XX zugeordnet ist, in den Refe
renzspeicher geschrieben. Dies bedeutet, daß die Start
adresse des Programms die Adresse angibt, an welcher der
Block in dem Programmspeicher beginnt, und daß die Blockzahl
(BN) dazu verwendet wird, dieses Wort in dem Referenzspei
cher zu adressieren. Daher hat jeder Block im System seinen
eigenen Bereich in dem Referenzspeicher, der eine Tabelle
aufweist, die als die Referenztabelle bezeichnet wird.
Ein Funktionsblock kann gewöhnlich eine große Anzahl von
Tätigkeiten oder "Jobs" durchführen, und jeder Job wird
durch Senden eines Signals zu dem geeigneten Block eingelei
tet. Um das Auffinden eines gewünschten Jobs innerhalb eines
gewünschten Blocks zu erleichtern, wird jedem Signal eine
individuelle Zahl zugeteilt, welche als die Signalort- und
lokale Signalzahl (LSN) bezeichnet wird. Zur Einleitung
eines Jobs innerhalb eines bestimmten Blocks sind sowohl
eine Blockzahl als auch eine lokale Signalzahl erforderlich,
und diese beiden Elemente bilden zusammen etwas, was als ein
Softwaresignal bezeichnet wird, normalerweise abgekürzt als
BN+LSN.
Wie aus Fig. 2 hervorgeht, ist dort schematisch ein Ab
schnitt des Programms innerhalb des Programmspeichers darge
stellt, welcher als Teil des Blockes XX sowohl die Programm
information als auch eine Signal-Verteilungstabelle (SDT)
aufweist. In jede Position der Signal-Verteilungstabelle
wird eine diskrete Adresse eingeschrieben. Diese Adresse,
die immer relativ zur Programm-Startadresse des Blocks ist,
gibt an, wo innerhalb des Programms die unterschiedlichen
Jobs beginnen. Dies führt dazu, daß die absolute Adresse
eines Jobs die Startadresse des Blocks (PSA) plus die in der
Signal-Verteilungstabelle angegebene Adresse umfaßt. Wie aus
Fig. 3 hervorgeht, ist dort eine Erläuterung der Adressie
rung eines bestimmten Jobs innerhalb des Programms darge
stellt, wobei die Adresse des Anfangs des Blocks, der den
gewünschten Job enthält, mit der Adresse kombiniert wird,
die in der Signal-Verteilungstabelle angegeben ist, entspre
chend der lokalen Signalzahl des Jobs, um die bestimmte
Adresse innerhalb des Blocks zu ereichen, welcher die Soft
ware zur Ausführung dieses Jobs enthält.
Um einen bestimmten Job auszuführen, muß die Software in
nerhalb eines Blocks Daten adressieren können. In Systemen
der momentan beschriebenen Art kann ein Block nur seine
"eigenen′′ Daten adressieren, also Daten, auf die er selektiv
zugreifen kann. Zur Erläuterung der Art und Weise, auf wel
che Daten, die sich auf den Betriebsablauf eines programm
gesteuerten Telekommunkations-Vermittlungssystems der vor
liegenden Art beziehen, in einem anderen Bereich des Spei
chers gespeichert werden, der als der Datenspeicher bezeich
net wird, wird angenommen, daß vier Geräte einer bestimmten
Art vorhanden sind, die mit einem Gruppenschalter verbunden
sind. Diese Geräte bilden eine Teil eines Blockes X inner
halb des Systems, dessen Daten bestimmte Information über
die vier Geräte enthalten. Weiterhin wird angenommen, daß
die folgende Information für jedes der vier Geräte gespei
chert werden muß:
- a) der Zustand des Geräts;
- b) wo das Gerät mit dem Gruppenschalter verbunden ist; und
- c) der Wert eines Störungszählers, welcher die Beaufsich tigungs-Information über das Gerät überwacht.
Daher braucht der Block drei Variable. Aus Fig. 4 läßt sich
ersehen, daß anstelle der Identifizierung eines bestimmten
Wortes oder einer bestimmten Adresse innerhalb des Daten
speichers für jedes Gerät, und Speicherung aller drei Varia
bler, die diesem Gerät entsprechen, an diesem Ort das System
die Daten so organisiert hat, daß sämtliche dem Zustand der
vier Geräte zugeordnete Daten an einem Ort gruppiert sind,
die Verbindung der vier Geräte an einem anderen Ort, und der
Störungszähler aller vier Geräte an dem dritten Ort. Diese
Orte werden als Variablen-Blöcke bezeichnet. Die jedem ein
zelnen Gerät zugeordneten bestimmten Daten werden innerhalb
dieses Ortes identifiziert.
Das System muß bestimmte Betriebsabläufe durchführen, um die
Variable aufzufinden, die es braucht, und führt dies mit
Hilfe von zusätzlicher Information durch, welche in dem
Referenzspeicher gespeichert ist. Sämtliche Variable eines
bestimmten Blocks haben eine Tabelle innerhalb des Referenz
speichers, welche als die Basis-Adressentabelle bezeichnet
wird. Die Funktionen dieser Tabellen schließen das Speichern
von Information ein, welche anzeigt, wo in dem Datenspeicher
die für einen bestimmten Block erforderlichen Variablen sich
befinden. Jeder Variablen innerhalb eines Blockes wird eine
Zahl zugeteilt, die als ein Zeiger innerhalb der Basis-
Adressentabelle des Blocks verwendet wird. Die Basis-Adres
sentabelle innerhalb des Referenzspeichers wird mit Hilfe
eines Wortes aufgefunden, welches als die Basis-Startadresse
(BSA) bezeichnet wird, in der Referenztabelle des Referenz
speichers angegeben (in derselben Tabelle, die die Programm-
Startadresse für diesen bestimmten Block in dem Programm
speicher enthielt). Das Wort, welches die Speicherposition
oder Startadresse des Variablen-Blocks innerhalb des Daten
speichers angibt, wird als eine Wortadresse (WA) bezeichnet,
wie in Fig. 5 erläutert. Daher werden Daten für einen Job
innerhalb eines Blockes dadurch gefunden daß die Basis-
Adressentabelle für diesen Block (die an der Basis-Start
adresse für diesen Block beginnt) ermittelt wird, und dann
die Wortadresse innerhalb des Datenspeichers, in welchem
sich die Daten befinden, ermittelt wird.
Das voranstehend angegebene Software-Adressierschema führt
zu einer Anzahl von Vorteilen. Hierzu gehört die Tatsache,
daß ein Programm irgendwo in dem Programmspeicher gespei
chert werden kann, ohne irgendetwas zu beeinflussen, abge
sehen von der Programm-Startadressen und dem Referenzspei
cher. Zusätzlich kann eine einen Job umfassende Programm
sequenz irgendwo in einem Block angeordnet werden, ohne
irgendetwas zu beeinflussen, mit der Ausnahme der Adresse
der Signal-Verteilungstabelle dieses Blocks. Zusätzlich ist
die Anzahl der Variablen für jeden Block vollständig flexi
bel, und es wird nur die Größe der Basis-Adressentabelle
beeinflußt, die diesem Block zugeordnet ist. Schließlich
kann die Anzahl der Geräte einfach erhöht oder verringert
werden, da der Variablen-Block zu einem freien Bereich in
dem Datenspeicher bewegt werden kann, und nur die Wortadres
se der Daten beeinflußt wird.
Bei der Verwendung eines Software-Adressiersystems der vor
anstehend beschriebenen Art ist es häufig erforderlich, ein
Signal von einem Software-Block an einen anderen Software
block zu schicken. Beispielsweise kann ein Überwachungsblock
häufige Aktualisierungen der Anzahl von Störungen erfordern,
die innerhalb eines Schalters aufgetreten sind, und daher
eine häufige Aktualisierung des Wertes des Störungszählers
eines bestimmten Blocks. Der anfordernde Block fordert da
durch Information an, daß er ein Softwaresignal an den Block
sendet, von welchem die Information kommen muß. Der Zentral
prozessor führt die Übertragung derartiger Information da
durch durch, daß er ein Softwaresignal von dem Überwachungs
block an den Block schickt, der die Störungszähler enthält
(Block X). Die Werte der Zähler werden abgelesen und in
einem Softwaresignal an den Überwachungsblock zurückge
schickt. Bevor die Signalübertragung ausgeführt wird, werden
die Werte in den Registerspeicher (RM) gebracht, innerhalb
der zentralen Verarbeitungseinheit angeordnet und für eine
Standard-Datenübertragung zwischen den Blöcken verwendet.
Die globalen Signalzahlen des Signals für den Anforderungs
block (Block Y) werden in dem Block X innerhalb der Tabelle
gespeichert, die als die Signalsendetabelle (SST) bezeichnet
wird. Die Blockzahl wird in einem Register gespeichert. In
Fig. 6 ist gezeigt, wie ein Signal von dem Block Y, der
Daten anfordert, in bezug auf die Signal-Verteilungstabelle
des Blocks gesetzt wird und daher zu der Jobadresse inner
halb des Blocks, der dann ein Softwaresignal (BNR+GSN) in
nerhalb der Signalsendetabelle dieses Blockes anordnet.
Diese Information wird an den Registerspeicher zusammen mit
den zugeordneten, angeforderten Daten von dem Datenspeicher
geschickt. Dann enthält der Registerspeicher ein Softwaresi
gnal und dessen zugeordnete Daten, die von dem Block Y ange
fordert wurden.
Bei dem Betriebssystem eines programmgesteuerten Vermitt
lungssystems der vorliegenden Art ordnet der Zentralprozes
sor unterschiedliche Jobs, die durchgeführt werden sollen,
in einer Schlange an und nimmt sie in einer ordnungsgemäßen
Reihenfolge entsprechend einer Priorität an, die der Aus
führung dieses Jobs zugeordnet wurde. In Fig. 7 sind mehrere
Jobpuffer (JBA-JBD) gezeigt, die unterschiedliche Priori
tätsgrade für die Ausführung aufweist. Die Puffer für Pro
gramme zur Handhabung der Verkehrsdichte innerhalb des Ver
bindungssystems, JBA-JBB weisen die höchste Priorität auf,
wogegen Puffer, die dem Betriebs- und Ladungsprogramm zu
geordnet sind, nämlich JBC-JBD die niedrigste Priorität
aufweist. Wenn daher die Priorität des bestimmten Jobs auf
tritt, die der Übertragung der Daten zugeordnet wurde, die
von dem Block Y angefordert wurden, von dem Registerspeicher
zu dem Block Y, und zwar in den Puffer C, welchem dieser Job
zugeordnet wurde, so führt das Betriebssystem die Übertra
gung durch und schickt die Softwaresignale zusammen mit den
Daten von dem Registerspeicher zu dem Block Y, der dies
angefordert hat.
In Fig. 8 ist eine schematische Darstellung der Übertragung
von Softwaresignalinformation innerhalb eines modularen
Softwaresystems gemäß der vorliegenden Erfindung gezeigt.
Ein Block modularer Software 51, der als Block A bezeichnet
ist, weist mehrere Abschnitte auf, einschließlich eines
Programmcode-Auflistungsabschnitts 52, einer Signal-Vertei
lungstabelle 53 und einer Softwaresignal-Sendetabelle 54.
Zusätzlich weist ein Jobpuffer 57 mehrere Register 56 auf,
in denen zeitweilig Softwaresignale gespeichert werden, die
eine Bearbeitung durch den Zentralprozessor erwarten, die
erforderlich ist, um diese Signale beispielsweise einem an
fordernden Softwareblock zuzuführen. Ein weiterer Software
block, der Block B61, weist ebenfalls einen Programmcode-
Auflistungsabschnitt 62 und eine Signal-Verteilungstabelle
63 auf. Die dargestellte Ausführungsform der Erfindung um
faßt weiterhin eine globale Signal-Verteilungstabelle 64,
innerhalb derer eine Auflistung sämtlicher zentraler Signal
zahlen für die jeweiligen Signale aufrechterhalten wird, die
in jedem Block der in das System geladenen Software enthal
ten sind.
Wie voranstehend kurz erwähnt wurde, stellt die globale
Signal-Verteilungstabelle 64 ein wesentliches Element für
die Aufrechterhaltung der Verknüpfungsadressen unter unter
schiedlichen Software-Modulen dar. Die globale Signal-Ver
teilungstabelle 64 hält die Querverweise zwischen den globa
len Signalzahlen, die bestimmten Signalen entsprechen, die
von einem Modul oder Block zu einem anderen geschickt wer
den, und den lokalen Signalzahlen aufrecht, die jedem dieser
Signale innerhalb jedes einzelnen Blocks in dem System ent
sprechen. Wenn ein Softwareblock in das System geladen wird,
so wird der Abschnitt der globalen Signal-Verteilungstabelle
64, der diesem Block entspricht, erneut so eingeschrieben,
daß er eine lokale Signalzahl für jedes Signal enthält, wel
ches innerhalb des Software-Blocks enthalten ist. Dies wird
konventionellerweise dadurch vorgenommen, daß die globale
Signalzahl dieses bestimmten Signals und der Blockzahl des
Software-Blocks kombiniert wird, der dieses Signal enthält,
über einen exklusiven ODER-Vorgang oder ein anderes Kombina
tionsverfahren. Wenn daher ein Software-Block aus dem System
entfernt wird, geändert oder auf irgendeine Weise vergrö
ßert, die zu Änderungen der individuellen Signale innerhalb
des Blocks führen, so muß dieser Abschnitt der Softwaresi
gnal-Verteilungstabelle neu geschrieben werden, um den neuen
Inhalt von Signalen innerhalb des Blocks wiederzuspiegeln,
und eine neue Berechnung lokaler Signalzahlen für jedes
dieser Signale innerhalb des Blocks.
Wie in Fig. 8 gezeigt ist, wird ein Softwaresignal S1 von
dem Block A51 zu dem Block B61 geschickt. Der Block B61 wird
als der empfangende Block bezeichnet, wogegen der Block A51
als der sendende Block bezeichnet wird. Die Blockzahl des
empfangenden Blocks wird ebenfalls als die BNR bezeichnet.
Das System soll das gewünschte Signal S1 an den empfangenden
Block schicken und zuerst die globale Signalzahl für das
Signal des S1 dadurch erhalten, daß auf die Signalsendeta
belle 54 des Blocks A51 zugegriffen wird, über seine Adres
se, welche die Programm-Startadresse des Blocks A51 (PSAA)
umfaßt sowie den Wert des Signalsendezeigers (SSP). Sobald
die globale Signalzahl für S1 erhalten wird, wird sie direkt
in ein Register 56 innerhalb des Jobpuffers 55 geladen und
wartet auf eine Übertragung zu dem Block B entsprechend der
Prioritätsvereinbarungen der zentralen Verarbeitungseinheit
und der Priorität, die dem betreffenden Signal, welches
übertragen wird, zugeordnet ist. Während dieser Zeit wurde
die Information in Form der globalen Signalzahl von S1 und
der Blockzahl des empfangenden Blocks aufbewahrt. Sobald der
Signalübertragungsvorgang einen ausreichenden Prioritäts
pegel für die Ausführung der Übertragung erreicht hat,
greift das System auf die globale Signal-Verteilungstabelle
34 zu, um die lokale Signalzahl von S1 in dem Block B61 zu
erhalten. Dies wird dadurch durchgeführt, daß in die globale
Signal-Verteilungstabelle 64 mit der Adresse hineingegangen
wird, die durch Auswahl der globalen Signalnummer gefunden
wurde, und eine exklusive ODER-Operation dieses Wertes mit
der Blockzahl BNR durchgeführt wird. Innerhalb dieser Tabel
le wird an dieser Adresse die lokale Signalnummer für S1 in
dem Block B61, dem empfangenden Block, gefunden.
Sobald die lokale Signalzahl für S1 in dem Block B61 erhal
ten wurde, geht dann das System in den Block B61 dadurch
hinein, daß es die Befehlsadresse IA66 innerhalb des Blocks
B61 auffindet, in welchen das Signal eingegeben werden soll
te. Dies wird dadurch durchgeführt, daß von der Signal-Ver
teilungstabelle 63 des Blockes B61 die Programm-Startadresse
des Blockes B61 genommen wird (PSAB) minus der lokalen Si
gnalzahl innerhalb des Blockes B61, um die Befehlsadresse 66
zu lesen. Sobald die Befehlsadresse 66 erhalten wurde, wird
das Signal S1 in dem Block B61 eingegeben, und die Übertra
gung ist vollständig. Daher beginnt der Befehl, der sich an
der IA66 befindet, mit der Ausführung.
Der Betriebsablauf des Systems gemäß der vorliegenden Er
findung weist eine Anzahl von nützlichen Eigenschaften und
Vorteilen gegenüber dem System nach dem Stand der Technik
auf, bei welchem zuerst die lokale Signalzahl von der globa
len Signal-Verteilungstabelle 64 erhalten wird und dieser
Wert in den Jobpuffer 55 eingegeben wird. Nachdem revidierte
Softwareblöcke wiederum in das System geladen wurden, kann
zuerst die Bearbeitung von Signalen immer noch durchgeführt
werden, die in den Jobpuffer vor der Modifizierung und dem
erneuten Laden des Blocks geladen wurden. Dies bedeutet, daß
die in den Jobpuffer 55 geladenen Informationen, bevor der
Block modifiziert wurde, nach der Modifizierung immer noch
gültig sind, und daß der Jobpuffer nicht aktualisiert oder
gelöscht werden muß, bevor der Block wiederum geladen wird.
Wenn Signaleintrittspunkte entfernt wurden und die revidier
te Version eines empfangenden Blocks, sowie ein Signal in
dem Jobpuffer, welches sich auf diesen Punkt bezieht, be
arbeitet wird, ermittelt darüber hinaus das Betriebssystem
einen fehlenden Eintrag in der globalen Signal-Verteilungs
tabelle 64, anstatt möglicherweise eine fehlerhafte Ausfüh
rung an einer unrichtigen Befehlsadresse innerhalb des Pro
gramms zu beginnen. Darüber hinaus können Signaleintritts
punkte in der revidierten Version des empfangenden Punkts
erneut lokalisiert werden, und bei einem erneut aufgefunde
nen Signal wird sich die lokale Signalzahl und die globale
Signal-Verteilungstabelle 64 geändert haben, und die globale
Signal-Verteilungstabelle 64 wird mit dieser lokalen Signal
zahl aktualisiert. Wenn Signale zu diesem Eintrittspunkt in
den Jobpuffer verarbeitet wurden, so wird die korrekte loka
le Signalzahl aus der globalen Signal-Verarbeitungstabelle
64 durch das Betriebssystem erhalten, wodurch mögliche Feh
ler ausgeschaltet werden.
Eine Tatsache muß in Verbindung mit der Anwendung des Sy
stems der vorliegenden Erfindung berücksichtigt werden, und
dies ist die Tatsache, daß bei der Modifizierung eines Co
des, der einen Signaleintrittspunkt in einem Block beein
flußt, berücksichtigt werden muß, daß dann, wenn die Daten
strukturen modifiziert werden, Aufrufe dieses neuen oder
modifizierten Codes alte Parameterwerte erreichen können,
beispielsweise Signaldaten, die das Signal in dem Jobpuffer
begleiten, welche Adressen und/oder Daten in dem Format der
Datenstruktur enthalten, die vor der Modifizierung verwendet
wurde. Wenn andererseits der Block zum Zeitpunkt der erneu
ten Ladung des frisch modifizierten Softwareblocks Rück
kehradressen aufweist, so werden die lokalen Signalzahlen
auf den Rückkehradressenstapeln, die zwischen der alten und
der neuen Version modifiziert wurden, durch das Betriebs
system aktualisiert.
Wie in Fig. 9 gezeigt wird, einem Flußdiagramm des Verfah
rens gemäß der vorliegenden Erfindung, nämlich des Signal
sendebefehls im Schritt 17, beginnt ein innerhalb der zen
tralen Bearbeitungseinheit (CPU) enthaltenes Mikroprogramm
mit dem Signalübertragungsvorgang durch Einlesen der globa
len Signalzahl von S1 von dem SST54 des Blocks A51. Das
SSI70 fügt dann Signale in die Warteschlange des Jobpuffers
55 in dem Schritt 71 ein, und schreibt die GSN und die BNR
in den Jobpuffer 55 ein. Daraufhin bearbeitet das Betriebs
system 72 das Signal S1 von dem Block A51 zu dem Block B61
in dem Schritt 72 durch Lesen der globalen Signalzahl des
Signals und der BNR von dem Jobpuffer 55, und durch Lesen
seiner lokalen Signalzahl in dem Block B61 aus der globalen
Signal-Verteilungstabelle 64. Daraufhin wird der IA66-Ein
trittspunkt in dem Block B61 aus dem SDT63 des Blockes B61
in dem Schritt 73 gelesen, und der sich an diesem Punkt
befindende Befehl beginnt mit der Ausführung in dem Schritt
74. Der Vorgang legt das nächste zu bearbeitende Signal in
dem Schritt 75 fest, der dann für andere, darauffolgende
Signale wiederholt wird, die eine Übertragung zwischen Blöc
ken innerhalb des Systems erfordern.
Nachstehend ist ein Abschnitt eines Pseudo-Codes angegeben,
der zur Implementierung der Programmlogik für das Laden und
die Aufrechterhaltung des GSTT verwendet werden kann, wenn
ein revidierter Block erneut in das System geladen wird,
entsprechend dem erfindungsgemäßen System. Aus dieser Schil
derung sollte deutlich werden, wie der tatsächliche Code
geschrieben werden würde, um die vorliegende Erfindung zu
implementieren und zu verdeutlichen.
Es wird daher angenommen, daß der Betriebsablauf und die
Konstruktion der vorliegenden Erfindung aus der voranstehen
den Diskussion deutlich werden. Zwar wurden das Verfahren,
die Vorrichtung und das System, welche gezeigt und beschrie
ben wurden, als bevorzugt gekennzeichnet, jedoch ist es
selbstverständlich, daß hierin unterschiedliche Änderungen
und Modifikationen vorgenommen werden können, ohne von dem
Wesen und dem Umfang der Erfindung abzuweichen, die sich aus
der Gesamtheit der Anmeideunterlagen ergeben.
Claims (16)
1. Verfahren zur Übertragung von Softwaresignalen von
einem ersten Modul eines modularen Softwaresystems zu
einem zweiten Modul des Softwaresystems, bei welchem
eine lokale Signalzahl für jeden Vorgang in einer glo
balen Signal-Verteilungstabelle gespeichert ist, die
einen Querverweis zwischen der lokalen Signalzahl und
einer globalen Signalzahl angibt, wobei die globale
Signal-Verteilungstabelle zum Zeitpunkt des Ladens des
Softwaremoduls aktualisiert wird, mit folgenden Schrit
ten:
Identifizierung eines Softwaresignals, welches von dem ersten Modul zu dem zweiten Modul übertragen werden soll;
Übertragung einer globalen Signalzahl, die dem Softwa resignal zugeordnet ist, zusammen mit einer Blockzahl, die dem zweiten Modul zugeordnet ist, an ein Register innerhalb eines Jobpuffers einer zentralen Verarbei tungseinheit, die den Betrieb des Softwaresystems lei tet;
Zugriff auf die globale Signal-Verteilungstabelle, um die lokale Signalzahl zu erhalten, welche der globalen Signalzahl des Softwaresignals innerhalb des zweiten Moduls entspricht; und
Übertragung der lokalen Signalzahl an die Anforderungs adresse innerhalb des zweiten Moduls.
Identifizierung eines Softwaresignals, welches von dem ersten Modul zu dem zweiten Modul übertragen werden soll;
Übertragung einer globalen Signalzahl, die dem Softwa resignal zugeordnet ist, zusammen mit einer Blockzahl, die dem zweiten Modul zugeordnet ist, an ein Register innerhalb eines Jobpuffers einer zentralen Verarbei tungseinheit, die den Betrieb des Softwaresystems lei tet;
Zugriff auf die globale Signal-Verteilungstabelle, um die lokale Signalzahl zu erhalten, welche der globalen Signalzahl des Softwaresignals innerhalb des zweiten Moduls entspricht; und
Übertragung der lokalen Signalzahl an die Anforderungs adresse innerhalb des zweiten Moduls.
2. Verfahren nach Anspruch 1, bei welchem der Schritt des
Zugriffs auf die globale Signal-Verteilungstabelle, um
die lokale Signalzahl des Softwaresignals zu erhalten,
unmittelbar vor der Übertragung des Signals von dem
Jobpuffer an das zweite Modul vorgenommen wird.
3. Verfahren in einem Softwaresystem, welches mehrere
Blöcke aufweist, von denen jeder einen Codeabschnitt,
eine Signal-Verteilungstabelle und eine Signalsendeta
belle aufweist, und in welchem ein Softwaresignal von
einem ersten Block zu einem zweiten Block durch einen
Blockpuffer einer zentralen Verarbeitungseinheit über
tragen werden soll, die den Betrieb des Softwaresystems
leitet, mit folgenden Schritten:
Verknüpfung der lokalen Adresse des Softwaresignals in dem zweiten Block mit dem Softwaresignal unmittelbar vor der Übertragung des Softwaresignals von dem Jobpuf fer an den zweiten Block und folgend auf das Laden des Softwaresignals in den Jobpuffer von dem ersten Block.
Verknüpfung der lokalen Adresse des Softwaresignals in dem zweiten Block mit dem Softwaresignal unmittelbar vor der Übertragung des Softwaresignals von dem Jobpuf fer an den zweiten Block und folgend auf das Laden des Softwaresignals in den Jobpuffer von dem ersten Block.
4. Verfahren nach Anspruch 3, bei welchem die Übertragung
des Softwaresignals von dem Jobpuffer zu dem zweiten
Block folgende Schritte umfaßt:
Zugreifen auf eine globale Signalzahl des Softwaresi gnals und einer Zahl, die dem zweiten Block von dem Jobpuffer zugeordnet wird;
Zugreifen auf eine lokale Signalzahl des Softwaresi gnals innerhalb des zweiten Blocks;
Ermittlung eines Befehlsadressen-Eintrittspunktes für das Softwaresignal in dem zweiten Block; und
Beginn der Ausführung an der Befehlsadresse in dem zweiten Block.
Zugreifen auf eine globale Signalzahl des Softwaresi gnals und einer Zahl, die dem zweiten Block von dem Jobpuffer zugeordnet wird;
Zugreifen auf eine lokale Signalzahl des Softwaresi gnals innerhalb des zweiten Blocks;
Ermittlung eines Befehlsadressen-Eintrittspunktes für das Softwaresignal in dem zweiten Block; und
Beginn der Ausführung an der Befehlsadresse in dem zweiten Block.
5. Verfahren nach Anspruch 3, bei welchem das Laden des
Softwaresignals in dem Jobpuffer dadurch durchgeführt
wird, daß auf eine globale Signalzahl und eine Zahl
zugegriffen wird, die dem Softwaresignal von der Si
gnalsendetabelle zugeordnet wird, und daß die globale
Signalzahl und eine dem zweiten Block zugeordnete Zahl
in den Jobpuffer eingeschrieben werden.
6. Rechner mit einem Zentralprozessor, einem Referenzspei
cher, einem Programmspeicher, einem Datenspeicher,
einem Registerspeicher, einem Jobpuffer, einem Be
triebssystem und einer globalen Signal-Verteilungsta
belle, dadurch gekennzeichnet, daß der Rechner folgende
Software aufweist:
eine Einrichtung zum Unterteilen der Funktionen der Rechnersoftware in Funktionsblöcke, wobei jeder Funk tionsblock einen Programmspeicherort und eine Basis- Startadresse aufweist;
eine Einrichtung zum Speichern des Programmspeicherorts und der zugeordneten Basis-Startadresse der Funktions blöcke in einem Referenzspeicher;
eine Einrichtung zum Einleiten von Jobs innerhalb der Funktionsblöcke, wobei Jobs unter Verwendung der Pro grammspeicherposition und der Basis-Startadresse begon nen werden, die in dem Referenzspeicher und einem Job puffer gespeichert sind.
eine Einrichtung zum Unterteilen der Funktionen der Rechnersoftware in Funktionsblöcke, wobei jeder Funk tionsblock einen Programmspeicherort und eine Basis- Startadresse aufweist;
eine Einrichtung zum Speichern des Programmspeicherorts und der zugeordneten Basis-Startadresse der Funktions blöcke in einem Referenzspeicher;
eine Einrichtung zum Einleiten von Jobs innerhalb der Funktionsblöcke, wobei Jobs unter Verwendung der Pro grammspeicherposition und der Basis-Startadresse begon nen werden, die in dem Referenzspeicher und einem Job puffer gespeichert sind.
7. Rechnersoftware nach Anspruch 6, dadurch gekennzeich
net, daß weiterhin eine Einrichtung zur Erzeugung und
Speicherung globaler Signalzahlen für die Softwaresi
gnale vorgesehen ist, die innerhalb der Funktionsblöcke
enthalten sind; und
daß eine Einrichtung zur Bezugnahme auf lokale Signal zahlen vorgesehen ist, die den Softwaresignalen zuge ordnet sind.
daß eine Einrichtung zur Bezugnahme auf lokale Signal zahlen vorgesehen ist, die den Softwaresignalen zuge ordnet sind.
8. Rechnersoftware nach Anspruch 6, dadurch gekennzeich
net, daß die Einrichtung zur Einleitung von Jobs auf
weist:
eine Einrichtung zur Erzeugung eines Signalsendebefehls für das Softwaresignal, welches verarbeitet wird;
eine Einrichtung zur Bearbeitung des Softwaresignals von einem sendenden Block zu einem empfangenden Block;
eine Einrichtung zum Lesen der Befehlsadresse aus einer Signal-Verteilungstabelle innerhalb des empfangenden Blocks; und
eine Einrichtung zur Ausführung des Jobs, der sich an der Adresse in dem empfangenden Block befindet.
eine Einrichtung zur Erzeugung eines Signalsendebefehls für das Softwaresignal, welches verarbeitet wird;
eine Einrichtung zur Bearbeitung des Softwaresignals von einem sendenden Block zu einem empfangenden Block;
eine Einrichtung zum Lesen der Befehlsadresse aus einer Signal-Verteilungstabelle innerhalb des empfangenden Blocks; und
eine Einrichtung zur Ausführung des Jobs, der sich an der Adresse in dem empfangenden Block befindet.
9. Rechnersoftware nach Anspruch 8, dadurch gekennzeich
net, daß die Einrichtung zur Erzeugung eines Signalsen
debefehls aufweist:
eine Einrichtung zur Bestimmung einer globalen Signal zahl für das Softwaresignal; und
eine Einrichtung zum Einschreiben der globalen Signal zahl und einer Blockzahl, die dem empfangenden Block zugeordnet ist, in den Jobpuffer.
eine Einrichtung zur Bestimmung einer globalen Signal zahl für das Softwaresignal; und
eine Einrichtung zum Einschreiben der globalen Signal zahl und einer Blockzahl, die dem empfangenden Block zugeordnet ist, in den Jobpuffer.
10. Rechnersoftware nach Anspruch 9, dadurch gekennzeich
net, daß die Bearbeitung des Softwaresignals folgende
Schritte umfaßt:
eine Einrichtung zum Lesen der globalen Signalzahl des Softwaresignals und der Blockzahl des empfangenden Blocks; und
eine Einrichtung zum Lesen der lokalen Signalzahl für das Softwaresignal aus seiner globalen Signal-Vertei lungstabelle.
eine Einrichtung zum Lesen der globalen Signalzahl des Softwaresignals und der Blockzahl des empfangenden Blocks; und
eine Einrichtung zum Lesen der lokalen Signalzahl für das Softwaresignal aus seiner globalen Signal-Vertei lungstabelle.
11. Rechnersoftware nach Anspruch 7, dadurch gekennzeich
net, daß die Einrichtung zur Bezugnahme auf die lokalen
Signalzahlen weiterhin aufweist:
eine Einrichtung zum Speichern, auf wiederauffindbare Weise, der lokalen Signalzahlen für die Softwaresignale in sämtlichen Funktionsblöcken des Rechnerprogrammpro dukts; und
eine Einrichtung zum Kombinieren der globalen Signal zahlen mit einer Globaltabellen-Startadresse, um einen gespeicherten Wert für die globalen Signalzahlen in ir gendeinem der Funktionsblöcke aufzufinden, welche das Softwaresignal empfangen.
eine Einrichtung zum Speichern, auf wiederauffindbare Weise, der lokalen Signalzahlen für die Softwaresignale in sämtlichen Funktionsblöcken des Rechnerprogrammpro dukts; und
eine Einrichtung zum Kombinieren der globalen Signal zahlen mit einer Globaltabellen-Startadresse, um einen gespeicherten Wert für die globalen Signalzahlen in ir gendeinem der Funktionsblöcke aufzufinden, welche das Softwaresignal empfangen.
12. System zur Übertragung von Softwaresignalen von einem
ersten Modul eines modularen Softwaresystems zu einem
zweiten Modul des Softwaresystems, bei welchem eine
lokale Signalzahl für jeden Vorgang in einer globalen
Signal-Verteilungstabelle gespeichert ist, die eine
Querverweisung der lokalen Signalzahl zu einer globalen
Signalzahl angibt, wobei die globale Signal-Vertei
lungstabelle zum Zeitpunkt des Ladens des Software
Moduls aktualisiert wird, wobei das System aufweist:
eine Einrichtung zur Identifizierung eines Softwaresi gnals, welches von dem ersten Modul auf das zweite Modul übertragen werden soll;
eine Einrichtung zur Übertragung einer globalen Signal zahl, die dem Softwaresignal zugeordnet ist, zusammen mit einer Blockzahl, die dem zweiten Modul zugeordnet ist, an ein Register innerhalb eines Jobpuffers einer zentralen Bearbeitungseinheit, die den Betriebsablauf des Softwaresystems leitet;
eine Einrichtung zum Zugriff auf die globale Signal- Verteilungstabelle, um die lokale Signalzahl zu erhal ten, welche der globalen Signalzahl des Softwaresignals innerhalb des zweiten Moduls entspricht; und
eine Einrichtung zur Übertragung der lokalen Signalzahl an die anfordernde Adresse innerhalb des zweiten Mo duls.
eine Einrichtung zur Identifizierung eines Softwaresi gnals, welches von dem ersten Modul auf das zweite Modul übertragen werden soll;
eine Einrichtung zur Übertragung einer globalen Signal zahl, die dem Softwaresignal zugeordnet ist, zusammen mit einer Blockzahl, die dem zweiten Modul zugeordnet ist, an ein Register innerhalb eines Jobpuffers einer zentralen Bearbeitungseinheit, die den Betriebsablauf des Softwaresystems leitet;
eine Einrichtung zum Zugriff auf die globale Signal- Verteilungstabelle, um die lokale Signalzahl zu erhal ten, welche der globalen Signalzahl des Softwaresignals innerhalb des zweiten Moduls entspricht; und
eine Einrichtung zur Übertragung der lokalen Signalzahl an die anfordernde Adresse innerhalb des zweiten Mo duls.
13. System nach Anspruch 12, bei welchem die Einrichtung
zum Zugriff auf die globale Signal-Verteilungstabelle,
um die lokale Signalzahl des Softwaresignals zu erhal
ten, unmittelbar vor der Übertragung des Signals von
dem Jobpuffer an das zweite Modul betätigt wird.
14. Softwaresystem mit mehreren Blöcken, von denen jeder
einen Codeabschnitt aufweist, eine Signal-Verteilungs
tabelle, und eine Signalsendetabelle, und in welchem
ein Softwaresignal von einem ersten Block an einen
zweiten Block über einen Jobpuffer einer zentralen
Verarbeitungseinheit übertragen werden soll, welche den
Betriebsablauf des Softwaresystems leitet, wobei das
Softwaresystem aufweist:
eine Einrichtung zur Verknüpfung einer zentralen Adres se des Softwaresignals in dem zweiten Block mit dem Softwaresignal unmittelbar vor der Übertragung des Softwaresignals von dem Jobpuffer an den zweiten Block, und folgend auf das Laden des Softwaresignals in den Jobpuffer von dem ersten Block.
eine Einrichtung zur Verknüpfung einer zentralen Adres se des Softwaresignals in dem zweiten Block mit dem Softwaresignal unmittelbar vor der Übertragung des Softwaresignals von dem Jobpuffer an den zweiten Block, und folgend auf das Laden des Softwaresignals in den Jobpuffer von dem ersten Block.
15. System nach Anspruch 14, bei welchem die Übertragung
des Softwaresignals von dem Jobpuffer zu dem zweiten
Block umfaßt:
eine Einrichtung zum Zugriff auf eine globale Signal zahl des Softwaresignals sowie eine Zahl, die dem zwei ten Block von dem Jobpuffer zugeteilt wird;
eine Einrichtung zum Zugriff auf eine lokale Signalzahl des Softwaresignals innerhalb des zweiten Blocks;
eine Einrichtung zur Festlegung eines Befehlsadressen- Eintrittspunkts für das Softwaresignal in dem zweiten Block; und
eine Einrichtung zur Einleitung der Ausführung an der Befehlsadresse in dem zweiten Block.
eine Einrichtung zum Zugriff auf eine globale Signal zahl des Softwaresignals sowie eine Zahl, die dem zwei ten Block von dem Jobpuffer zugeteilt wird;
eine Einrichtung zum Zugriff auf eine lokale Signalzahl des Softwaresignals innerhalb des zweiten Blocks;
eine Einrichtung zur Festlegung eines Befehlsadressen- Eintrittspunkts für das Softwaresignal in dem zweiten Block; und
eine Einrichtung zur Einleitung der Ausführung an der Befehlsadresse in dem zweiten Block.
16. System nach Anspruch 14, bei welchem das Laden des
Softwaresignals in den Jobpuffer dadurch durchgeführt
wird, daß auf eine globale Signalzahl und eine Zahl
zugegriffen wird, die dem Softwaresignal jeder Signal
sendetabelle zugeteilt wird, und daß die globale Si
gnalzahl und eine Zahl, welche dem zweiten Block zu
geordnet ist, in den Jobpuffer eingeschrieben werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/734,456 US5297285A (en) | 1991-07-23 | 1991-07-23 | System for dynamically linking modular portions of computer software |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4220698A1 true DE4220698A1 (de) | 1993-01-28 |
DE4220698C2 DE4220698C2 (de) | 1997-05-15 |
Family
ID=24951767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4220698A Expired - Lifetime DE4220698C2 (de) | 1991-07-23 | 1992-06-24 | Verfahren zum Betreiben einer Datenverarbeitungsanlage |
Country Status (4)
Country | Link |
---|---|
US (1) | US5297285A (de) |
DE (1) | DE4220698C2 (de) |
GB (1) | GB2258068B (de) |
SE (1) | SE514861C2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10134463A1 (de) * | 2001-07-16 | 2003-02-13 | Tenovis Gmbh & Co Kg | Verfahren zur Speicherung von Software einer TK-Anlage |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0458495A3 (en) * | 1990-05-21 | 1993-04-14 | Texas Instruments Incorporated | Apparatus and method for managing versions and configurations of persistent and transient objects |
US5396614A (en) * | 1992-06-25 | 1995-03-07 | Sun Microsystems, Inc. | Method and apparatus for a secure protocol for virtual memory managers that use memory objects |
US5339430A (en) * | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US5410703A (en) * | 1992-07-01 | 1995-04-25 | Telefonaktiebolaget L M Ericsson | System for changing software during computer operation |
US5625845A (en) * | 1992-10-13 | 1997-04-29 | International Business Machines Corporation | System for facilitating continuous, real-time, unidirectional, and asynchronous intertask and end-device communication in a multimedia data processing system using open architecture data communication modules |
GB2272085A (en) * | 1992-10-30 | 1994-05-04 | Tao Systems Ltd | Data processing system and operating system. |
GB2288041A (en) * | 1994-03-23 | 1995-10-04 | Ibm | Object linking and embedding over a computer network. |
WO1995027359A2 (en) * | 1994-04-01 | 1995-10-12 | Ericsson Telefon Ab L M | Mobility in telecommunication networks |
DE19502728A1 (de) * | 1995-01-28 | 1996-08-01 | Philips Patentverwaltung | Telekommunikationsvorrichtung |
US6078945A (en) * | 1995-06-21 | 2000-06-20 | Tao Group Limited | Operating system for use with computer networks incorporating two or more data processors linked together for parallel processing and incorporating improved dynamic load-sharing techniques |
US5682534A (en) * | 1995-09-12 | 1997-10-28 | International Business Machines Corporation | Transparent local RPC optimization |
US6332168B1 (en) | 1995-09-28 | 2001-12-18 | International Business Machines Corporation | Method of, system for, and computer program product for providing a run time subsystem for run time libraries |
US6389483B1 (en) | 1995-10-17 | 2002-05-14 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for reducing coupling between modules in a telecommunications environment |
US6467085B2 (en) | 1995-10-17 | 2002-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for reducing coupling in an object-oriented programming environment |
US5894574A (en) * | 1996-05-03 | 1999-04-13 | Alcatel Usa Sourcing, L.P. | Apparatus and method for SIB-based global title translation services |
US5896535A (en) * | 1996-08-20 | 1999-04-20 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for testing computer system software |
DE19704855A1 (de) * | 1997-02-10 | 1998-08-13 | Gsf Forschungszentrum Umwelt | Verfahren zum Betreiben von Datenverarbeitungsanlagen |
JPH1185524A (ja) * | 1997-09-05 | 1999-03-30 | Toshiba Corp | 情報処理装置及び方法並びに情報処理プログラムを記録した記録媒体 |
JPH11110194A (ja) * | 1997-10-06 | 1999-04-23 | Toshiba Corp | 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体 |
US6151709A (en) * | 1998-02-13 | 2000-11-21 | Novell, Inc. | Processes and apparatuses for uploading instructions to a computer |
US6222916B1 (en) | 1998-05-22 | 2001-04-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for introducing and modifying telecommunications services |
US6253367B1 (en) | 1998-11-18 | 2001-06-26 | Micrografx, Inc. | Method and system for transforming dynamic content for use on the internet |
US7210145B2 (en) * | 2001-10-15 | 2007-04-24 | Edss, Inc. | Technology for integrated computation and communication; TICC |
WO2007123527A1 (en) * | 2006-04-20 | 2007-11-01 | Srinivasan Chitoor V | Technology for integrated computation and communication; ticc |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3969701A (en) * | 1973-04-09 | 1976-07-13 | Telefonaktiebolaget L M Ericsson | Function block oriented SPC system |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2230258A5 (de) * | 1973-05-16 | 1974-12-13 | Honeywell Bull Soc Ind | |
AT342119B (de) * | 1973-05-17 | 1978-03-10 | Siemens Ag | System mit einer datenverarbeitungsanlage fur die abwicklung von programmen, insbesondere zur steuerung einer fernsprechvermittlungsanlage |
US4037215A (en) * | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key controlled address relocation translation system |
US4074072A (en) * | 1976-05-24 | 1978-02-14 | Bell Telephone Laboratories, Incorporated | Multiprocessor control of a partitioned switching network by control communication through the network |
US4138738A (en) * | 1978-07-24 | 1979-02-06 | Drogichen Daniel P | Self-contained relocatable memory subsystem |
US4425618A (en) * | 1981-11-23 | 1984-01-10 | Bell Telephone Laboratories, Incorporated | Method and apparatus for introducing program changes in program-controlled systems |
SE439208B (sv) * | 1983-09-30 | 1985-06-03 | Ericsson Telefon Ab L M | Programminnesstyrd telekommunikationsanleggning |
GB8405491D0 (en) * | 1984-03-02 | 1984-04-04 | Hemdal G | Computers |
US4853842A (en) * | 1985-09-11 | 1989-08-01 | Texas Instruments Incorporated | Computer memory system having persistent objects |
US4833604A (en) * | 1986-01-13 | 1989-05-23 | International Business Machines Corporation | Method for the relocation of linked control blocks |
DE3788183D1 (de) * | 1986-09-25 | 1993-12-23 | Siemens Ag | Adressenverwaltungseinheit einer Multiprozessor-Zentralsteuereinheit eines Nachrichten-Vermittlungssystems. |
US4849877A (en) * | 1986-12-22 | 1989-07-18 | American Telephone And Telegraph Company | Virtual execution of programs on a multiprocessor system |
US4791558A (en) * | 1987-02-13 | 1988-12-13 | International Business Machines Corporation | System and method for generating an object module in a first format and then converting the first format into a format which is loadable into a selected computer |
US4980844A (en) * | 1988-05-27 | 1990-12-25 | Victor Demjanenko | Method and apparatus for diagnosing the state of a machine |
US5073852A (en) * | 1988-12-16 | 1991-12-17 | Cayman Systems, Inc. | Network protocol translator including method and apparatus for reducing interprocess communication and data exchange overhead |
US4961141A (en) * | 1988-12-16 | 1990-10-02 | International Business Machines Corporation | Generating efficient code for a computer with dissimilar register spaces |
US5006976A (en) * | 1989-02-23 | 1991-04-09 | Fisher Controls International, Inc. | Process control terminal |
GB2242293A (en) * | 1990-01-05 | 1991-09-25 | Apple Computer | Apparatus and method for dynamic linking of computer software components |
-
1991
- 1991-07-23 US US07/734,456 patent/US5297285A/en not_active Expired - Lifetime
-
1992
- 1992-06-05 GB GB9212016A patent/GB2258068B/en not_active Expired - Lifetime
- 1992-06-24 DE DE4220698A patent/DE4220698C2/de not_active Expired - Lifetime
- 1992-07-01 SE SE9202036A patent/SE514861C2/sv not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3969701A (en) * | 1973-04-09 | 1976-07-13 | Telefonaktiebolaget L M Ericsson | Function block oriented SPC system |
Non-Patent Citations (2)
Title |
---|
PRESSER, Leon und WHITE, John: "Linkers and Loaders", In: Computing Surveys, Bd. 4, September 1972 * |
US Buch "OS/2", KRANTZ, Jeffrey I., MIZELL,Ann M.,WILLIAMS, Robert L.: John Wiley & Sons, Inc., 1988, S. 57-81 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10134463A1 (de) * | 2001-07-16 | 2003-02-13 | Tenovis Gmbh & Co Kg | Verfahren zur Speicherung von Software einer TK-Anlage |
Also Published As
Publication number | Publication date |
---|---|
SE514861C2 (sv) | 2001-05-07 |
SE9202036L (sv) | 1993-01-24 |
DE4220698C2 (de) | 1997-05-15 |
GB2258068A (en) | 1993-01-27 |
SE9202036D0 (sv) | 1992-07-01 |
GB2258068B (en) | 1996-02-28 |
GB9212016D0 (en) | 1992-07-15 |
US5297285A (en) | 1994-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4220698C2 (de) | Verfahren zum Betreiben einer Datenverarbeitungsanlage | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
EP0635792B1 (de) | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen | |
DE2463200C2 (de) | ||
DE2839726A1 (de) | Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2630323A1 (de) | Datenspeichereinrichtung | |
DE2611907A1 (de) | Dv-system mit einer prioritaets- unterbrechungs-anordnung | |
DE4011745A1 (de) | Taskverfolgungseinrichtung | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE1524102B2 (de) | Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine | |
DE1499182A1 (de) | Elektrische Datenverarbeitungsanlage | |
DE2400064A1 (de) | Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem | |
DE4207158A1 (de) | Speicher-zugriffssteuerung | |
DE2801563A1 (de) | Dialogprozessor | |
DE2248296A1 (de) | Programmsteuereinrichtung | |
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE2856680A1 (de) | Befehlspuffer fuer ein datenverarbeitungssystem | |
DE2101949A1 (de) | Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage | |
DE2912073C2 (de) | ||
DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen | |
EP0632668A2 (de) | Verfahren zum Aktualisieren eines Systemprogramms in einer Vermittlungseinrichtung | |
DE4135031C2 (de) | Eingabe/Ausgabe-Einrichtung und Verfahren zum Betreiben einer Eingabe/Ausgabe-Einrichtung | |
DE2739525A1 (de) | Prozessor | |
DE1549428A1 (de) | Vermittlungs- und Steuergeraete in einem Rechenmaschinensystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right | ||
R071 | Expiry of right |