z/OS MVS Programming: Extended Addressability Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Types of access lists

z/OS MVS Programming: Extended Addressability Guide
SA23-1394-00

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".

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014