DE19637883A1 - Operating method for data processing system - Google Patents
Operating method for data processing systemInfo
- Publication number
- DE19637883A1 DE19637883A1 DE19637883A DE19637883A DE19637883A1 DE 19637883 A1 DE19637883 A1 DE 19637883A1 DE 19637883 A DE19637883 A DE 19637883A DE 19637883 A DE19637883 A DE 19637883A DE 19637883 A1 DE19637883 A1 DE 19637883A1
- Authority
- DE
- Germany
- Prior art keywords
- subsystem
- software module
- switching unit
- called
- adr0
- 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
Die Erfindung betrifft ein Verfahren zum Betreiben einer Da tenverarbeitungsanlage, die mindestens einen Prozessor ent hält, der Befehle eines Programmsystems ausführt.The invention relates to a method for operating a Da tenprocessing system that ent at least one processor holds that executes commands of a program system.
Unter einem Programmsystem wird im allgemeinen ein Programm mit mehreren Teilen und einer sehr großen Anzahl von Befehlen zur Lösung einer gemeinsamen übergeordneten Aufgabe verstan den. Ein Programmsystem ist zum Beispiel ein Betriebssystem für die Steuerung der Grundfunktionen der Datenverarbeitungs anlage, kurz DV-Anlage. Solche Betriebssysteme sind oft in einer Entwicklungszeit von vielen Jahren, z. B. 10 oder 20 Jahren, entstanden und enthalten mehrere Millionen Befehle. Ein Programmsystem kann auch ein Anwendungsprogramm sein, wie zum Beispiel ein Buchungsprogramm für eine Großbank oder eine Versicherungsgesellschaft. In DV-Anlagen mit mehreren gleichartigen Prozessoren ist auch ein paralleles Abarbeiten von Befehlen eines einzigen oder mehrerer Programmsysteme möglich.A program system is generally a program with several parts and a very large number of commands understood to solve a common superordinate task the. For example, a program system is an operating system for controlling the basic functions of data processing plant, in short DV system. Such operating systems are often in a development period of many years, e.g. B. 10 or 20 Years ago, several million commands were created and contained. A program system can also be an application program such as a booking program for a major bank or an insurance company. In DV systems with several processors of the same type also mean parallel processing commands from one or more program systems possible.
Programmsysteme enthalten gewöhnlich mehrere Subsysteme, die vorgegebene Funktionen der DV-Anlage definieren. Ein Spei chersubsystem z. B. übernimmt bei einem Betriebssystem alle Funktionen, die mit Speichervorgängen in Verbindung stehen. Ein Dateisubsystem führt die Funktionen aus, die für das Ar beiten mit den Dateien auf der DV-Anlage benötigt werden. In einer Mehrprozessoranlage hat ein Mehrprozessor-Subsystem die Aufgabe, den parallelen Betrieb der Prozessoren zu steuern.Program systems usually contain several subsystems that Define predefined functions of the DV system. A spit chersubsystem z. B. takes over all in one operating system Functions related to storage operations. A file subsystem performs the functions required for the Ar with the files on the DV system. In a multiprocessor system has a multiprocessor subsystem Task to control the parallel operation of the processors.
Jedes Subsystem bietet in der Regel mehrere Funktionen an. Eine Funktion im Dateisubsystem ist z. B. das Anlegen einer neuen Datei im Speicher der DV-Anlage. Zum Ausführen einer Funktion sind häufig mehrere tausend Befehle notwendig. Oft werden demzufolge die Funktionen in Teilfunktionen unter teilt. Die Befehle zum Ausführen einer Funktion oder zum Aus führen einer Teilfunktion sind zu einem Softwarebaustein zu sammengefaßt. Ein Softwarebaustein ist zum Beispiel eine Be fehlsfolge, auch Prozedur genannt, die an einer Startadresse beginnt und an einer Endadresse endet. Üblich ist das Bereit stellen von Parametern vor dem Ausführen der Prozedur bzw. des Softwarebausteins. Außerdem können beim Ausführen der Prozedur Ergebnisparameter erzeugt werden, die zur weiteren Bearbeitung gespeichert werden.Each subsystem usually offers several functions. A function in the file subsystem is e.g. B. the creation of a new file in the memory of the DV system. To run a Several thousand commands are often required to function. Often the functions are therefore sub-functions Splits. The commands to execute a function or to switch off perform a subfunction are to a software module summarized. A software module is, for example, a Be Failure, also called procedure, at a start address begins and ends at an end address. This is usually ready setting parameters before executing the procedure or of the software module. You can also run the Procedure result parameters are generated which are further Editing can be saved.
Bekannte Verfahren zum Betreiben einer DV-Anlage haben den Nachteil, daß zwischen den Subsystemen eine sehr große Anzahl von verschiedenartigen Abhängigkeiten sowohl beim Erstellen der Softwarebausteine als auch beim Ausführen der Funktionen bestehen. So können Softwarebausteine für die Ausführung von Teilfunktionen einer übergeordneten Funktion in verschiedenen Subsystemen enthalten sein. Für das bereits genannte Bei spiel, nämlich das Anlegen einer Datei, kann z. B. eine Teil funktion für die Vorbereitung des Anlegens der Datei als Softwarebaustein im Dateisubsystem sowie eine andere Teil funktion, nämlich das Bereitstellen von Speicherplatz zum An legen der Datei im Speicher der DV-Anlage, als weiterer Soft warebaustein im Speichersubsystem definiert sein. Wenn nun Änderungen am Softwarebaustein im Speichersubsystem vorgenom men werden, so können sich diese Änderungen auch auf den Softwarebaustein im Dateisubsystem auswirken, z. B. im Hin blick auf die Parameterübergabe. Das Dateisubsystem ist also vom Speichersubsystem abhängig. Diese Abhängigkeit wird unter anderem durch die Anzahl und die Formate zu übergebender Pa rameter und durch die verwendeten Entwicklungstechniken für die Softwarebausteine bestimmt. Weitere Abhängigkeiten ent stehen, wenn auf eine Datenstruktur aus verschiedenen Subsy stemen heraus zugegriffen wird, da bei Änderungen der Daten struktur der Zugriff in allen Subsystemen geändert werden muß, die auf diese Datenstruktur zugreifen. Die Verschieden artigkeit und die Vielzahl der Abhängigkeiten im Programmsy stem erschweren die Weiterentwicklung des Programmsystems und sind oft eine Fehlerursache, da das tatsächliche Ausmaß von Änderungen in einem oder mehreren der Subsysteme kaum zu überschauen ist. Durch die verschiedenartigen Abhängigkeiten der Subsysteme untereinander entsteht außerdem ein erhöhter Aufwand bei der Dokumentation, der Fehlersuche und der Pflege des Programmsystems.Known methods for operating a data processing system have Disadvantage that there is a very large number between the subsystems of different dependencies both when creating the software modules as well as when executing the functions consist. So software modules for the execution of Sub-functions of a higher-level function in different Subsystems to be included. For the already mentioned case game, namely creating a file, can e.g. B. a part function for preparing the creation of the file as Software block in the file subsystem as well as another part function, namely the provision of storage space for on put the file in the memory of the DV system, as another soft product block must be defined in the storage subsystem. If so Changes to the software module in the storage subsystem made these changes can also affect the Affect software module in the file subsystem, e.g. B. in the Hin look at the parameter transfer. So the file subsystem is depends on the storage subsystem. This dependency is under among other things by the number and the formats to be passed parameters and through the development techniques used for determines the software components. Further dependencies stand when on a data structure from different Subsy is accessed because the data changes structure of access can be changed in all subsystems must access this data structure. The different kindness and the multitude of dependencies in the program sy further complicate the further development of the program system and are often a cause of error because the actual extent of Changes in one or more of the subsystems hardly increase is overlooked. Because of the different types of dependencies of the subsystems among themselves also increases Documentation, troubleshooting and maintenance work of the program system.
Da Programmsysteme in der Regel ständig weiterentwickelt wer den und sich dabei aufgrund der zunehmenden Zahl von Funktio nen in der Regel vergrößern, steigt aufgrund der genannten Abhängigkeiten der Aufwand für Neuentwicklungen und Änderun gen im Programmsystem überproportional an. In der Praxis hat sich gezeigt, daß bei einem Betriebssystem z. B. durch Abänderungen und Modifikation etwa eine Million Befehle innerhalb von zwei Jahren zum Programmsystem hinzukommen kön nen. Über die Zeit betrachtet steigt der Aufwand für Änderun gen bei dem Betriebssystem in etwa exponentiell an.Since program systems are usually continuously developed this and because of the increasing number of functions usually enlarge, increases due to the above Dependencies of the effort for new developments and changes disproportionately in the program system. In practice it has have shown that in an operating system such. B. by Modifications and modifications about a million commands can join the program system within two years nen. Over time, the effort for changes increases about exponentially in the operating system.
Aufgabe der Erfindung ist es, ein Verfahren zum Betreiben ei ner Datenverarbeitungsanlage anzugeben, das bei der Abarbei tung der Befehle eines Programmsystems mit einer Vielzahl von Subsystemen einen fehlerfreien Betrieb gewährleistet und Än derungen im Programmsystem auf einfache Art und Weise gestat tet. Diese Änderungen sollen unter Zuhilfenahme modernster Entwicklungstechniken und Programmiersprachen durchgeführt werden können.The object of the invention is to egg a method for operating ner data processing system to specify that during processing the instructions of a program system with a variety of Subsystems guaranteed correct operation and Än changes in the program system in a simple manner tet. These changes are said to be the most modern Development techniques and programming languages carried out can be.
Diese Aufgabe wird gelöst durch ein Verfahren zum Betreiben einer DV-Anlage, die mindestens einen Prozessor enthält, der Befehle eines Programmsystems ausführt, wobei das Programmsy stem mehrere Subsysteme enthält, die im wesentlichen vonein ander unabhängig erstellbar sind und die vorgegebene Funktio nen der DV-Anlage definieren. Ein Softwarebaustein für minde stens eine Funktion eines ersten Subsystems ist Bestandteil eines zweiten Subsystems. This problem is solved by a method for operation a data processing system that contains at least one processor that Executes commands of a program system, the Programmsy stem contains several subsystems, which are essentially of one can be created independently and the specified function Define the DV system. A software module for at least At least one function of a first subsystem is part of it of a second subsystem.
Jedes Subsystem hat bei der Erfindung mindestens eine im we sentlichen gleichartig aufgebaute Vermittlungseinheit, die für das betreffende Subsystem oder einen Teil davon ein Ver zeichnis enthält, welches auf im jeweiligen Subsystem enthal tene Softwarebausteine verweist. Zum Ausführen der besagten Funktion ruft das erste Subsystem die Vermittlungseinheit im zweiten Subsystem auf, und diese Vermittlungseinheit ruft mit Hilfe des in ihr enthaltenen Verzeichnisses den dieser Funk tion zugeordneten Softwarebaustein auf. Die Vermittlungsein heit übernimmt dabei auch nötigenfalls die Aufgabe, die Ver knüpfung zu einer anderen Entwicklungstechnik und Program miersprache herzustellen. Nach dem Ausführen der Befehle dieses Softwarebausteins wird zum ersten Subsystem zurückge kehrt.Each subsystem has at least one in the invention Substantially similar switching unit, the a ver. for the subsystem in question or a part thereof contains the drawing which is contained in the respective subsystem software blocks. To carry out the said Function calls the first subsystem the switching unit in the second subsystem, and this switching unit calls With the help of the directory contained in this radio tion assigned software module. The mediation unit also takes on the task of ver link to another development technique and program to produce a fluent language. After executing the commands this software module is returned to the first subsystem returns.
Die Erfindung geht von der Erkenntnis aus, daß Abhängigkeiten zwischen den Subsystemen unvermeidbar sind. So sind für eine Funktion eines ersten Subsystems auch Softwarebausteine, die Bestandteile anderer Subsysteme sind, aufzurufen und deren Befehle auszuführen. Werden die Abhängigkeiten aber über sichtlich realisiert, so können die oben beschriebenen Nach teile verhindert werden. Zu diesem Zweck hat bei der Erfin dung jedes Subsystem mindestens eine im wesentlichen gleich artig aufgebaute Vermittlungseinheit. Die Aufrufe von Soft warebausteinen zwischen den Subsystemen erfolgen bei der Er findung prinzipiell nur noch über die Vermittlungseinheiten. Damit stellen die Vermittlungseinheiten die hauptsächliche Schnittstelle zwischen den Subsystemen dar. Die Abhängigkei ten der Subsysteme sind somit gebündelt und überschaubar. Au ßerdem werden die Aufrufe zwischen Subsystemen vereinheit licht und erfolgen bei der Erfindung bezüglich jeder Vermitt lungseinheit auf gleiche Art und Weise. Dies ist möglich, da die Vermittlungseinheiten gleichartig aufgebaut sind.The invention is based on the knowledge that dependencies between the subsystems are inevitable. So are for one Function of a first subsystem also software modules that Components of other subsystems are to be called and their Execute commands. But the dependencies are over visibly realized, so the above described parts are prevented. For this purpose, the Erfin each subsystem is at least essentially the same like constructed switching unit. The calls from Soft goods modules between the subsystems take place at the Er In principle, only via the switching units. The switching units are the main one Interface between the subsystems. The dependency ten of the subsystems are thus bundled and manageable. Au In addition, the calls between subsystems are unified light and take place in the invention with respect to any mediator unit in the same way. This is possible because the switching units are constructed in the same way.
Aufrufe der Softwarebausteine eines Subsystems von außen, d. h. von anderen Subsystemen oder über Benutzerschnittstellen werden über die Vermittlungseinheit dieses gerufenen Subsy stems ausgeführt. Nach außen hin kann dadurch die konkrete Realisierung einer bestimmten Funktion innerhalb des Subsy stems verborgen bleiben. Damit kann das gerufene Subsystem geändert werden, ohne daß die Änderung nach außen, d. h. für rufende Subsysteme sichtbar werden muß. Insbesondere werden bei der Erfindung keine direkten Datenzugriffe von einem Subsystem in ein anderes Subsystem durchgeführt. Lesende und modifizierende Zugriffe auf Datenstukturen werden vielmehr durch Zugriffsfunktionen ersetzt, deren Befehle ebenfalls über die Vermittlungseinheit angesteuert werden. Die tatsäch liche Realisierung des betreffenden Subsystems ist somit ge genüber der Umgebung, d. h. gegenüber den anderen Subsystemen verborgen. Innerhalb eines Subsystems können deshalb die Da tenstrukturen frei gewählt und auch frei geändert werden, oh ne daß aufrufende Subsysteme Rücksicht genommen werden muß. Diese Eigenschaft der Erfindung ist von besonderer Bedeutung, wenn innerhalb des Programmsystems oder innerhalb eines Subsystems im Laufe der Zeit zu moderneren Entwicklungstech niken übergegangen wird. So kann zum Beispiel innerhalb eines Subsystems schrittweise von einer prozeduralen Technik zu ei ner objektorientierten Technik übergegangen werden, wie sie z. B. mit der Sprache C++ möglich ist, ohne daß sogleich im gesamten Programmsystem Änderungen durchzuführen sind.Calls of the software modules of a subsystem from outside, d. H. from other subsystems or via user interfaces through the switching unit of this called subsy stems executed. Outwardly, the concrete Realization of a certain function within the subsy stay hidden. This allows the called subsystem be changed without the change being outward, i. H. For calling subsystems must be visible. In particular, be no direct data access from one in the invention Subsystem performed in another subsystem. Readers and rather, modifying accesses to data structures replaced by access functions, their commands as well can be controlled via the switching unit. The actual Liche realization of the subsystem in question is ge compared to the environment, d. H. towards the other subsystems hidden. Within a subsystem, the Da ten structures freely chosen and also freely changed, oh ne that calling subsystems must be taken into account. This property of the invention is of particular importance if within the program system or within a Subsystems over time to more modern development tech niken is passed over. For example, within a Subsystems step by step from a procedural technique to egg object-oriented technology, as they are e.g. B. with the language C ++ is possible without immediately in changes to the entire program system.
Jede Vermittlungseinheit greift bei der Erfindung auf ein Verzeichnis zu, welches auf im jeweiligen Subsystem enthal tene Softwarebausteine verweist. Dieses Verzeichnis hat bei der Erfindung die Aufgabe, einen einheitlichen Zugriff auf die verzeichneten Softwarebausteine zu gestatten. Während die Vermittlungseinheit, die ebenfalls als Befehlsfolge ausge führt ist, gleichartig für alle Subsysteme aufgebaut ist, sind die konkreten Inhalte der jeweiligen Verzeichnisse von den konkreten verzeichneten Softwarebausteinen abhängig. Die Struktur der Verzeichnisse ist gleich, so daß gleichartig aufgebaute Befehlsfolgen der Vermittlungseinheiten verwendet werden können und in gleicher Weise auf das jeweilige Subsy stemverzeichnis zugreifen können. Durch diese Maßnahme wird erreicht, daß bei Erweiterungen oder Änderungen der über die Vermittlungseinheiten aufrufbaren Softwarebausteine zwar die Subsystemverzeichnisse zu ändern sind, die Befehlsfolgen der Vermittlungseinheiten jedoch nicht geändert werden müssen.Each switching unit intervenes in the invention Directory to which contains in the respective subsystem software blocks. This directory has at the invention the task of uniform access allow the listed software modules. While the Switching unit, which is also a command sequence is structured similarly for all subsystems, are the concrete contents of the respective directories of depending on the specific software modules listed. The Structure of the directories is the same, so similar built-up command sequences of the switching units used can be and in the same way on the respective subsy can access the root directory. This measure will achieved that with extensions or changes of the Switching units callable software modules Subsystem directories are to be changed, the command sequences of the Switching units, however, do not have to be changed.
Zum Ausführen einer Funktion greift ein rufendes Subsystem auf die Vermittlungseinheit eines gerufenen Subsystems in der Weise zu, daß mit dem Ausführen der in der Vermittlungsein heit enthaltenen Befehlsfolge begonnen wird. Beim Ausführen dieser Befehlsfolge wird mit Hilfe des jeweiligen Subsystem verzeichnisses der für die Ausführung der Funktion benötigte Softwarebaustein ermittelt. Anschließend werden dessen Be fehle ausgeführt. Der Zugriff ist somit einfach zu realisie ren. Insbesondere wird die Vermittlungseinheit des rufenden Subsystems nicht benötigt, so daß Kommunikationsprozesse zwi schen Vermittlungseinheiten entfallen.A calling subsystem intervenes to perform a function to the switching unit of a called subsystem in the Way to be able to do that in the mediation instruction sequence is started. When running this command sequence is created with the help of the respective subsystem the directory required for the execution of the function Software module determined. Then its Be missing. Access is therefore easy to implement ren. In particular, the switching unit of the calling Subsystems not required, so that communication processes between switching units are omitted.
Nach dem Ausführen der Befehle des Softwarebausteins wird in der Regel zum rufenden Subsystem zurückgekehrt. Das Zurück kehren kann mit oder ohne Verwenden der Vermittlungseinheit des gerufenen Systems und ohne Verwenden der Vermittlungsein heit des rufenden Systems erfolgen. Damit ist das Zurückkeh ren einfach und schnell.After executing the commands of the software module, in usually returned to the calling subsystem. The back can sweep with or without using the switch of the called system and without using the operator of the calling system. That is the return easy and quick.
Bei der Entwicklung, Dokumentation und Fehlerkorrektur können durch die Erfindung Entwicklungszeit, Rechenzeit und damit auch Kosten gespart werden, da eine Technik verwendet wird, bei der die Subsysteme im wesentlichen unabhängig voneinander erstellbar sind.With the development, documentation and error correction can through the invention development time, computing time and thus costs can also be saved because a technique is used where the subsystems are essentially independent of each other can be created.
In einem Ausführungsbeispiel der Erfindung erfolgen die Aus wahl und der Aufruf der jeweiligen Vermittlungseinheit über ihren konventionierten Namen. Diese Namen sind Teil der Schnittstellenspezifikation und werden beim Binden des Pro grammsystems zu Adreßwerten aufgelöst, welche dann in Sprung befehlen verwendet werden. In one embodiment of the invention, the off choice and the call of the respective switching unit via their conventional name. These names are part of the Interface specification and are used when binding the Pro gram system to address values, which then jump commands can be used.
In einem weiteren Ausführungsbeispiel der Erfindung erfolgt der Aufruf der Vermittlungseinheit unter Verwenden eines Übergabespeicherbereichs, der an einer Startadresse beginnt, die vorzugsweise an diese Vermittlungseinheit in einem Regi ster des Prozessors übermittelt wird. In diesem Übergabespei cherbereich werden beim Aufruf einer Vermittlungseinheit Daten gespeichert, die es ermöglichen, auch bei Verwendung unterschiedlicher Versionen oder verschiedener Arten von Entwicklungstechniken nach einer Veränderung des Programmsy stems für den Ablauf in den Vermittlungseinheiten denselben Binärcode zu verwenden. Wird eine Vermittlungseinheit paral lel bzw. gleichzeitig mehrfach aufgerufen, so werden unter schiedliche Startadressen verwendet um ein überschreiben der Übergabespeicherbereiche zu verhindern. Somit ist ein soge nannter Mehrfacheintritt in die Vermittlungseinheiten mög lich.In a further embodiment of the invention calling the switching unit using a Transfer memory area starting at a start address which preferably to this switching unit in a regi processor is transmitted. In this handover area when calling a switching unit Data stored that make it possible even when in use different versions or different types of Development techniques after a change in the program sy stems for the sequence in the switching units the same To use binary code. If a switching unit becomes parallel lel or called several times at the same time, under different start addresses used to overwrite the To prevent transfer storage areas. Thus, a so-called named multiple entry into the switching units possible Lich.
Die Übergabe der Parameter an die aufzurufende Funktion er folgt mit Hilfe des Übergabespeicherbereichs, welcher eine von den im ersten Subsystem und im zweiten Subsystem verwen deten Entwicklungstechniken und Programmiersprachen unabhän gigen Aufbau besitzt.The transfer of the parameters to the function to be called follows with the help of the transfer memory area, which is a of those used in the first subsystem and in the second subsystem development technologies and programming languages structure.
In einem weiteren Ausführungsbeispiel der Erfindung wird die Struktur des Übergabebereichs standardisiert. Sie besteht aus einem allgemeinen Teil, welcher zumindest teilweise von den Vermittlungseinheiten interpretiert wird, und einem speziel len Teil, welcher für die gerufene Funktion spezifisch ist und der nur vom Softwarebaustein interpretiert wird. Um die Abhängigkeiten in den Vermittlungseinheiten von Änderungen in den nachgelagerten Software-Bausteinen zu minimieren, sollte der allgemeine Teil möglichst klein gehalten werden. Falls es für eine Funktion mehrere Versionen des speziellen Teils gibt, kann dies über eine Versionsnummer aufgezeigt werden. Abhängig von dieser Versionsnummer kann der gerufene Soft warebaustein verschiedene Werte zur Startadresse addieren, um auf die Daten des Übergabespeicherbereichs zuzugreifen. Die Vermittlungseinheit soll Versionsabhängigkeiten nicht zur Kenntnis nehmen. Für den allgemeinen Teil gibt es nur eine Version. Die Versionsnummer gestattet es auch, bereits ausge lieferte Subsysteme ohne neues Compilieren und Linken über einen längeren Zeitraum zu verwenden, auch wenn es bereits neuere Versionen gibt. Dadurch kann der Nutzer der Subsysteme entscheiden, wann er für ein jeweiliges Subsystem eine neue Version verwenden möchte.In a further embodiment of the invention, the Structure of the transfer area standardized. it consists of a general part, which is at least partly from the Switching units is interpreted, and a special len part, which is specific for the called function and which is only interpreted by the software module. To the Dependencies in the switching units on changes in to minimize the downstream software components the general part should be kept as small as possible. if it several versions of the special part for a function there, this can be shown via a version number. Depending on this version number, the called soft add different values to the start address in order to access the data of the transfer memory area. The Switching unit should not be version dependencies Take note. There is only one for the general part Version. The version number also allows it to be released delivered subsystems without new compiling and linking to use a longer period of time, even if it is already newer versions exist. This allows the user of the subsystems decide when to create a new one for each subsystem Want to use version.
Im allgemeinen Teil des Übergabespeicherbereich wird ein Na mensdatum gespeichert, das den aufzurufenden Softwarebaustein nach Art eines Namens eindeutig kennzeichnet. Die jeweilige Vermittlungseinheit kann anhand des Namensdatums feststellen, welcher Softwarebaustein aufgerufen werden soll. Da diese Da ten standardisiert, immer an der selben Stelle relativ zur Startadresse gespeichert sind, braucht die Vermittlungsein heit nur diese Startadresse, um durch Addition eines vorgege benen Werts auf die Namensdaten zuzugreifen.In the general part of the transfer memory area, a Na date saved, which is the software module to be called clearly identifies in the manner of a name. The respective Switching unit can determine from the name date, which software module should be called. Because this Da standardized, always in the same place relative to the Start address are stored, the mediation needs only this start address to be given by adding one value to access the name data.
In einem weiteren Ausführungsbeispiel der Erfindung wird im Subsystemverzeichnis ein Artkennzeichen gespeichert, dessen Wert die zum Erstellen des jeweiligen Softwarebausteins ver wendete Entwicklungstechnik kennzeichnet. Der Zugriff auf den jeweiligen aufzurufenden Softwarebaustein erfolgt in einer durch die Befehlsfolge der Vermittlungseinheit definierten Art, abhängig vom Wert des Artkennzeichens. Die Erfindung berücksichtigt die Erkenntnis, daß es vorteilhaft ist, für die Entwicklung großer Programmsysteme je nach konkreter Funktion eines Softwarebausteins die jeweils zweckmäßigste Entwicklungstechnik zu verwenden. Insbesondere sollen im Laufe der Zeit entstehende neuere Entwicklungstechniken ver wendbar sein. Deshalb wird bei diesem Ausführungsbeispiel das Artkennzeichen gespeichert. In diesem Artkennzeichen ist festgelegt, mit welcher Programmiertechnik und welcher Spra che inklusive Compilerversion die Befehle eines Softwarebau steins erstellt wurden. In a further embodiment of the invention A system identifier is stored in the subsystem directory Value used to create the respective software module applied development technology. Access to the The respective software module to be called is done in a defined by the command sequence of the switching unit Species, depending on the value of the species identifier. The invention takes into account the realization that it is beneficial for the development of large program systems depending on the concrete Function of a software module the most appropriate To use development technology. In particular, Over time, newer development techniques emerge be reversible. Therefore, in this embodiment Species identifier saved. In this species identification is determined with which programming technology and which language including the compiler version the commands of a software company stone were created.
Mit Hilfe des Artkennzeichens und des sprachunabhängigen Auf baus des Übergabespeicherbereichs ist es auf einfache Art und Weise möglich zwischen verschiedenen Entwicklungstechniken und Programmiersprachen umzuschalten. Damit übernimmt die Vermittlungseinheit eine Transformationsfunktion zwischen verschiedenen Entwicklungstechniken und Programmiersprachen in einem Programmsystem oder auch in einem Subsystem. Durch die Transformationsfunktion können z. B. bisher notwendige Ko piervorgänge von Übergabeparametern des Übergabespeicherbe reichs oder eine Übergabe einer Vielzahl von Übergabeparame tern in Registern des Prozessors entfallen. Als Entwick lungstechnik für die Softwarebausteine kann zum Beispiel eine prozedurale Programmiertechnik in der Sprache C und/oder eine objektorientierte Programmiertechnik in der Sprache C++ verwendet werden.With the help of the species label and the language-independent opening construction of the transfer storage area, it is simple and Way possible between different development techniques and switch programming languages. With that the Switching unit a transformation function between different development techniques and programming languages in a program system or also in a subsystem. By the transformation function can e.g. B. Previously necessary Ko Piercing of transfer parameters of the transfer memory empire or a handover of a variety of handover parameters ters in registers of the processor. As a developer For example, the technology for the software modules can be one procedural programming technology in the language C and / or a object-oriented programming technology in the C ++ language be used.
Durch das Artkennzeichen ist es möglich, in den Vermitt lungseinheiten eine einheitliche Befehlsfolge zu verwenden. Abhängig vom Artkennzeichen wird beim Abarbeiten dieser Be fehlsfolgen je nach Softwarebaustein unterschiedlich ver zweigt.By the type identification it is possible to go to the mediator units to use a uniform command sequence. Depending on the species identifier, when processing this Be failures differ depending on the software module branches.
Werden beim Betreiben der DV-Anlage die Vermittlungseinheiten in einem Arbeitsspeicher ständig vorrätig gehalten, so müssen die Softwarebausteine eines gerufenen Subsystems erst dann in den Arbeitsspeicher kopiert werden, wenn das Subsystem aufge rufen wird. Durch diese Maßnahme läßt sich der meist be grenzte Arbeitsspeicher gut ausnutzen.Are the switching units when operating the DV system kept permanently in a working memory, so must the software components of a called subsystem only then the memory can be copied when the subsystem is opened will call. This measure can be mostly limited use of memory well.
Vor dem Ausführen der Befehle eines gerufenen Softwarebau steins werden in einem weiteren Ausführungsbeispiel der Er findung die im folgenden genannten Prüfschritte ausgeführt. Erstens wird geprüft, ob das zweite Subsystem momentan im Ar beitsspeicher der DV-Anlage gespeichert ist. Ist dies nicht der Fall, so wird das Subsystem z. B. von einer Festplatte in den Arbeitsspeicher kopiert. Das Kopieren kann entfallen, wenn das Subsystem bereits im Arbeitsspeicher gespeichert ist. In einem zweiten Prüfschritt beim Ausführen der Befehlsfolge der Vermittlungseinheit wird geprüft, ob der rufende Prozeß eine Kommunikationsverbindung zum gerufenen Subsystem hat. Diese Kommunikationsverbindung ist z. B. als Tabelle realisiert, mit deren Hilfe das betreffende Subsystem aus einem Prozeß aufgerufen werden kann. Wird im zweiten Prüfschritt festgestellt, daß eine Kommunikationsverbindung noch nicht besteht, so wird diese aufgebaut, so daß später die Befehle des gerufenen Softwarebausteins ausgeführt werden können. Ist eine Kommunikationsverbindung zum gerufenen Subsystem bereits vorhanden, so wird diese genutzt, womit ein zweiter Aufbau der Kommunikationsverbindung entfällt.Before executing the commands of a called software engineer stones are in a further embodiment of the Er the following test steps are carried out. First, it is checked whether the second subsystem is currently in the Ar working memory of the DV system is saved. Is not this the case, the subsystem z. B. from a hard drive in copied the working memory. Copying can be omitted if the subsystem is already stored in memory is. In a second test step when executing the Command sequence of the switching unit is checked whether the calling process a communication link to the called Has subsystem. This communication link is e.g. B. as Realized table with the help of the relevant subsystem can be called from a process. Will be in the second Test step found that a communication link does not exist yet, so this is built up, so that later the commands of the called software module are executed can. Is a communication link to the called Subsystem already exists, so this is used with what a second establishment of the communication connection is omitted.
In einem dritten Prüfschritt wird geprüft, ob das gerufene Subsystem die gewünschte Funktionalität überhaupt anbietet, d. h., ob der über einen Namen bezeichnete Softwarebaustein im Verzeichnis der betreffenden Vermittlungseinheit verzeichnet ist. Ist dies nicht der Fall, so wird der Aufruf durch die Vermittlungseinheit mit einer entsprechenden Fehlermeldung zurückgewiesen.In a third test step it is checked whether the called Offers the desired functionality at all, d. i.e. whether the software module identified by a name in the List of the relevant switching unit listed is. If this is not the case, the call is made by the Switch unit with a corresponding error message rejected.
In einem vierten Prüfschritt wird geprüft, ob der Software baustein ordnungsgemäß initialisiert ist. Initialisiert be deutet dabei, daß der Softwarebaustein in einem Anfangszu stand ist, aus dem heraus er sofort ausgeführt werden kann. Zweckmäßigerweise wird der Anfangszustand nur dann herge stellt, wenn sich der Softwarebaustein noch nicht im Anfangs zustand befindet, da so eine überflüssige Initialisierung vermieden wird.In a fourth test step, it is checked whether the software module is properly initialized. Initialized be indicates that the software module is in an initial status from which it can be executed immediately. The initial state is expediently only then if the software module is not yet in the beginning condition, since such an unnecessary initialization is avoided.
Die genannten Prüfschritte ermöglichen es, Fehler frühzeitig zu erkennen und gegebenenfalls zu beseitigen. Somit ist ein sicheres Betreiben der DV-Anlage möglich. Durch die Prüf schritte wird außerdem erreicht, daß bereits durchgeführte Schritte nicht unnötig wiederholt werden, so daß sich das Verfahren zum Betreiben der Datenverarbeitungsanlage verein facht und beschleunigt.The test steps mentioned enable errors to be identified at an early stage to recognize and eliminate if necessary. So is a safe operation of the data processing system possible. Through the test steps is also achieved that has already been carried out Steps are not repeated unnecessarily, so that the Method for operating the data processing system folds and accelerates.
Die Erfindung betrifft außerdem eine DV-Anlage zum Ausführen eines Programmsystems, mit den Merkmalen des Patentanspruchs 21. Die weiter oben beschriebenen vorteilhaften Wirkungen gelten auch für diesen Aspekt der Erfindung.The invention also relates to a DV system for execution a program system with the features of the claim 21. The beneficial effects described above also apply to this aspect of the invention.
Das Verfahren nach der Erfindung ermöglicht es, Abhängigkei ten in bereits bestehenden Programmsystemen zu verringern oder aber Abhängigkeiten, welche eine spätere Weiterentwick lung behindern könnten, beim Erstellen des Programmsystems von vorn herein zu vermeiden.The method according to the invention enables dependency in existing program systems or dependencies, which a later development could hinder when creating the program system to avoid from the start.
Die beschriebenen Wirkungen der Erfindung treten um so mehr hervor, je mehr Teile des Programmsystems in Subsystemen rea lisiert sind, denen jeweils mindestens eine Vermittlungsein heit zugeordnet ist.The described effects of the invention occur all the more the more parts of the program system rea sub-systems are at least one in each case is assigned.
In einem weiteren Ausführungsbeispiel der Erfindung werden die Vermittlungseinheiten bzw. die Schnittstellen des Pro grammsystems klassifiziert nach Vermittlungseinheiten bzw. Schnittstellen, die von jedem Subsystem, von einigen Sub systemen oder nur von dem zugehörigen Subsystems aus aufruf bar sind. Mit Hilfe dieser Klassifizierung ist es möglich, die Abhängigkeiten der Subsysteme voneinander je nach Klasse in einem vorgegebenen Rahmen zu halten.In another embodiment of the invention the switching units or the interfaces of the Pro gram systems classified by switching units or Interfaces from each subsystem, from some sub systems or only from the associated subsystem are cash. With the help of this classification it is possible the interdependencies of the subsystems depending on the class to keep within a given framework.
Ausführungsbeispiele der Erfindung werden im folgenden anhand der Zeichnungen erläutert. Darin zeigen:Exemplary embodiments of the invention are described below of the drawings explained. In it show:
Fig. 1 wesentliche elektronische Funktionseinheiten ei ner DV-Anlage mit mehreren Prozessoren, Fig. 1 essential electronic functional units ei ner DP system with multiple processors,
Fig. 2 eine schematische Darstellung der Reihenfolge des Ausführens von Befehlen verschiedener Subsysteme, Fig. 2 is a schematic representation of the order of execution of commands of various subsystems,
Fig. 3 eine schematische Darstellung der in zwei Subsy stemen enthaltenen Softwarebausteine, Fig. 3 is a schematic representation of the software components contained in two Stemen Subsy,
Fig. 4 eine schematische Darstellung eines Übergabespei cherbereichs und einer Vermittlungseinheit, Fig. 4 is a schematic representation of a Übergabespei cherbereichs and a switching unit,
Fig. 5 eine Darstellung einer Befehlsfolge, bei deren Abarbeiten die Vermittlungseinheit aufgerufen wird, und FIG. 5 shows a sequence of instructions during the execution of which the switching unit is called, and
Fig. 6A und 6B Flußdiagramme für die Schritte, die in der Ver mittlungseinheit ausgeführt werden. FIGS. 6A and 6B are flow charts for the steps that are performed in the averaging unit Ver.
Fig. 1 zeigt wesentliche elektronische Funktionseinheiten einer Datenverarbeitungsanlage 10, im folgenden kurz DV-Anla ge genannt. Diese DV-Anlage 10 enthält zwei Zentralprozesso ren 12 und 13, die über Leitungen 14 bzw. 15 mit einem Ein- /Ausgabeprozessor 16 verbunden sind. Die Zentralprozessoren 12, 13 sind gleichartig aufgebaut und jeweils über Leitungen 17 bzw. 18 mit einem Arbeitsspeicher 20 verbunden. Der Ein- /Ausgabeprozessor 16 ist mit dem Arbeitsspeicher 20 über Leitungen 19 verbunden. Über Leitungen 22 ist mit dem Ein- /Ausgabeprozessor 16 ein Festplattenspeicher 24 mit zugehöri ger Steuerung verbunden, in dem das Betriebssystem BS der DV-An lage 10 gespeichert ist. Das Betriebssystem BS hat u. a. die Aufgabe, das Ausführen von Anwendungsprogrammen auf den Zentralprozessoren 12, 13 zu verwalten. Bei Bedarf werden vom Festplattenspeicher 24 Teile des Betriebssystems BS in den Arbeitsspeicher 20 kopiert, um dort von einem oder mehreren Zentralprozessoren 12, 13 ausgeführt zu werden. Im Fest plattenspeicher 24 sind auch Anwendungsprogramme und -daten gespeichert. Fig. 1 shows essential electronic functional units of a data processing system 10 , hereinafter referred to as DV-Ge ge. This DV system 10 contains two central processors 12 and 13 , which are connected via lines 14 and 15 to an input / output processor 16 . The central processors 12 , 13 are constructed identically and are each connected to a working memory 20 via lines 17 and 18, respectively. The input / output processor 16 is connected to the main memory 20 via lines 19 . Via lines 22 , a hard disk memory 24 with associated control is connected to the input / output processor 16 , in which the operating system BS of the DV system 10 is stored. The operating system BS has, inter alia, the task of managing the execution of application programs on the central processors 12 , 13 . If required, parts of the operating system BS are copied from the hard disk memory 24 into the main memory 20 in order to be executed there by one or more central processors 12 , 13 . Application programs and data are also stored in the hard disk memory 24 .
Der Ein-/Ausgabeprozessor 16 ist über Leitungen 25 mit einer Schnittstelle 26 verbunden. An die Schnittstelle könnte peri phere Geräte angeschlossen werden, wie z. B. weitere Festplat ten, Bänder zum Speichern digitaler Daten oder Drucker. In der Fig. 1 sind an die Schnittstelle 26 über Leitungen 28 Ein-/Ausgabegeräte 30 bis 34 angeschlossen. Jedes der Ein- /Ausgabegeräte 30 bis 34 hat einen Bildschirm zum Anzeigen von Daten und eine Tastatur zum Eingeben von Daten. Die Ein- /Ausgabegeräte 30 bis 34 werden u. a. zum Ausführen der Anwen dungsprogramme sowie zum Einrichten und zur Pflege des Betriebssystems BS verwendet.The input / output processor 16 is connected to an interface 26 via lines 25 . Peri phere devices could be connected to the interface, such as. B. more hard drives, tapes for storing digital data or printers. In FIG. 1, 28 input / output devices 30 to 34 are connected to the interface 26 via lines. Each of the input / output devices 30 to 34 has a screen for displaying data and a keyboard for inputting data. The input / output devices 30 to 34 are used, among other things, for executing the application programs and for setting up and maintaining the operating system BS.
Als Betriebssystem BS wird das Betriebssystem BS2000/OSD Ver sion 1.0 der Firma SIEMENS NIXDORF INFORMATIONSSYSTEME AG verwendet. Dieses Betriebssystem BS enthält mehr als fünf Millionen Befehle, und seine ältesten Softwarebausteine wur den bereits vor etwa 20 Jahren erstellt. Das Betriebssystem BS ist in mehrere Subsysteme unterteilt, denen jeweils be stimmte Funktionen zugeordnet sind. Diese Funktionen sind u. a. die Verwaltung des Arbeitspeichers 20, die Verwaltung der Zentralprozessoren 12, 13; die Verwaltung der Ein- und Ausgaben sowie die Dateiverarbeitung in der DV-Anlage 10.The operating system BS2000 / OSD Version 1.0 from SIEMENS NIXDORF INFORMATIONSSYSTEME AG is used. This operating system BS contains more than five million commands, and its oldest software modules were created about 20 years ago. The operating system BS is divided into several subsystems, which are assigned certain functions. These functions include the management of the working memory 20 , the management of the central processors 12 , 13 ; the management of the inputs and outputs as well as the file processing in the data processing system 10 .
Fig. 2 zeigt eine schematische Darstellung der Reihenfolge der Ausführung von Befehlen verschiedener Subsysteme. Im Ar beitsspeicher 20 sind drei Subsysteme 50 bis 54 des Betriebs systems BS gespeichert. Das Subsystem 50 definiert Funktionen der DV-Anlage 10, die beim Zugriff auf Dateien verwendet wer den. Das Subsystem 52 definiert Funktionen zum Starten und Beenden von Befehlsfolgen auf den Zentralprozessoren 12, 13. Das Subsystem 54 definiert Funktionen, die für das Verwalten des Festplattenspeichers 24 benötigt werden. Fig. 2 shows a schematic representation of the order of execution of commands of different subsystems. In the working memory 20 , three subsystems 50 to 54 of the operating system BS are stored. The subsystem 50 defines functions of the DV system 10 which are used when accessing files. The subsystem 52 defines functions for starting and ending command sequences on the central processors 12 , 13 . The subsystem 54 defines functions that are required for the management of the hard disk memory 24 .
Jedes Subsystem 50, 52 bzw. 54 enthält einen Vermittlungsbau stein 60, 62 bzw. 64. Der Vermittlungsbaustein 60 enthält ei ne Befehlsfolge, die Vermittlungseinheit VE1 genannt wird. Außerdem enthält der Vermittlungsbaustein 60 ein Verzeichnis VZ1, das anhand der Fig. 4 weiter unten näher erläutert wird. Die Vermittlungsbausteine 62 bzw. 64 enthalten jeweils eine Befehlsfolge, die Vermittlungseinheit VE2 bzw. Vermitt lungseinheit VE3 genannt wird. Die Vermittlungseinheiten VE1, VE2 und VE3 sind identisch aufgebaut bzw. strukturiert. Au ßerdem enthält der Vermittlungsbaustein 62 bzw. der Vermitt lungsbaustein 64 ein Verzeichnis VZ2 bzw. ein Verzeichnis VZ3, mit dem anhand der Fig. 4 weiter unten erläuterten Auf bau.Each subsystem 50 , 52 and 54 contains a switching module 60 , 62 and 64th The switching module 60 contains a command sequence called the switching unit VE1. The switching module 60 also contains a directory VZ1, which is explained in more detail below with reference to FIG. 4. The switching modules 62 and 64 each contain a command sequence called switching unit VE2 or switching unit VE3. The switching units VE1, VE2 and VE3 are constructed or structured identically. In addition, the switching module 62 or the switching module 64 contains a directory VZ2 or a directory VZ3, with the construction explained below with reference to FIG. 4.
In jedem der Subsysteme 50 bis 54 sind eine Vielzahl von Softwarebausteinen enthalten. Davon sind in Fig. 2 ein Soft warebaustein 70 des Subsystems 50, ein Softwarebaustein 72 des Subsystem 52 und zwei Softwarebausteine 74 und 76 des Subsystems 54 dargestellt. Als Softwarebaustein wird eine Be fehlsfolge bezeichnet, die eine bestimmte Funktion realisiert in einer bestimmten Entwicklungstechnik erstellt wurde und die im jeweiligen Verzeichnis VZ1, VZ2 bzw. VZ3 eingetragen ist. Die Softwarebausteine 70 bis 76 wurden mit einer proze duralen Entwicklungstechnik in C erstellt. Alternativ können auch andere Programmiersprachen verwendet werden, z. B. Assembler.A large number of software modules are contained in each of the subsystems 50 to 54 . Of these, a soft ware module 70 of the subsystem 50, a software module, in Fig. 2 of the subsystem 52 and two software modules represented 72 74 and 76 of the subsystem 54th A software module is a command sequence that has been created for a specific function using a specific development technique and that is entered in the relevant directory VZ1, VZ2 or VZ3. Software modules 70 to 76 were created using a procedural development technique in C. Alternatively, other programming languages can also be used, e.g. B. assembler.
Soll zum Beispiel durch das Betriebssystem BS eine Datei er stellt werden, so müssen die Befehle des Softwarebausteins 70 ausgeführt werden. Beginnend mit einem Startbefehl (Pfeil 80) werden die Befehle des Softwarebausteins 70 durch einen der Zentralprozessoren 12, 13 ausgeführt - dargestellt durch Pfeile 80 und 82. Da zum Erstellen der Datei auch Speicher platz im Festplattenspeicher 24 bereitgestellt werden muß, diese Funktion aber im Subsystem 54 definiert ist, ist ein Verzweigen vom Subsystem 50 zum Subsystem 54 notwendig. Diese Verzweigung erfolgt durch einen Sprungbefehl im Softwarebau stein 70 (Pfeil 84). Die Ausführung des Sprungbefehls be wirkt, daß der Zentralprozessor 12, 13 zum Vermittlungsbau stein 64 verzweigt und dort mit der Ausführung der Befehls folge der Vermittlungseinheit VE3 beginnt. Beim Ausführen der Befehle der Vermittlungseinheit VE3 bereitet diese den Aufruf des benötigten Softwarebausteins 74 unter Verwendung des Verzeichnisses VZ3 vor (Pfeil 86). Die Verfahrensschritte in der Vermittlungseinheit VE3 werden weiter unten anhand der Fig. 6A und 6B erläutert.If, for example, a file is to be created by the operating system BS, the commands of the software module 70 must be executed. Starting with a start command (arrow 80 ), the commands of the software module 70 are executed by one of the central processors 12 , 13 - represented by arrows 80 and 82 . Since space must also be provided in the hard disk memory 24 to create the file, but this function is defined in the subsystem 54 , branching from the subsystem 50 to the subsystem 54 is necessary. This branching takes place by a jump instruction in software module 70 (arrow 84 ). The execution of the jump command causes the central processor 12 , 13 to branch to the switching block 64 and starts executing the command sequence of the switching unit VE3 there. When the commands of the switching unit VE3 are executed, the latter prepares the call for the required software module 74 using the directory VZ3 (arrow 86 ). The method steps in the switching unit VE3 are explained below with reference to FIGS . 6A and 6B.
Hat die Vermittlungseinheit VE3 den Aufruf des Softwarebau steins 74 vorbereitet, so erfolgt ein Sprung zum Start des Softwarebausteins 74 (Pfeil 88). Der Zentralprozessor 12, 13 beginnt mit dem Ausführen der Befehle des Softwarebausteins 74 und arbeitet diese ab, wobei Speicherplatz für die zu er stellende Datei bereitgestellt wird (Pfeil 90). Anschließend erfolgt ein Rücksprung zu einer Rücksprungadresse im Soft warebaustein 70 (Pfeil 92). Diese Rücksprungadresse befindet sich unmittelbar hinter dem Sprungbefehl, mit dem zur Ver mittlungseinheit VE3 verzweigt wurde. Durch Ausführen weite rer Befehle des Softwarebausteins 70 wird das Erstellen der Datei anschließend beendet (Pfeil 94).If the switching unit VE3 has prepared the call of the software module 74 , there is a jump to the start of the software module 74 (arrow 88 ). The central processor 12 , 13 starts to execute the commands of the software module 74 and processes them, whereby storage space is made available for the file to be created (arrow 90 ). Then there is a return to a return address in the software module 70 (arrow 92 ). This return address is located immediately after the jump command with which the switching unit VE3 was branched off. By executing further commands from software module 70 , the creation of the file is then ended (arrow 94 ).
Die Befehlsfolge der Vermittlungseinheit VE3 wird immer dann ausgeführt, wenn das Subsystem 54 ein gerufenes Subsystem ist, d. h. wenn auf Anforderung eines der Subsysteme 50 oder 52 ein Softwarebaustein 74, 76 des Subsystems 54 auszuführen ist. Zum Beispiel ist beim Ausführen des Softwarebausteins 72 im Subsystem 52 eine Funktion notwendig, die im Softwarebau stein 76 des Subsystems 54 definiert ist. Folglich wird beim Ausführen des Subsystems 72 die Vermittlungseinheit VE3 aufgerufen (Strichlinienpfeil 96).The command sequence of the switching unit VE3 is always executed when the subsystem 54 is a called subsystem, ie when a software module 74 , 76 of the subsystem 54 is to be executed on request of one of the subsystems 50 or 52 . For example, when the software module 72 is executed in the subsystem 52, a function is necessary which is defined in the software module 76 of the subsystem 54 . Consequently, the switching unit VE3 is called when the subsystem 72 is executed (dashed-line arrow 96 ).
Auch vom Subsystem 54 aus können Softwarebausteine 70, 72 im Subsystem 50 bzw. 52 aufgerufen werden. Ein Strichlinienpfeil 98 zeigt einen Aufruf der Vermittlungseinheit VE1 des Subsy stems 50 durch das Subsystem 54 beim Ausführen des Software bausteins 76. Anhand der Fig. 2 wird somit deutlich, daß durch die Erfindung die Aufrufe zwischen den Subsystemen 50 bis 54 an den Vermittlungsbausteinen 60 bis 64 gebündelt wer den (z. B. Pfeile 84 und 96), d. h., daß die Aufrufe zwischen den Subsystemen 50 bis 54 prinzipiell nur über die Vermitt lungsbausteine 60 bis 64 erfolgen. Dies gilt auch für Zugrif fe auf Datenstrukturen. Die jeweilige Vermittlungseinheit VE1, VE2 bzw. VE3 verteilt die Aufrufe dann innerhalb des ge rufenen Subsystems 50, 52 bzw. 54. Wie diese Verteilung rea lisiert wird, ist für das rufende Subsystem 50 bis 54 nicht sichtbar. Jedes Subsystem 50 bis 54 kann somit unabhängig von den anderen Subsystemen 50 bis 54 erstellt und verändert wer den, wenn bestimmte Vorgaben bzw. Standards bezüglich der Vermittlungsbausteine 60 bis 64 eingehalten werden. Ein Bei spiel für eine solche Vorgabe ist der folgenden Beschreibung zu entnehmen. Die jeweilige Vorgabe hängt vom konkreten Zweck des betreffenden Programmsystems ab und wird vorzugsweise so gewählt, daß später Erweiterungen leicht durchgeführt werden können.Software modules 70 , 72 in subsystem 50 or 52 can also be called from subsystem 54 . A broken line arrow 98 shows a call to the switching unit VE1 of the subsystem 50 by the subsystem 54 when the software module 76 is executed. (B. arrows z. 84 and 96) on the basis of Fig. 2 thus shows that condensed by the invention, the calls between the sub-systems 50 to 54 to the switching devices 60 to 64 who to, that is, the calls between the subsystems 50 up to 54 in principle only via the switching modules 60 to 64 . This also applies to access to data structures. The respective switching unit VE1, VE2 or VE3 then distributes the calls within the called subsystem 50 , 52 or 54 . How this distribution is implemented is not visible to the calling subsystem 50 to 54 . Each subsystem 50 to 54 can thus be created and changed independently of the other subsystems 50 to 54 , if certain specifications or standards regarding the switching modules 60 to 64 are met. An example of such a requirement can be found in the following description. The respective specification depends on the specific purpose of the program system in question and is preferably chosen so that extensions can be easily carried out later.
Beim Aufruf von Softwarebausteinen 70 bis 76 mit Hilfe der Vermittlungsbausteine 60 bis 64 werden übergabespeicherberei che 97 und 99 verwendet, die bei jedem Aufruf an verschiede nen Adressen im Arbeitsspeicher 20 beginnen können. Der Über gabespeicherbereich 97 beginnt z. B. an einer Adresse ADR0. Sein Aufbau wird unten anhand des Teiles a der Fig. 4 erläu tert.When software modules 70 to 76 are called with the aid of switching modules 60 to 64 , transfer memory areas 97 and 99 are used, which can start in memory 20 each time they are called at different addresses. The transfer memory area 97 begins, for. B. at an address ADR0. Its structure is explained below with the aid of part a of FIG. 4.
Fig. 3 zeigt eine detailliertere schematische Darstellung der Subsysteme 50 und 54. Im Subsystem 50 sind neben dem ge nannten Softwarebaustein 70 weitere Softwarebausteine 100 und 102 enthalten, die jedoch in der objektorientierten Entwick lungstechnik in der Sprache C++ erstellt wurden, deren compi lierte Befehle im Arbeitsspeicher 20 abgelegt sind. Die Ver wendung der objektorientierten Entwicklungstechnik hat meh rere Vorzüge. Zu diesen Vorzügen gehören zum Beispiel Daten kapselung, Vererbung und Überladen von Operatoren. Außerdem sind im Subsystem 50 Softwarebausteine enthalten, z. B. der Softwarebaustein 70, die in der prozeduralen Entwicklungs technik erstellt wurden. Hierfür können z. B. Compiler für die Sprachen C, C++, SPL (Derivat von PL/I der SIEMENS NIXDORF INFORMATIONSSYSTEME AG), Assembler oder auch Interpreter ver wendet werden. Die Softwarebausteine, von denen nur der Soft warebaustein 70 eingezeichnet ist, die in der prozeduralen Entwicklungstechnik erstellt wurden, sind in einem Block 104 zusammengefaßt. Durch den Vermittlungsbaustein 60 werden durch einen Pfeil 120 angedeutete Aufrufe zum Softwarebau stein 100, Aufrufe (Pfeil 122) zum Softwarebaustein 102 und Aufrufe (Pfeil 124) zu den im Block 104 zusammengefaßten Softwarebausteinen 70 vermittelt. Fig. 3 is a more detailed schematic diagram showing the subsystems 50 and 54. In addition to the software module 70, the subsystem 50 contains further software modules 100 and 102 , which, however, were created in the object-oriented development technology in the C ++ language, the compiled instructions of which are stored in the working memory 20 . The use of object-oriented development technology has several advantages. These benefits include data encapsulation, inheritance and operator overloading. The subsystem also contains 50 software modules, e.g. B. the software module 70 , which were created in the procedural development technology. For this, e.g. B. Compiler for the languages C, C ++, SPL (derivative of PL / I from SIEMENS NIXDORF INFORMATIONSSYSTEME AG), assembler or interpreter can be used ver. The software modules, of which only the software module 70 is shown, which were created in the procedural development technology, are combined in a block 104 . Calls to the software module 100 , calls (arrow 122 ) to the software module 102 and calls (arrow 124 ) to the software modules 70 summarized in block 104 are conveyed by the switching module 60 by means of an arrow 120 .
Beim Ausführen der Befehle des Softwarebausteins 100 wird
mindestens ein Softwarebaustein des Subsystems 54 aufgerufen
(Pfeil 150). Ein solcher Aufruf zwischen zwei Subsystemen 50,
54 wird im folgenden auch als externer Aufruf bezeichnet. Au
ßerdem werden durch den Softwarebaustein 100 weitere nicht
dargestellte Softwarebausteine des Subsystems 50 intern auf
gerufen, d. h. innerhalb des Subsystems 50 (Pfeile 152). Auch
der Softwarebaustein 102 ruft intern weitere Softwarebau
steine des Subsystems 50 auf (Pfeile 154). Beim Abarbeiten
eines Softwarebausteins des Blocks 104 wird mindestens ein
Softwarebaustein des Subsystems 54 extern aufgerufen (Pfeil
84)
Im Subsystem 54 sind neben den bereits genannten Softwarebau
steinen 74 und 76 Softwarebausteine 106 und 108 enthalten,
die in der objektorientierten Entwicklungstechnik erstellt
wurden. In einem Block 110 sind die Softwarebausteine, z. B.
74, 76 enthalten, die in der prozeduralen Entwicklungstechnik
erstellt wurden. Der Vermittlungsbaustein 64 vermittelt Auf
rufe zum Softwarebaustein 106 (Pfeil 126), zum Softwarebau
stein 108 (Pfeil 128) und zu den im Block 110 zusammengefaß
ten Softwarebausteinen 74 und 76 (Pfeil 130).When executing the commands of the software module 100 , at least one software module of the subsystem 54 is called (arrow 150 ). Such a call between two subsystems 50 , 54 is also referred to below as an external call. In addition, the software module 100 internally calls up other software modules, not shown, of the subsystem 50 , ie within the subsystem 50 (arrows 152 ). The software module 102 also calls up further software modules of the subsystem 50 internally (arrows 154 ). When processing a software module of block 104 , at least one software module of subsystem 54 is called up externally (arrow 84 )
In addition to the software modules 74 and 76 already mentioned, the subsystem 54 contains software modules 106 and 108 which were created in the object-oriented development technology. In a block 110 , the software modules, e.g. B. 74, 76 included, which were created in the procedural development technology. The switching module 64 switches calls to the software module 106 (arrow 126 ), to the software module 108 (arrow 128 ) and to the software modules 74 and 76 summarized in block 110 (arrow 130 ).
Beim Ausführen der Befehle des Softwarebausteins 106 bzw. beim Ausführen von im Block 110 enthaltenen Softwarebaustei nen 74, 76 werden auch Softwarebausteine des Subsystems 50 aufgerufen. Zwei dieser externen Aufrufe sind durch Pfeile 98 und 156 in der Fig. 3 angedeutet. Außerdem können beim Aus führen der Befehle des Softwarebausteins 106 weitere Soft warebausteine des Subsystems 54 intern aufgerufen werden (Pfeile 158). Auch der Softwarebaustein 108 ruft intern wei tere Softwarebausteine des Subsystems 54 auf (Pfeile 160). Beim Ausführen der Befehle des Softwarebausteins 108 erfolgt ein weiterer interner Aufruf zu einem der prozeduralen Soft warebausteine 74, 76 (Pfeil 162).When executing the commands of the software module 106 or when executing software modules 74 , 76 contained in the block 110 , software modules of the subsystem 50 are also called. Two of these external calls are indicated by arrows 98 and 156 in FIG. 3. In addition, when executing the commands of the software module 106, further software modules of the subsystem 54 can be called up internally (arrows 158 ). The software module 108 also internally calls further software modules of the subsystem 54 (arrows 160 ). When the commands of software module 108 are executed, a further internal call to one of the procedural software modules 74 , 76 takes place (arrow 162 ).
Ein Pfeil 164 symbolisiert einen internen Aufruf im Subsystem 54, bei dem ein prozeduraler Softwarebaustein 74, 76 einen objektorientierten Softwarebaustein 106, 108 desselben Subsy stems 54 aufruft. Bei diesem Aufruf wird die Transformatorei genschaft bzgl. verschiedener Entwicklungstechniken des Ver mittlungsbausteins 64 des Subsystems 54 verwendet. Die Transformatoreigenschaft wird dabei über ein weiter unten an hand der Fig. 4 erläutertes Artkennzeichen realisiert. Das bedeutet letztlich, daß der interne Aufruf wie ein externer Aufruf behandelt wird. Normalerweise ist es nicht möglich, abgesehen von hybriden Programmiersprachen wie C++, daß ein prozeduraler Software-Baustein einen objektorientierten Software-Baustein aufruft. Bei dem hier erläuterten Ausfüh rungsbeispiel der Erfindung ist dies jedoch möglich.An arrow 164 symbolizes an internal call in subsystem 54 , in which a procedural software module 74 , 76 calls an object-oriented software module 106 , 108 of the same subsystem 54 . With this call, the transformer property is used with regard to various development techniques of the switching module 64 of the subsystem 54 . The transformer characteristic is realized via a type identifier explained below with reference to FIG. 4. Ultimately, this means that the internal call is treated like an external call. Normally, apart from hybrid programming languages like C ++, it is not possible for a procedural software module to call an object-oriented software module. In the exemplary embodiment of the invention explained here, however, this is possible.
Ein Adreßwert ADR1 kennzeichnet in der Fig. 3 die Anfangs adresse des Vermittlungsbausteins 64 im Arbeitsspeicher 20. Außerdem beginnt am Adreßwert ADR1 die Befehlsfolge für die Vermittlungseinheit VE3, die unten anhand der Fig. 6A und 6B weiter beschrieben wird.An address value ADR1 in FIG. 3 identifies the start address of the switching module 64 in the working memory 20 . In addition, the command sequence for the switching unit VE3 begins at the address value ADR1 and is further described below with reference to FIGS . 6A and 6B.
Fig. 4 zeigt in einem Teil a eine schematische Darstellung des Übergabespeicherbereichs 97 und in einem Teil b eine schematische Darstellung des Vermittlungsbausteins 64. Der Übergabespeicherbereich 99 gemäß Fig. 2 ist ebenfalls wie der Übergabespeicherbereich 97 strukturiert, beginnt jedoch an einer anderen Adresse im Arbeitsspeicher 20 und enthält andere Daten. Der Übergabespeicherbereich 97 hat einen allge meinen Teil 200 auf den die Vermittlungseinheit VE1 bis VE3 zugreift. Der allgemeine Teil 200 wird immer in der gleichen Weise unabhängig vom gerufenen Softwarebaustein interpre tiert. Außerdem enthält der übergabespeicherbereich 97 einen spezifischen Teil 201, auf den beim Ausführen des gerufenen Softwarebausteins zugegriffen wird. Der spezifische Teil 201 kann dabei abhängig vom jeweils gerufenen Softwarebaustein und von einer weiter unten noch erläuterten Versionsnummer 204 auf unterschiedliche Weise interpretiert werden. Der Übergabespeicherbereich 97 beginnt im Arbeitsspeicher 20 an der Adresse ADR0, an der ein Softwarebausteinname 202 gespei chert wird, der den aufzurufenden Softwarebaustein nach Art eines Namens eindeutig kennzeichnet. FIG. 4 shows a schematic representation of the transfer memory area 97 in part a and a schematic representation of the switching module 64 in part b. The transfer memory area 99 according to FIG. 2 is also structured like the transfer memory area 97 , but begins at a different address in the working memory 20 and contains different data. The transfer memory area 97 has a general part 200 which the switching unit VE1 to VE3 accesses. The general part 200 is always interpreted in the same way, regardless of the software module called. The transfer memory area 97 also contains a specific part 201 which is accessed when the called software module is executed. The specific part 201 can be interpreted in different ways depending on the software module called in each case and on a version number 204 to be explained further below. The transfer memory area 97 begins in the working memory 20 at the address ADR0, at which a software module name 202 is stored, which uniquely identifies the software module to be called up in the manner of a name.
In einer auf die Speicherzelle mit der Adresse ADR0 folgenden Speicherzelle mit der Adresse ADRO+1 ist die Versionsnummer 204 gespeichert, die den Aufbau des spezifischen Teils des Übergabespeicherbereichs 97 eindeutig kennzeichnet. In einer darauf folgenden Speicherzelle mit einer Adresse ADRO+2 wird ein Fehlername 206 gespeichert; falls der Aufruf des jeweils gerufenen Softwarebausteins nicht fehlerfrei abläuft oder die Vermittlungseinheit einen Fehler erkannt hat (vgl. Fig. 6), kennzeichnet der Fehlername 206 die Art des aufgetretenen Fehlers.In the memory cell with the address ADR0 following memory cell with the address ADRO + 1, the version number 204 is stored, which uniquely identifies the structure of the specific part of the transfer memory area 97th An error name 206 is stored in a subsequent memory cell with an address ADRO + 2; If the call of the software module called in each case does not run without errors or the switching unit has recognized an error (cf. FIG. 6), the error name 206 identifies the type of error that has occurred.
In einer weiteren Speicherzelle mit der Adresse ADRO+3, die drei Speicherplätze von der Adresse ADR0 entfernt ist, wird ein Prozeßname 208 gespeichert, welcher den Prozeß kennzeich net, in dem das gerufene Subsystem ablaufen soll. Der Soft warebausteinname 202, die Versionsnummer 204, der Fehlername 206 und der Prozeßname 208 gehören zum allgemeinen Teil 200 des Übergabespeicherbereichs 97.In a further memory cell with the address ADRO + 3, which is three memory locations away from the address ADR0, a process name 208 is stored which identifies the process in which the called subsystem is to run. The software module name 202 , the version number 204 , the error name 206 and the process name 208 belong to the general part 200 of the transfer memory area 97 .
Beginnend mit der folgenden Speicherzelle an einer Adresse ADRO+4 werden spezifische Übergabewerte 210 gespeichert, die beim Ausführen des jeweils gerufenen Softwarebausteins benö tigt werden. Außerdem können beginnend ab der Speicherzelle mit der Adresse ADRO+4 Ergebniswerte gespeichert werden, die beim Ausführen des gerufenen Softwarebausteins berechnet wur den. Die Nutzung des Übergabespeicherbereichs 97 wird anhand der Fig. 5 weiter unten an einem Beispiel erläutert.Starting with the following memory cell at an address ADRO + 4, specific transfer values 210 are stored, which are required when the respective software module is executed. In addition, starting from the memory cell with the address ADRO + 4 result values can be saved, which were calculated when the called software module was executed. The use of the transfer memory area 97 is explained below using an example using FIG. 5.
Teil b der Fig. 4 zeigt den Vermittlungsbaustein 64. Begin nend ab der Startadresse ADR1 sind die Befehle der Vermitt lungseinheit VE3 gespeichert. Das durch diese Befehle defi nierte Verfahren wird wie bereits erwähnt, unten anhand der Fig. 6A und 6B erläutert.Part b of FIG. 4 shows the switching module 64 . Starting from the start address ADR1, the commands of the switching unit VE3 are stored. The method defined by these commands is, as already mentioned, explained below with reference to FIGS . 6A and 6B.
Beginnend an einer Adresse ADR2 des Arbeitsspeichers 20 liegt das Verzeichnis VZ3. Das Verzeichnis VZ3 wird im Anschluß an das Laden des Subsystems 54 in den Arbeitsspeicher 20 mit konkreten Werten belegt (vgl. Schritt 402 der Fig. 6A). Im Teil b der Fig. 4 sind drei Verzeichniseinträge 220, 250 und 270 mit gleicher Struktur dargestellt. Als erstes ist jeweils ein Eintragsname 222, 252 bzw. 272 gespeichert, welcher den jeweils verzeichneten Softwarebaustein nach Art eines Namens kennzeichnet. Danach wird jeweils ein Prozeßname 224, 254 bzw. 274 gespeichert, der durch das Betriebssystem BS spezi fiziert wird und einen Prozeß bezeichnet, in dem der jewei lige Softwarebaustein ablaufen soll. In einem weiteren Feld der Verzeichniseinträge 220, 250 bzw. 270 werden Artkennzei chen 226, 256 bzw. 276 zum Kennzeichen des jeweiligen Soft warebausteins bezüglich Entwicklungstechnik und Programmier sprache gespeichert. In den sich daran anschließenden Feldern des jeweiligen Verzeichnisses 220, 250, 270 werden je nach Artkennzeichen 226, 256 bzw. 276 sogenannte artspezifische Daten 228, 258 bzw. 278 sowie artspezifische Daten 230, 260 bzw. 280 gespeichert.The directory VZ3 is located at an address ADR2 of the working memory 20 . The directory VZ3 is assigned concrete values after the subsystem 54 has been loaded into the working memory 20 (cf. step 402 of FIG. 6A). Part b of FIG. 4 shows three directory entries 220 , 250 and 270 with the same structure. First of all an entry name 222 , 252 or 272 is stored, which identifies the software module in each case in the manner of a name. Thereafter, a process name 224 , 254 or 274 is stored, which is specified by the operating system BS and denotes a process in which the respective software module is to run. In a further field of directory entries 220 , 250 and 270 , type identifiers 226 , 256 and 276 are stored to identify the respective software module with regard to development technology and programming language. So-called species-specific data 228 , 258 or 278 and species-specific data 230 , 260 or 280 are stored in the subsequent fields of the respective directory 220 , 250 , 270 , depending on the species identifier 226 , 256 or 276 .
Der Verzeichniseintrag 220 betrifft beispielsweise einen Teil des Softwarebausteins 106, der durch den Eintragsnamen 222 mit dem numerischen Wert "1" gekennzeichnet ist. Der Prozeß name 224 ist im Teil b der Fig. 4 nicht spezifiziert, da er gleich dem Prozeß des Aufrufers sein soll. Im Artkennzeichen 226 des Softwarebausteins 106 ist mit Hilfe eines Zahlenwer tes die objektorientierte Entwicklungstechnik in der Sprache C++ verschlüsselt. Das artspezifische Datum 228 definiert ei ne Adresse ADR5, an der der Softwarebaustein 106 im Arbeits speicher 20 beginnt und das artspezifische Datum 230 defi niert eine Adresse ADR6, an der die Befehle beginnen, die im Softwarebaustein 106 enthalten sind. Die Adressen ADR5 und ADR6 unterscheiden sich, da der Softwarebaustein 106 in ob jektorientierter Entwicklungstechnik erstellt wurde und sei nerseits mehrere Unter-Softwarebausteine enthält. Die Be fehlsfolgen der Unter-Softwarebausteine werden unter dem Na men "Mitgliedsfunktionen" (member functions) des durch den jeweiligen übergeordneten Softwarebaustein spezifizierten Objekts zusammengefaßt. Die Adresse ADR6 ist die Startadresse des im Verzeichniseintrag 220 spezifizierten Unter-Software bausteins des Softwarebausteins 106.The directory entry 220 relates, for example, to a part of the software module 106 which is identified by the entry name 222 with the numerical value “1”. The process name 224 is not specified in part b of FIG. 4, since it should be the same as the process of the caller. In the type identifier 226 of the software module 106 , the object-oriented development technology is encoded in the C ++ language using a numerical value. The species-specific date 228 defines an address ADR5 at which the software module 106 begins in the working memory 20 and the species-specific date 230 defines an address ADR6 at which the commands that are contained in the software module 106 begin. The addresses ADR5 and ADR6 differ because the software module 106 was created in object-oriented development technology and, on the other hand, contains several sub-software modules. The command sequences of the sub-software modules are summarized under the name "member functions" of the object specified by the respective higher-level software module. The address ADR6 is the start address of the sub-software module of the software module 106 specified in the directory entry 220 .
Der Verzeichniseintrag 250 verweist auf den Softwarebaustein 74. Der Eintragsname 252 hat den numerischen Wert "2". Der Prozeßname 254 ist aus den bereits genannten Gründen nicht spezifiziert. Da der Softwarebaustein 74 mit der Programmier sprache C erstellt wurde, wird das Artkennzeichen 256 so festgelegt, daß die prozedurale Programmiersprache C im kon kreten Zahlenwert für das Artkennzeichen 256 verschlüsselt ist. Das artspezifische Datum 258 enthält einen Adreßwert ADR7, der die Startadresse der Befehle des Softwarebausteins 74 nennt, und das artspezifische Datum 230 ist nicht spezifi ziert, da zum Ausführen des Softwarebausteins 74 nur die Adresse ADR7 bekannt sein muß.The directory entry 250 refers to the software module 74 . The entry name 252 has the numerical value "2". The process name 254 is not specified for the reasons already mentioned. Since the software module 74 was created with the programming language C, the type identifier 256 is set so that the procedural programming language C is encoded in the specific numerical value for the type identifier 256 . The type-specific date 258 contains an address value ADR7, which names the start address of the commands of the software module 74 , and the type-specific date 230 is not specified, since only the address ADR7 needs to be known in order to execute the software module 74 .
Der Verzeichniseintrag 270 verweist auf den Softwarebaustein 76. Dieser Softwarebaustein hat den Eintragsnamen 272 mit dem numerischen Wert "3" und einen in Fig. 4 unspezifizierten Prozeßnamen 274. Das Artkennzeichen 276 des Softwarebausteins 76 enthält einen Zahlenwert für die prozedurale Programmier sprache ASSEMBLER. Das artspezifische Datum 278 enthält einen Adreßwert ADR8, der auf den Beginn der Befehle des Software bausteins 76 verweist und das artspezifische Datum 280 ist nicht spezifiziert, da es beim Zugriff auf den Softwarebau stein 76 nicht notwendig ist.The directory entry 270 refers to the software module 76 . This software module has the entry name 272 with the numerical value "3" and an unspecified process name 274 in FIG. 4. The type identifier 276 of the software module 76 contains a numerical value for the procedural programming language ASSEMBLER. The type-specific date 278 contains an address value ADR8, which refers to the start of the commands of the software module 76 and the type-specific date 280 is not specified, since it is not necessary when accessing the software module 76 .
Fig. 5 zeigt eine schematische Darstellung von Befehlen 300 bis 318 für den Softwarebaustein 70, welche in der prozedura len Programmiersprache c geschrieben sind. Die vor dem Befehl 308 liegenden Befehle 300 bis 306 dienen der Vorbereitung des Anlegens der Datei. Der Befehl 308 dient dem Bereitstellen von Speicherplatz auf der Festplatte 24 für das Anlegen der Datei. Dazu müssen die compilierten Befehle des Softwarebau steins 74 im Subsystem 54 ausgeführt werden. Für den C-Compi ler wird durch ein Rautenzeichen 320 gefolgt von dem Schlüs selwort "include" signalisiert, daß beim Compilieren eine weiter unten erläuterte Befehlsfolge aus Maschinenbefehlen 330 bis 340 anstelle des Befehls 308 einzufügen ist, angedeu tet durch einen Pfeil 350. Die Maschinenbefehle 330 bis 340 werden beim Ausführen des Softwarebausteins 70 direkt von einem der Zentralprozessoren 12, 13 abgearbeitet. Die nach dem Befehl 308 folgenden Befehle 310 bis 318 beziehen sich auf Funktionen nach dem Erstellen einer Datei. Es kann z. B. hierbei überprüft werden, ob das Erstellen der jeweiligen Datei erfolgreich war. Fig. 5 shows a schematic representation of commands 300 to 318 for the software module 70 , which are written in the procedural len programming language c. The commands 300 to 306 lying before the command 308 serve to prepare the creation of the file. The command 308 serves to provide space on the hard disk 24 for the creation of the file. To do this, the compiled commands of software module 74 must be executed in subsystem 54 . For the C-Compi ler, a diamond sign 320 followed by the key word "include" indicates that a compilation of an instruction sequence from machine instructions 330 to 340, explained below, must be inserted instead of instruction 308 , indicated by an arrow 350 . The machine instructions 330 to 340 are processed directly by one of the central processors 12 , 13 when the software module 70 is executed. Commands 310 through 318 following command 308 relate to functions after a file has been created. It can e.g. B. can be checked here whether the creation of the respective file was successful.
Im Befehl 308 wird durch das Rautenzeichen 320 gefolgt von dem Schlüsselwort "include" und der Bezeichnung "Dateispeicher" der Compiler angewiesen, die Maschinenbefehle 330 bis 340 so zu generieren, daß der Softwarebaustein 74 un ter Einbeziehung der Vermittlungseinheit 64 des Subsystems 54 ausgeführt wird. Dazu verarbeitet der Compiler den im Befehl 308 angegebenen Dateinamen der zu erstellenden Datei und die angegebene Zugriffsart. Die Zugriffsart kann z. B. so festge legt werden, daß auf die erstellte Datei sowohl lesend als auch schreibend zugegriffen werden kann.In command 308 , the pound sign 320 followed by the keyword "include" and the designation "file memory" instruct the compiler to generate machine instructions 330 to 340 in such a way that software module 74 is executed with the involvement of switching unit 64 of subsystem 54 . To do this, the compiler processes the file name specified in command 308 for the file to be created and the type of access specified. The type of access can e.g. B. be set so that the created file can be accessed both read and write.
Der Maschinenbefehl 330 bewirkt, daß der Softwarebausteinname (SB-Name) 202 (vgl. Teil a Fig. 4) im übergabespeicherbereich (ÜSB) einen Wert erhält, z. B. im Fall des Softwarebausteins 74 den numerischen Wert "2", und damit den zur Ausführung des jeweiligen Befehls, z. B. "Dateispeicher", benötigten Softwarebaustein kennzeichnet.The machine command 330 causes the software module name (SB name) 202 (cf. part a FIG. 4) to receive a value in the transfer memory area (OSB), e.g. B. in the case of software module 74, the numerical value "2", and thus to execute the respective command, for. B. "File storage" indicates the required software module.
Die Maschinenbefehle 332 und 334 bewirken, daß der konkrete Dateiname der anzulegenden Datei in den jeweiligen Übergabe speicherbereich (ÜSB), z. B. 97 gemäß Teila Fig. 4, als erster Übergabewert 210 und die Zugriffsart als zweiter Übergabewert 210 gespeichert werden. Durch den Befehl 336 wird die Adresse, z. B. ADR0, an der der Übergabespeicherbereich 97 beginnt, in ein Register R1 des Zentralprozessors 12, 13 ge laden. Durch den Befehl 338 wird die Adresse ADR1 in ein Re gister R15 des Zentralprozessors 12, 13 geladen. Das Ermit teln der Adresse ADR1 erfolgt dabei in zwei Schritten. An bieter und Nutzer einer Schnitt stelle arbeiten mit Namen der Vermittlungseinheiten, die in einer Spezifikation hinterlegt sind. Erst beim Linken wird der Name einer jeweiligen Vermittlungseinheit durch die konkrete Adresse ersetzt. Die Adresse ADR1 stimmt mit der Anfangsadresse der Vermittlungs einheit VE3 des Vermittlungsbausteins 64 überein. Durch den Befehl 340 erfolgt anschließend ein Sprung zur Adresse, die im Register R15 enthalten ist, nämlich zur Adresse ADR1. So mit wird nach Ausführen des Sprunges mit dem Abarbeiten der Befehle der Vermittlungseinheit VE3 begonnen. In diesem Ausführungsbeispiel ist die Verwendung der Register R1 und R15 konventioniert.The machine commands 332 and 334 cause the concrete file name of the file to be created in the respective transfer memory area (ÜSB), e.g. B. 97 according to Parta Fig. 4, as the first transfer value 210 and the access type as the second transfer value 210 are stored. By the command 336, the address is, for example. B. ADR0, at which the transfer memory area 97 begins, in a register R1 of the central processor 12 , 13 ge load. Command 338 loads address ADR1 into a register R15 of central processor 12 , 13 . The address ADR1 is determined in two steps. Providers and users of an interface work with the names of the switching units that are stored in a specification. The name of each switching unit is only replaced by the specific address when the link is created. The address ADR1 matches the start address of the switching unit VE3 of the switching module 64 . Command 340 then jumps to the address contained in register R15, namely to address ADR1. With the execution of the commands of the switching unit VE3 is started after the jump has been carried out. In this embodiment, the use of registers R1 and R15 is conventional.
Die Fig. 6A und 6B zeigen ein Flußdiagramm für die Verfah rensschritte, die beim Abarbeiten der Befehle der Vermitt lungseinheit VE3 ausgeführt werden. Im Schritt 400 beginnen die Verfahrensschritte der Vermittlungseinheit VE3 an der oben bezeichneten Adresse ADR1. Zu diesem Zeitpunkt sind im Übergabespeicherbereich 97 gemäß Teil a Fig. 4 der Software bausteinname 202 und gegebenenfalls ein oder mehrere Überga bewerte 210 festgelegt. Rensschritte FIGS. 6A and 6B show a flowchart of the procedural that the Vermitt during execution of the commands are executed averaging unit VE3. In step 400, the method steps of the switching unit VE3 begin at the address ADR1 described above. At this time, the software module name 202 and possibly one or more transfer values 210 are defined in the transfer memory area 97 in accordance with part a of FIG. 4.
Im Schritt 402 wird geprüft, ob sich das zur Vermittlungsein heit VE3 gehörende Subsystem 54 bereits im Arbeitsspeicher 20 befindet und ausgeführt werden kann. Ist dies nicht der Fall, so wird im Schritt 403 das Laden des Subsystems 54 in den Ar beitsspeicher 20 veranlaßt. Im Schritt 404 wird geprüft, ob das Laden des Subsystems 54 (vgl. Fig. 2) erfolgreich war. Ist dies nicht der Fall, so wird im Schritt 404 der Fehler name 206 (vgl. Teil a Fig. 4) mit einem ersten Fehlerwert be legt. Nach dem Schritt 405 wird zu einem weiter unten erläu terten Schritt 444 verzweigt. Wird im Schritt 402 bzw. im Schritt 404 jedoch festgestellt, daß das Subsystem 54 im Arbeitsspeicher 20 ausgeführt werden kann, so wird unmit telbar nach dem Schritt 402 bzw. nach dem Schritt 404 der Verfahrensschritt 406 ausgeführt.In step 402 it is checked whether the subsystem 54 belonging to the switching unit VE3 is already in the working memory 20 and can be executed. If this is not the case, then in step 403 the subsystem 54 is loaded into the memory 20 . In step 404 it is checked whether the loading of the subsystem 54 (cf. FIG. 2) was successful. If this is not the case, then in step 404 the error name 206 (cf. part a Fig. 4) is assigned a first error value. After step 405, a branch is made to a step 444 explained below. However, if it is determined in step 402 or step 404 that subsystem 54 can be executed in working memory 20 , method step 406 is carried out immediately after step 402 or step 404.
Im Schritt 406 wird geprüft, ob das gerufene Subsystem 54 mit dem rufenden Prozeß verbunden ist, d. h. es wird geprüft, ob eine Kommunikationsverbindung zwischen dem rufenden Prozeß und dem Subsystem 50 existiert. Ist dies nicht der Fall, so wird in Schritt 407 das Herstellen dieser Kommunikationsver bindung veranlaßt. In einem sich daran anschließenden Schritt 408 wird geprüft, ob die Kommunikationsverbindung erfolgreich hergestellt werden konnte. Ist dies nicht der Fall, so wird in Schritt 409 der Fehlername 206 (vgl. Teil a Fig. 4) mit einem zweiten Fehlerwert spezifiziert. Anschließend wird das Verfahren im Schritt 444 fortgesetzt. Wird im Schritt 406 bzw. im Schritt 408 jedoch festgestellt, daß das gerufene Subsystem 54 mit dem rufenden Prozeß verbunden ist, so wird unmittelbar auf den Schritt 406 folgend der Schritt 410 aus geführt.In step 406 it is checked whether the called subsystem 54 is connected to the calling process, ie it is checked whether there is a communication link between the calling process and the subsystem 50 . If this is not the case, this communication connection is initiated in step 407. In a subsequent step 408, it is checked whether the communication connection could be successfully established. If this is not the case, then in step 409 the error name 206 (cf. part a, FIG. 4) is specified with a second error value. The method then continues in step 444. However, if it is determined in step 406 or in step 408 that the called subsystem 54 is connected to the calling process, step 410 is carried out immediately following step 406.
Im Schritt 410 wird geprüft, ob der durch den Softwarebau steinnamen 202 (vgl. Teil a Fig. 4) spezifizierte Software baustein im zugehörigen Subsystem 54 (vgl. Fig 2) vorhanden ist, indem die Verzeichniseinträge 222, 252 und 272 (vgl. Teil b Fig. 4) mit dem Softwarebausteinnamen 202 verglichen werden. Der Softwarebausteinname 202 kann durch die Vermitt lungseinheit VE3 ermittelt werden, da die Adresse ADR0, an der der Übergabespeicherbereich beginnt, konventionsgemäß im Register R1 des Zentralprozessors 12, 13 verfügbar ist. Wird der gerufene Softwarebaustein nicht im Verzeichnis VZ3 gefunden, so wird der Fehlername 206 (vgl. Teil a Fig. 4) mit einem dritten Fehlerwert belegt (Schritt 412). Anschließend wird das Verfahren im Schritt 444 fortgesetzt. Wird im Schritt 410 jedoch festgestellt, daß der Softwarebaustein im gerufenen Subsystem vorhanden ist, so wird unmittelbar nach dem Schritt 410 der Verfahrensschritt 414 ausgeführt. Der Softwarebaustein "Dateispeicher", dessen Eintragsname den numerischen Wert "2" hat wird beispielsweise als zweiter Ver zeichniseintrag 250 (vgl. Teil b der Fig. 4) lokalisiert.In step 410 it is checked whether the software module specified by the software module name 202 (cf. part a, FIG. 4) is present in the associated subsystem 54 (cf. FIG. 2 ) by the directory entries 222 , 252 and 272 (cf. part b Fig. 4) are compared with the software module name 202 . The software module name 202 can be determined by the switching unit VE3, since the address ADR0 at which the transfer memory area begins is conventionally available in the register R1 of the central processor 12 , 13 . If the called software module is not found in directory VZ3, then error name 206 (cf. part a, FIG. 4) is assigned a third error value (step 412). The method then continues in step 444. However, if it is determined in step 410 that the software module is present in the called subsystem, method step 414 is carried out immediately after step 410. The software module "file storage", whose entry name has the numerical value "2" is localized, for example, as a second directory entry 250 (cf. part b of FIG. 4).
Im Schritt 414 wird geprüft, ob der gerufene Softwarebaustein in einem anderen Prozeß ablaufen soll, indem die Prozeßnamen 208 und 254 (vgl. Teil b der Fig. 4) mit dem der Vermittlungseinheit VE3 momentan zugeordneten Prozeßnamen verglichen werden. Wird im Schritt 414 festgestellt, daß der Softwarebaustein in einem anderen Prozeß ablaufen soll, so wird im Schritt 418 zu diesem anderen Prozeß umgeschaltet. Anschließend wird der Schritt 420 ausgeführt. Wird jedoch im Schritt 414 festgestellt, daß der Softwarebaustein im glei chen Prozeß zur Verfügung steht, so entfällt das Umschalten im Schritt 418 und unmittelbar nach dem Schritt 414 wird der Schritt 420 ausgeführt.In step 414 it is checked whether the called software module should run in another process by comparing the process names 208 and 254 (cf. part b of FIG. 4) with the process name currently assigned to the switching unit VE3. If it is determined in step 414 that the software module is to run in another process, step 418 switches over to this other process. Then step 420 is carried out. However, if it is determined in step 414 that the software module is available in the same process, the switchover in step 418 is omitted and step 420 is carried out immediately after step 414.
Im Schritt 420 wird geprüft, ob der jeweilige Softwarebau stein, z. B. 74 (vgl. Fig. 2), bereits initialisiert ist. Die Initialisierung umfaßt z. B. das Anlegen und Versorgen von Verwaltungstabellen mit konkreten Werten, welche für den ge rufenen Softwarebaustein spezifisch sind. Gegebenenfalls er folgt im Schritt 422 die Initialisierung des Softwarebau steins und in einem anschließenden Schritt 424 wird über prüft, ob die Initialisierung erfolgreich durchgeführt wurde. Wird im Schritt 424 festgestellt, daß die Initialisierung nicht oder nicht vollständig durchgeführt werden konnte, so wird im Schritt 426 der Fehlername 206 (vgl. Teil a Fig. 4) durch einen vierten Fehlerwert spezifiziert und das Verfahren im Schritt 444 fortgesetzt.In step 420 it is checked whether the respective software module, e.g. B. 74 (see FIG. 2) has already been initialized. The initialization includes e.g. B. the creation and supply of administration tables with concrete values that are specific for the ge software module called. If necessary, the software module is initialized in step 422 and a check is carried out in a subsequent step 424 to determine whether the initialization has been carried out successfully. If it is determined in step 424 that the initialization could not be carried out or could not be carried out completely, then in step 426 the error name 206 (cf. part a FIG. 4) is specified by a fourth error value and the method is continued in step 444.
Wird im Schritt 424 festgestellt, daß die Initialisierung er folgreich durchgeführt wurde, so wird das Verfahren im Schritt 428 fortgesetzt. Der Schritt 428 folgt jedoch unmit telbar auf den Schritt 420, wenn in diesem Schritt 420 fest gestellt wird, daß der gerufene Softwarebaustein bereits ini tialisiert ist.It is determined in step 424 that the initialization is has been carried out successfully, the procedure in Step 428 continues. However, step 428 immediately follows telbar to step 420 if 420 is fixed in this step it is made sure that the called software module is already ini is tialized.
Im Schritt 428 wird die Art des Softwarebausteins bestimmt, indem das Artkennzeichen, z. B. 256 (vgl. Teil b Fig. 4) gele sen wird. Im Fall des Softwarebausteins 74 wird ermittelt, daß der Softwarebaustein 74 in der Sprache c erstellt wurde. Anschließend wird in einem Schritt 430 gefragt, ob der geru fene Softwarebaustein mit der Sprache C erstellt wurde. Ist dies der Fall, so werden im Schritt 432 die im Softwarebau stein enthaltenen Befehle aufgerufen. Damit ist das Verfahren in einem Schritt 441 beendet. Wird im Schritt 430 jedoch festgestellt, daß der Softwarebaustein nicht in der Sprache C erstellt wurde, so folgt unmittelbar nach dem Schritt 430 der Schritt 434.In step 428, the type of software module is determined by the type identifier, z. B. 256 (see. Part b Fig. 4) is sen. In the case of software module 74 , it is determined that software module 74 was created in language c. Subsequently, in a step 430, a question is asked as to whether the called software module was created with the C language. If this is the case, then the commands contained in the software module are called in step 432. The method is thus ended in a step 441. However, if it is determined in step 430 that the software module was not created in the C language, step 434 follows immediately after step 430.
Im Schritt 434 wird geprüft, ob der gerufene Softwarebaustein mit der Sprache C++ erstellt wurde. Ist dies der Fall, so wird im Schritt 436 der Softwarebaustein aufgerufen. Zum Auf rufen des Softwarebausteins wird u. a. das artspezifische zweite Datum, z. B. 230 (vgl. Teil b Fig. 4), gelesen, um den Anfang des auszuführenden Softwarebausteins zu ermitteln. Damit ist das Verfahren im Schritt 441 beendet. Wird im Schritt 434 jedoch festgestellt, daß der Softwarebaustein nicht mit der Sprache C++ erstellt worden ist, so wird unmit telbar nach dem Schritt 434 der Schritt 438 ausgeführt.In step 434 it is checked whether the called software module was created with the C ++ language. If this is the case, the software module is called in step 436. To call up the software module, the species-specific second date, e.g. B. 230 (see. Part b Fig. 4) read to determine the beginning of the software module to be executed. The method is thus ended in step 441. However, if it is determined in step 434 that the software module has not been created using the C ++ language, step 438 is carried out immediately after step 434.
Im Schritt 438 wird geprüft, ob der jeweils gerufene Soft warebaustein mit der Programmiersprache ASSEMBLER erstellt wurde. Ist dies der Fall, so wird im Schritt 440 der gerufene Softwarebaustein aufgerufen, womit das Verfahren im Schritt 441 beendet ist.In step 438 it is checked whether the soft called in each case product block created with the programming language ASSEMBLER has been. If this is the case, the called party is called in step 440 Software module called, which the procedure in step 441 has ended.
Wird im Schritt 438 jedoch festgestellt, daß der jeweils ge rufene Softwarebaustein auch nicht mit der Programmiersprache ASSEMBLER erstellt wurde, so erfolgt unmittelbar nach dem Schritt 438 der Schritt 442, in dem der Fehlername 206 (vgl. Teil a Fig. 4) mit einem fünften Fehlerwert belegt wird. An schließend erfolgt das Ausführen des bereits mehrfach er wähnten Schrittes 444.If, however, it is determined in step 438 that the software module called in each case was also not created using the ASSEMBLER programming language, step 442 takes place immediately after step 438, in which the error name 206 (cf. part a, FIG. 4) has a fifth Error value is occupied. Then step 444, which has already been mentioned several times, is executed.
Das beschriebene Verfahren ist auf einfache Art und Weise auf andere als die genannten Entwicklungstechniken und Program miersprachen erweiterbar, indem zwischen den Schritten 438 und 442 zusätzliche Schritte eingefügt werden.The method described is based on in a simple manner Development techniques and programs other than those mentioned Mier languages expandable by between steps 438 and 442 additional steps can be added.
Im Schritt 444 wird das durch die Befehle der Vermittlungs einheit VE3 vorgegebene Verfahren für Fehlerfälle beendet. In einem der Schritte 405, 409, 412, 426 oder 442 wurde der Feh lername 206 (vgl. Teil a Fig. 4) spezifiziert. Im Schritt 444 erfolgt ein Rücksprung in das rufende Subsystem, z. B. 50. Dort wird anhand der Werte im Übergabespeicherbereich 97 (vgl. Teil a Fig. 4) festgestellt, ob der Softwarebaustein erfolgreich ausgeführt werden konnte. In diesem Falle ist der Fehlername 206 (vgl. Teil a Fig. 4) ein Standardwert, z. B. Null. Hat der Fehlername 206 jedoch einen vom Standardwert abweichenden Wert, so kann anhand dieses Wertes festgestellt werden, welcher Fehler aufgetreten ist. Dieser Fehler kann anschließend durch den Aufrufer behoben werden, und es kann ein nochmaliger Aufruf der Vermittlungseinheit erfolgen.In step 444, the procedure specified by the commands of the switching unit VE3 for errors is ended. In one of steps 405, 409, 412, 426 or 442, the error name 206 (cf. part a, FIG. 4) was specified. In step 444 there is a return to the calling subsystem, e.g. B. 50 . There it is determined on the basis of the values in the transfer memory area 97 (cf. part a, FIG. 4) whether the software module could be executed successfully. In this case the error name 206 (cf. part a Fig. 4) is a standard value, e.g. B. Zero. However, if the error name 206 has a value that deviates from the standard value, this value can be used to determine which error has occurred. This error can then be corrected by the caller, and the switching unit can be called again.
Beim Ausführen des jeweils gerufenen Softwarebausteins im Schritt 432, 436 oder 440 kann der Rücksprung direkt vom Softwarebaustein zum rufenden Subsystem oder indirekt über die Vermittlungseinheit des gerufenen Subsystems erfolgen. Schritt 444 wird in diesem Fall nicht ausgeführt. Gegebenen falls sind auch Ergebniswerte als übergabewerte 210 (vgl. Teil a Fig. 4) spezifiziert worden, die im rufenden Subsystem weiterverwendet werden können.When executing the respectively called software module in step 432, 436 or 440, the return can take place directly from the software module to the calling subsystem or indirectly via the switching unit of the called subsystem. In this case, step 444 is not carried out. If necessary, result values have also been specified as transfer values 210 (cf. part a FIG. 4) which can be used further in the calling subsystem.
Claims (21)
wobei das Programmsystem mehrere Subsysteme (50 bis 54) enthält, die vorgegebene Funktionen der Datenverarbei tungsanlage (10) definieren und im wesentlichen voneinan der unabhängig erstellbar sind,
ein Softwarebaustein (74) für mindestens eine Funktion eines ersten Subsystems (50) Bestandteil eines zweiten Subsystems (54) ist,
jedes Subsystem (50 bis 54) mindestens eine im wesentli chen gleichartig aufgebaute Vermittlungseinheit (60 bis 64) hat, die ein Verzeichnis (VZ1 bis VZ3) enthält, wel ches auf im jeweiligen Subsystem (50 bis 54) enthaltene Softwarebausteine (70 bis 76) verweist,
zum Ausführen der besagten Funktion das erste Subsystem (50) die Vermittlungseinheit (64) im zweiten Subsystem (54) aufruft (Pfeil 84) und diese Vermittlungseinheit (64) mit Hilfe des in ihr enthaltenen Verzeichnisses (VZ3) den dieser Funktion zugeordneten Softwarebaustein (74) aufruft (Pfeil 88)
und wobei nach dem Ausführen der Befehle dieses Software bausteins (74) zum ersten Subsystem (50) zurückgekehrt wird (Pfeil 92). 1. Method for operating a data processing system ( 10 ) which contains at least one processor ( 12 , 13 ) which executes commands of a program system,
The program system contains a number of subsystems ( 50 to 54 ) which define predetermined functions of the data processing system ( 10 ) and which can essentially be created independently of one another.
a software module ( 74 ) for at least one function of a first subsystem ( 50 ) is part of a second subsystem ( 54 ),
each subsystem ( 50 to 54 ) has at least one essentially identical switching unit ( 60 to 64 ) which contains a directory (VZ1 to VZ3) which contains software modules ( 70 to 76 ) contained in the respective subsystem ( 50 to 54 ) references
to execute said function, the first subsystem ( 50 ) calls the switching unit ( 64 ) in the second subsystem ( 54 ) (arrow 84 ) and this switching unit ( 64 ) uses the directory (VZ3) contained therein to assign the software module ( 74 ) assigned to this function ) calls (arrow 88 )
and wherein after the execution of the instructions of this software module ( 74 ), the first subsystem ( 50 ) is returned (arrow 92 ).
oder daß die Vermittlungseinheit (60 bis 64) in einer zweiten Klasse von Vermittlungseinheiten (60 bis 64) ent halten ist, wobei eine Vermittlungseinheit (60 bis 64) der zweiten Klasse nur von einigen der Subsysteme (50 bis 54) aufrufbar ist,
oder daß die Vermittlungseinheit (60 bis 64) in einer dritten Klasse von Vermittlungseinheiten (60 bis 64) ent halten ist, wobei eine Vermittlungseinheit (60 bis 64) der dritten Klasse nur von ihrem zugehörigen Subsystem aus (50 bis 54) aufrufbar ist.20. The method according to any one of the preceding claims, characterized in that the switching unit ( 60 to 64 ) is contained in a first class of switching units ( 60 to 64 ), wherein a switching unit of the first class can be called by all subsystems ( 50 to 54 ) is
or that the switching unit ( 60 to 64 ) is contained in a second class of switching units ( 60 to 64 ), wherein a switching unit ( 60 to 64 ) of the second class can only be called by some of the subsystems ( 50 to 54 ),
or that the switching unit ( 60 to 64 ) is contained in a third class of switching units ( 60 to 64 ), wherein a switching unit ( 60 to 64 ) of the third class can only be called from its associated subsystem ( 50 to 54 ).
mit mindestens einem Prozessor (12, 13), der Programmbe fehle des Programmsystems ausführt,
mindestens einem Speicher (20), in dem die Programmbefeh le gespeichert sind,
mehreren im wesentlichen unabhängig voneinander erstell baren Subsystemen (50 bis 54), die Bestandteile des Pro grammsystems sind und die vorgegebene Funktionen der Da tenverarbeitungsanlage (10) definieren,
im wesentlichen gleichartig aufgebauten Vermittlungsein heiten (60 bis 64), die jeweils einem Subsystem (50 bis 54) zugeordnet sind und auf die zum Ausführen von Funk tionen zugegriffen wird, die Softwarebausteine (70 bis 74, 100, 102, 106, 108)) mehrerer Subsysteme (50 bis 54) benötigen,
und mit in jeder Vermittlungseinheit (60 bis 62) enthal tenen Verzeichnissen (VZ1 bis VZ3), welche auf im jewei ligen Subsystem (50 bis 54) enthaltene Softwarebausteine (70 bis 74, 100 bis 108) verweisen, wobei der der besag ten Funktion zugeordnete Softwarebaustein (70 bis 74, 100 bis 108) mit Hilfe des zugeordneten Verzeichnisses (VZ1 bis VZ3) durch die jeweilige Vermittlungseinheit (60 bis 64) aufgerufen wird.21. Data processing system ( 10 ) for executing a program system, in particular according to one of the preceding claims,
with at least one processor ( 12 , 13 ) which executes program instructions of the program system,
at least one memory ( 20 ) in which the program instructions are stored,
several subsystems ( 50 to 54 ) that can be created essentially independently of one another, which are components of the program system and define the predetermined functions of the data processing system ( 10 ),
essentially identical switching units ( 60 to 64 ), each assigned to a subsystem ( 50 to 54 ) and accessed for executing functions, the software modules ( 70 to 74 , 100 , 102 , 106 , 108 )) need several subsystems ( 50 to 54 ),
and with directories (VZ1 to VZ3) contained in each switching unit ( 60 to 62 ), which refer to software modules ( 70 to 74 , 100 to 108 ) contained in the respective subsystem ( 50 to 54 ), the function assigned to said function Software module ( 70 to 74 , 100 to 108 ) with the help of the assigned directory (VZ1 to VZ3) is called up by the respective switching unit ( 60 to 64 ).
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE19637883A DE19637883B4 (en) | 1996-09-17 | 1996-09-17 | Data processing system for executing large program systems |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE19637883A DE19637883B4 (en) | 1996-09-17 | 1996-09-17 | Data processing system for executing large program systems |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE19637883A1 true DE19637883A1 (en) | 1998-03-26 |
| DE19637883B4 DE19637883B4 (en) | 2005-06-16 |
Family
ID=7805901
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE19637883A Expired - Fee Related DE19637883B4 (en) | 1996-09-17 | 1996-09-17 | Data processing system for executing large program systems |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE19637883B4 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1079302A1 (en) * | 1999-08-23 | 2001-02-28 | Siemens Aktiengesellschaft | Method for operating a data processing system, module, exchange and corresponding computer program |
| EP1253532A1 (en) * | 2001-04-25 | 2002-10-30 | Siemens Aktiengesellschaft | Data processing method and apparatus |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB9921720D0 (en) | 1999-09-14 | 1999-11-17 | Tao Group Ltd | Loading object-oriented computer programs |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4211678A1 (en) * | 1992-04-07 | 1993-10-14 | Siemens Ag | Operating system architecture for operating systems with object-oriented graphical user interface |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02202652A (en) * | 1989-02-01 | 1990-08-10 | Hitachi Ltd | Multiple virtual memory management method |
| AU639802B2 (en) * | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
| US5361356A (en) * | 1992-03-06 | 1994-11-01 | International Business Machines Corporation | Storage isolation with subspace-group facility |
| US5455951A (en) * | 1993-07-19 | 1995-10-03 | Taligent, Inc. | Method and apparatus for running an object-oriented program on a host computer with a procedural operating system |
-
1996
- 1996-09-17 DE DE19637883A patent/DE19637883B4/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4211678A1 (en) * | 1992-04-07 | 1993-10-14 | Siemens Ag | Operating system architecture for operating systems with object-oriented graphical user interface |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1079302A1 (en) * | 1999-08-23 | 2001-02-28 | Siemens Aktiengesellschaft | Method for operating a data processing system, module, exchange and corresponding computer program |
| WO2001014966A3 (en) * | 1999-08-23 | 2002-06-27 | Siemens Ag | Method of operating a data processor, modular unit, switching center and associated computer program |
| EP1253532A1 (en) * | 2001-04-25 | 2002-10-30 | Siemens Aktiengesellschaft | Data processing method and apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| DE19637883B4 (en) | 2005-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE60226019T2 (en) | METHOD AND SYSTEM FOR CONTROLLING EXECUTABLE FILES WITH DIVIDED LIBRARIES | |
| DE69510572T2 (en) | Method and device for run-time error checking using dynamic program modification | |
| DE69503065T2 (en) | OBJECT-ORIENTED DEVICE FOR CONFIGURATION HISTORY MANAGEMENT | |
| DE19681256C2 (en) | Execution of applications in place from memory | |
| DE68926345T2 (en) | DATA PROCESSING NETWORK | |
| DE102007025397B4 (en) | Multi-processor system and method of operation | |
| DE10308545A1 (en) | Method and device for updating a distributed program | |
| EP1723513B1 (en) | Method for configuring a computer program | |
| EP1040414A1 (en) | Method for converting a system call | |
| EP1005215B1 (en) | Method and system for editing configuration data in telecommunications systems | |
| DE4104568A1 (en) | PROCESS PROCESSING PROCESS AND DEVICE | |
| DE2245284A1 (en) | DATA PROCESSING SYSTEM | |
| DE19637883A1 (en) | Operating method for data processing system | |
| DE69032835T2 (en) | Procedure state descriptor system for digital data processors | |
| DE10320062A1 (en) | Storage management for a portable data carrier | |
| DE102007015507B4 (en) | Processor with first and second modes of operation and method of operation | |
| DE10059006A1 (en) | Method for securely managing EEPROM data files on chip cards and other computing devices | |
| DE102005026256A1 (en) | Method for carrying out the data transfer between program elements of a process, buffer object for carrying out the data transfer, and printing system | |
| EP0662226B1 (en) | Method of processing an application program on a parallel-computer system | |
| DE69219538T2 (en) | IMPROVED SYSTEM AND METHOD FOR DETERMINING CROSS-BORDER CALLING COMMANDS AND STORAGE DATA, IN PARTICULAR FOR CODE INTERFACE EXECUTION IN THE MULTIPLE CODE EXECUTION AND TROUBLESHOOTING SYSTEM OF A MULTIPLE COMPUTER ARCHITECTURE | |
| EP1044409B1 (en) | Program flow method and method for expanding a program component system | |
| DE102017102147B4 (en) | Subsequent patchable memory (OTP) with bit memory cells and method of patching same | |
| DE102004006308B4 (en) | Method for modifying program code of a portable data carrier by means of patch data | |
| EP1668494B1 (en) | Method and system for configuring the language of a computer programme | |
| DE102004040010A1 (en) | Information processing program runtimes controlling method, involves processing container contents by special commands of processing unit and forwarding contents logically by functional units in runtime environment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8127 | New person/name/address of the applicant |
Owner name: FUJITSU SIEMENS COMPUTERS GMBH, 81739 MUENCHEN, DE |
|
| 8120 | Willingness to grant licences paragraph 23 | ||
| 8364 | No opposition during term of opposition | ||
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20110401 |