Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Shared Code nutzen

Viele Compiler bieten eine Option an, die es gestattet, bei der Übersetzung von Programmen einen shareable Teil zu erzeugen. Dieser muss nicht unbedingt in einem eigenen Objektmodul abgelegt werden, sondern kann zusammen mit dem nicht-shareable Teil in einem LLM stehen, der in einen Public und einen Private Slice unterteilt ist.

Folgende Objekte können shareable geladen werden:

  • shareable Module der Teilprogramme

  • Formate

  • ein Teil der Module für die Formatierung (falls shareable)

  • gemeinsam verwendbare Datenbereiche (Areas)

  • benötigte Datenbank-Verbindungsmodule, falls diese shareable sind

  • die Meldungsmodule

  • Module der Laufzeitsysteme der Programmiersprachen, die shareable sind (siehe Handbücher der einzelnen Programmiersprachen)

Wenn Teile eines Teilprogramms shareable sein sollen, so müssen Sie das bereits beim Programmieren berücksichtigen. Was Sie beim Programmieren beachten müssen, ist abhängig vom Compiler, der das Teilprogramm übersetzt. Näheres dazu finden Sie im openUTM-Handbuch „Anwendungen programmieren mit KDCS“ bzw. in der entsprechenden Sprachergänzung.

Mit COBOL-Compiler ist entweder COBOL85 oder COBOL2000 gemeint.

COBOL-Teilprogramme, die mit dem COBOL85-Compiler übersetzt werden, sind shareable, wenn Sie bei der Übersetzung die Option COMOPT GEN-SHARE-CODE=YES angeben. Mit der Option COMOPT GEN-LLM=YES veranlassen Sie den Compiler, die Objekte in einen LLM mit Slices abzulegen.

COBOL-Teilprogramme, die mit dem COBOL2000-Compiler übersetzt werden, sind shareable, wenn Sie bei der Übersetzung folgende Optionen angeben:

COMPILER-ACTION=*MOD-GEN(SHAREABLE-CODE=*YES, MODULE-FORMAT=*LLM,...)

C/C++-Teilprogramme sind shareable, wenn Sie beim Übersetzen die folgende Option angeben:

COMPILER-ACTION=MODULE-GENERATION(SHAREABLE-CODE=YES,...)

Die entsprechende Option in weiteren Programmiersprachen finden Sie in den zugehörigen Benutzerhandbüchern.

Außerdem werden auch viele Laufzeitsysteme der Programmiersprachen mit einem shareable Teil ausgeliefert.

Wenn Sie ein Teilprogramm austauschen möchten, das aus einem nicht-shareablen und einem shareablen Modul besteht, dann sollten Sie die shareable und nicht-shareable Teile zu einem LLM mit Slices vorbinden. Andernfalls können beim Austausch Konsistenzlücken entstehen. Konsistenzprobleme können Sie auch dadurch umgehen, indem Sie vor dem Austausch eines Lademoduls die TACs der in diesem Lademodul enthaltenen Teilprogramme sperren und diese erst nach dem Austausch der shareable und der nicht-shareable Teile wieder freigeben.

Shared Code laden

Die shareable Programmteile brauchen für alle Tasks der Anwendung(en) gemeinsam nur einmal geladen werden. In den task-lokalen Speicher müssen dann nur noch die nicht-shareable Teile geladen werden.

Sie haben verschiedene Möglichkeiten, shareable Objekte zu laden:

  • in den Systemspeicher als nicht-privilegiertes Subsystem in den Klasse-3/4/5- oder 6-Speicher,

  • in einen von openUTM verwalteten Common Memory Pool im Benutzerspeicher (Klasse-6-Speicher).

Sehen Sie dazu auch das Handbuch „BS2000/OSD Verwaltung von Subsystemen (DSSM/SSCM)“.