Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Struktur des Anwendungsprogramms festlegen

In diesem Kapitel wird auf die Strukturierung eines Anwendungsprogramms eingegangen.

Bitte beachten Sie, dass Sie das Anwendungsprogramm mit dem Dienstprogramm BINDER binden und über die Funktionen des BLS laden müssen.

Ein UTM-Anwendungsprogramm kann unterschiedlich strukturiert und auf verschiedene Weise geladen werden. Generell lassen sich fünf verschiedene Bereiche unterscheiden:

  • Shareable Programme im Systemspeicher.

    Programmteile, die in den Systemspeicher geladen werden, stehen allen Prozessen eines BS2000-Systems gemeinsam zur Verfügung. Daher sollten Sie in den Systemspeicher in erster Linie Programme laden, die Anwendungs-unabhängig sind, wie z.B. die shareable Teile von Laufzeitsystemen der Programmiersprachen. Sehen Sie dazu Abschnitt „Shared Code im Systemspeicher".

    Die shareable Module müssen vom Systemadministrator als nicht-privilegiertes Subsystem geladen werden.

  • Statisch gebundene Programmteile.

    Die ROOT-Systemmodule sowie die von diesen benötigten Module des Laufzeitsystems (ILCS) und die Meldungsmodule, für die in der UTM-Generierung keine Nachladebibliothek angegeben wurde, müssen Sie statisch in das Start-LLM einbinden. Das von KDCDEF erzeugte und anschließend von Ihnen assemblierte ROOT-Tabellenmodul kann statisch eingebunden oder beim Start dynamisch nachgeladen werden.

    Auch weitere Teile der Anwendung können Sie in den statischen Teil einbinden, jedoch dürfen diese keine Externverweise auf Module enthalten, die Sie in einen von openUTM verwalteten Common Memory Pool laden.

    Den statischen Teil einer UTM-Anwendung laden Sie mit dem Kommando

    START-EXECUTABLE-PROGRAM bzw. LOAD-EXECUTABLE-PROGRAM

  • Shareable Programme in Common Memory Pools.

    Programmteile, die von allen Prozessen einer UTM-Anwendung gemeinsam benutzt werden können, wie z.B. die shareable Teile der Teilprogramme der UTM-Anwendung oder auch Formate oder Datenbereiche, sollten Sie in Common Memory Pools laden. Sehen Sie dazu Abschnitt „Shared Code in Common Memory Pools".

  • Beim Start der Anwendung zu ladende Programmteile.

    Programmteile, die ständig von der UTM-Anwendung benötigt werden oder die Externverweise zu shareable Teilen der Anwendung enthalten, sollten Sie beim Anwendungsstart dynamisch nachladen lassen.

    Auch das vom KDCDEF erzeugte und assemblierte ROOT-Tabellenmodul wird dynamisch nachgeladen, falls Sie es nicht statisch zum Start-LLM dazugebunden haben.

  • Beim Programmaufruf zu ladende Programmteile.

    Programmteile, die nicht ständig von der UTM-Anwendung benötigt werden, können Sie so generieren, dass diese erst zum Zeitpunkt des ersten Aufrufs nachgeladen werden. Diese Programmteile müssen Sie derart zu LLMs vorbinden, dass alle offenen Externverweise beim Laden aus den bereits im Speicher vorhandenen Modulen befriedigt werden können.

In welchen der Speicherbereiche und zu welchem Zeitpunkt die Programmteile geladen werden, ist abhängig von den Angaben, die Sie bei der UTM-Generierung der Anwendung mit KDCDEF machen (siehe openUTM-Handbuch „Anwendungen generieren“).

Informationen dazu finden Sie im Handbuch in den folgenden Kapiteln: