Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Structure of virtual address space

&pagelevel(4)&pagelevel

Virtual address space is a series of virtual addresses in continuous ascending order, starting at 0.

The size of the virtual address space can be selected for /390 servers and may be up to 2 Gb, see figure 4. The user address space for x86 servers is generated with 2 Gb and cannot be modified.

Since commands cannot be executed unless they and their operands are located in main memory, it is necessary to convert the virtual addresses of the address space into real main memory addresses (see "Address conversion"). This conversion takes place when the program is executed.

BS2000 divides virtual address space into pages for management purposes. A page consists of 4 Kb (4096 bytes), i.e. users can request memory for their programs in portions of 4 Kb.
Each task is assigned its own virtual address space when it is created. Virtual address space is divided into six memory classes with different attributes. Each page can be assigned to exactly one of these classes.
Classes 5 and 6 together represent the task-local part of the virtual address space, although only class 6 memory is addressable by users for their own programs and data (user address space). In class 5 memory, the system sets up tables that it requires for communication with the user task. Nonprivileged users cannot normally access this
memory area. There are exceptions to this rule, e.g. nonprivileged DSSM subsystems that can also be loaded into class 5 memory. Classes 1 through 4 are privileged, although class 4 can contain subsystems and users' reentrant programs in addition to system tables. Classes 1, 2 and 3 are available only to the system.

Division into memory classes

Memory class

Attributes

Contents and availability

6

  • nonresident (presetting)

  • assigned dynamically

  • task-local

  • Programs and work areas of the
    (nonprivileged) user

  • Nonprivileged users have read and write
    access to this class

5

  • nonresident

  • assigned dynamically

  • task-local

  • System tables for linking the task to the
    system and to nonprivileged subsystems

  • Nonprivileged users do not normally have
    access to this class

4

  • nonresident

  • assigned dynamically

  • system-global

  • Pageable tables, dynamically loadable parts
    of the system and reentrant programs
    (shared code)

  • Nonprivileged users have read access to
    shared code

3

  • resident

  • assigned dynamically

  • system-global

  • Resident tables, dynamically loadable parts

    of the system and system work areas

  • May not be accessed by nonprivileged users

2

  • nonresident

  • static

  • system-global

  • Pageable tables and system modules

  • May not be accessed by nonprivileged users

1

  • resident

  • static

  • system-global

  • Resident tables and system modules

  • May not be accessed by nonprivileged users

Table 5: Definition of the memory classes

Virtual address space on /390 servers

The information in figure 4 shows the structure of the 2 Gb virtual address space in servers with /390 architecture (standard setting).

Figure 4: Structure of virtual address space (/390 servers)

Size of user address space

User address space (class 6 memory) and task-local system address space (class 5 memory) each have an area of address space above and below the 16-Mb boundary. There are no fixed boundaries between class 5 and class 6 memory. The boundaries can vary in either direction, depending on the memory requirements for each of the two memory classes. The maximum size of the user address space is also variable, therefore, and depends on the amount of class 5 memory required for the activities performed by the user task. However, 1/8 of the common area is always reserved for class 5 memory; class 6 memory can never occupy the entire area.

There are three other factors that determine the size of the user address space:

  1. Setting the size of the user address space (/390 servers only)
    The user address space is generated with 1808 Mbytes.
    The procedure SYSPRC.BS2000-EXEC.version can be used to generate a BS2000 EXEC with a different user and overall address space using the BS2000 standard EXEC supplied as a basis, see the “System Installation” manual [11 (Related publications)].
    Of the standard size of 1808 Mb (or 896 Mb or 448 Mb) for the task-local address space (which corresponds to a total address space of 2048 Mb (or 1024 Mb or 512 Mb)), 1/8 is reserved for class 5 memory. This leaves a size of 1568 Mb (or 770 Mb or 378 Mb) for class 6 memory above 16 Mb.

  2. System initialization
    The size of the shared code area below 16 Mb can be set via the parameter service at system initialization time. The default setting is 2 Mb. In addition, during system initialization DSSM determines the total requirement for class 5 memory across all subsystems using SCOPE=*GLOBAL. A correspondingly large area is reserved for class 5 memory (in addition to the general share of 1/8), but this can be released again on a task-local basis using /RELEASE-SUBSYSTEM-SPACE. A total of approximately 12 Mb remains for the class 6 memory when SHRSIZE=2 Mb.

  3. User catalog
    The user entry defines the contingent (in Mb) which is available to the user for allocations in the virtual address space. It covers the memory requests in class-6 memory of the user address space and in the data spaces which are created by the user.
    The maximum size of class 6 memory available to each user is entered in the user catalog. However, this value determines only the amount of class 6 memory required, not its location (above or below 16 Mb).
    In the output of the SHOW-USER-ATTRIBUTES command, the ADDRESS-SPACE-LIMIT field contains the maximum permitted size of class 6 memory for a user ID (see the “Commands” manual [19 (Related publications)]).