The access list can be one of two types:
- A primary address space access list (PASN-AL) — the access list
that is associated with an address space
- A dispatchable unit access list (DU-AL) — the access list that
is associated with a work unit (a TCB or SRB).
A program uses the DU-AL associated with its work unit and the
PASN-AL associated with its primary address space.
The difference between a PASN-AL and a DU-AL is significant. If
your program is a part of a subsystem that provides services for many
users and has its own address space, it might reference address/data
spaces through its PASN-AL. A program can create a data space, add
an entry for the data space to the PASN-AL, and obtain the ALET that
indexes the entry. By passing the ALET to other programs in the address
space, the program can share the data space with other programs running
in the address space.
If your program is not part of a subsystem, it will probably place
entries for address/data spaces in its DU-AL.
Each work unit has one DU-AL; programs that the work unit represents
can use it. That DU-AL cannot be shared with another work unit. A
program can, however, use the ALCOPY parameter on the ATTACH(X) macro
at the time of the attach, to pass a copy of its DU-AL to the attached
task. Attaching a subtask and sharing data spaces with it describes a program attaching
a subtask and passing a copy of its DU-AL. This action allows two
programs, the issuer of the ATTACH macro and programs running under
the attached task, to have access to the address/data spaces that
were represented by the entries on the DU-AL at the time of the attach.
Each address space has one PASN-AL. All programs running in the primary
address space can use the PASN-AL for that address space. They cannot
use the PASN-AL of any other address space.
The following lists summarize the characteristics of DU-ALs and PASN-ALs.
- The DU-AL has the following characteristics:
- Each work unit has its own unique DU-AL.
- All programs that the work unit represents can add and delete
entries on the work unit's DU-AL.
- A program cannot pass its task's DU-AL to a program running under
another task. Tasks can never share a DU-AL. The one exception is
that a program can pass a copy of its DU-AL to an attached task.
When
the DU-AL contains address space, data space, or hiperspace entries,
the new subtask starts with an identical copy of the attaching task's
DU-AL. The two DU-ALs do not necessarily stay identical. After the
attach, the attaching task and the subtask are free to add and delete
entries on their own DU-ALs.
If the attaching task deletes
the data space and the DU-AL entry for that data space, the subtask
will still have an entry in its own DU-AL for that data space, but
no program will be able to access this data space from the subtask.
When
the DU-AL contains subspace entries, the new subtask does not start
with an identical copy of the attaching task's DU-AL, because the
system does not copy the subspace entries to the subtask's DU-AL.
- A program can pass its work unit's DU-AL to an SRB
routine that the program schedules by using one of the following:
- MODE=FULLXM parameter on the SCHEDULE macro
- ENV=FULLXM parameter on the IEAMSCHD macro
Similarly, a program can pass its work unit's DU-AL to a task
that the program attaches by using the following:
- ALCOPY=YES parameter on the ATTACH(X) macro
The system dispatches the SRB with an identical copy of the scheduling/attaching
work unit's DU-AL, minus any subspace entries, which are not copied.
The new work unit (once it is dispatched) may add and delete entries
on its DU-AL but must not delete the entries present on the DU-AL
when it was initially dispatched.If the new work unit deletes initially-present
access list entries, message IEF356I may be issued during job termination:
- IEF356I ADDRESS SPACE UNAVAILABLE DUE TO CROSS MEMORY BIND
- A DU-AL can have up to 509 entries.
- A program can add more than one entry to its DU-AL for the same
data space.
- The PASN-AL has the following characteristics:
- Every address space has its own PASN-AL. The system initializes
the PASN-AL to contain entries for existing SCOPE=COMMON data spaces.
- Supervisor state programs and programs in PSW key 0 - 7 running
with this address space as the primary address space can add and delete
entries on the PASN-AL.
- Problem state programs with PSW key 8 - F can add an entry to
the PASN-AL for a SCOPE=SINGLE data space.
- All programs running with this address space as the primary address
space can access address/data spaces through the PASN-AL.
- The PASN-AL is useful for cross memory service providers.
- A PASN-AL can have up to 510 entries, some of which are reserved for SCOPE=COMMON
data spaces.
- When the job step terminates, the PASN-AL is purged.
Adding and deleting DU-AL and PASN-AL entries for address spaces
might require that the program have special authorization. For more
information on this authorization, see EAX-authority to an address space.
Because access lists belong to work units, you must remember the
relationship between the program and the work unit that represents
the program. For simplicity, this section describes access lists as
if they belong to programs. For example, "your program's DU-AL" means "the
DU-AL that belongs to the TCB that represents your program".