Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF
What is a subspace? z/OS MVS Programming: Extended Addressability Guide SA23-1394-00 |
|
A subspace is a specific range of storage in the private area of an address space, designed to limit the storage a program can reference. A program that is associated with a subspace cannot reference some
of the private area storage outside of the subspace storage range;
the storage is protected from the program. Whether a given range
of private area storage is protected from a program associated with
a subspace depends on whether the storage is:
You control these storage “states” through the IARSUBSP macro. Storage outside of the private area is not affected by subspaces. A program running in an address space can reference all of the storage associated with that address space. In this section, a program's ability to reference all of the storage associated with an address space is called full address space addressability. A program running with full address space addressability can reference storage in any of the three states: eligible to be assigned to a subspace, assigned to a subspace, or not eligible to be assigned to a subspace. A program that runs in an address space that owns subspaces also has full address space addressability. While running in a subspace, a program now has access to 64-bit private and shared storage. It can reference the 64-bit storage while in subspace mode and no longer needs to issue the BSG (Branch in Subspace Group) instruction to switch to the base mode to reference the 64-bit storage. A program running in a subspace can reference storage that is assigned to its own subspace and storage that is not eligible to be assigned to a subspace. It cannot reference storage that is eligible to be assigned to a subspace or storage that is assigned to a subspace other than the one in which the program is running. In other words, a subspace allows a program running in it to reference all of the storage associated with the address space except the private area storage that is eligible to be assigned to a subspace or assigned to another subspace. When storage is not eligible to be assigned to a subspace and not assigned to a subspace, it can be referenced by a program running in a subspace or a program running with full address space addressability. This storage can be referenced by all subspaces as well as by programs running with full address space addressability. An address space that owns subspaces is also called a “base space”. Figure 1 illustrates the concept of creating a subspace in base space ASID 23. Figure 1. Illustration of address space that owns one
subspace
An address space can have many subspaces. Each application program running simultaneously in an address space can run in its own subspace. The subspace restricts a program running in it from referencing the storage assigned to other subspaces. Figure 2 illustrates the concept of multiple subspaces by adding another subspace to address space ASID 23. Figure 2. Illustration of address space that owns two
subspaces
The number of subspaces per address space is limited by the amount of unallocated private storage available in the address space, and by the amount of storage assigned to each subspace. A subspace is associated with only one address space and is owned by the task that creates it. A task cannot pass addressability to its subspaces to its subtasks or SRBs. An attached subtask or an SRB gets control with full address space addressability. A subspace has an access list entry (called an “entry” in this section) associated with it. After a program creates a subspace, it adds the entry to the dispatchable unit access list (DU-AL) associated with the task the program runs under. A program does not have to be in AR mode to use a subspace, although it can be. A program can toggle between running in a subspace and running with full address space addressability by issuing the BSG instruction. |
Copyright IBM Corporation 1990, 2014
|