Session O324 - MVSE: ESA/370 Hiperspaces and Data Windowing Services

SHARE 71
August 15-19, 1988

This was a technical discussion of some of the more exotic features of MVS/ESA, the new fancy turbocharged version of the operating system we all love/hate.

In MVS/XA address spaces are 2 gigabytes in length, and in stock MVS they are 16 megabytes. In both cases, you access two address spaces simultaneously through the use of Cross Memory Services instructions (MVCP, MVCS, SAC). Cross Memory Services is hairy and unfriendly and not intended for casual use.

MVS/ESA introduces a new addressing mode that makes it significantly easier to get to other address spaces. In ESA, general purpose register contents are paired with an address space. When you use a register to generate an address, the address space selected is the one that is implicitly associated with the register. A single instruction can be dealing with three address spaces simultaneously:

         MVC   FIELD1,FIELD2
In the above MOVE instruction, FIELD2 in one address space could be moved to FIELD1 in another address space. The instruction itself resides in and is executed from yet a third address space. ESA provides a new linkage facility that reduces the complexity of normal cross-memory activity, which saves both register contents and address space associations.

ESA calls the address space that contains instructions an "execution space". Address spaces that contain data only are called "data spaces"; they are a full 2 gigabytes in size and do not share a common area with other address spaces. All memory from location zero onward are available to the programmer. There are no system-maintained data areas in a data space - they don't even contain their own page and segment tables! Access to a data space is controlled by its owner, in this case on a task basis.

MVS/ESA makes a great deal of use out of data spaces. Data-In-Virtual (DIV) files can be mapped into data spaces, and DIV now supports a read-ahead performance option for sequential files (there is no access method support for data spaces other than DIV however). Library Lookaside (LLA - more on this later) can pre-relocate load modules and save them into data spaces.

Hiperspaces (high-performance spaces) are an ESA construct that allows you to explicitly read/write 4K chunks of data from/to the paging mechanism.


Back to session index
Back to index of SHARE meetings
Read the disclaimer