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 des Benutzers

Shared Code, der von einem Benutzer ohne besondere Privilegien verwaltet werden soll, wird in Common Memory Pools abgelegt. Common Memory Pools werden im Klasse-6-Speicher angelegt. Die dort geladenen Module sind für alle die Tasks gemeinsam benutzbar, die sich an den Memory Pool angeschlossen haben.

Der Shared Code kann mit dem Makro ASHARE in den Common Memory Pool geladen werden. Jede Task, die sich an den Common Memory Pool angeschlossen hat, kann:

  • ein gemeinsam benutzbares Programm (bestehend aus einer Menge von Modulen) in den Memory Pool laden

  • ein gemeinsam benutzbares Programm entladen

  • Informationen über die geladenen Module abfragen

Der Name des Programmes und jedes sichtbare Symbol im Shared Code des Betzers können im Operanden SYMBOL in den Kommandos START/LOAD-EXECUTABLE PROGRAM bzw. START/LOAD-PROGRAM sowie im Makroaufruf BIND angegeben bzw. zur Befriedigung von Externverweisen genutzt werden. Wird in einer Task, die noch nicht an den Common Memory Pool angeschlossen ist, auf Programmdefinitionen im Shared Code in diesem Memory Pool verwiesen, dann führt der DBL automatisch den ENAMP-Makro aus (ENAble Memory Pool, siehe „Makroaufrufe an den Ablaufteil“ [7]).

Mit dem Makro BIND (Parameter MPID) kann das Laden in den Common Memory Pool ebenfalls erreicht werden. Auf Programme, die so geladen wurden, kann jedoch nur die Task zugreifen, die das Laden in den Memory Pool veranlasst hat. Das bedeutet, dass diese Task für die Verwaltung des Memory Pools selbst verantwortlich ist. Die Informationen über ein so geladenes Programm (z.B. die Ausgaben des VSVI1-Makros) sind ebenfalls nur für die Task verfügbar, die das Programm geladen hat.

Im Folgenden wird immer davon ausgegangen, dass der Shared Code mit dem ASHARE-Makro in ein- und denselben Common Memory Pool geladen wurde.

Ein Programm kann entweder nur mit dem BIND-Makro oder nur mit dem ASHARE-Makro in ein- und denselben Memory Pool geladen werden.