Memory management on iSeries is based on temporary, dynamic memory. Both single-level storage (SLS) and teraspace are used. In addition, for extended memory the so called undefined memory mapped files (including memory protection) are used. The memory type is implemented in the same way as for UNIX.
· In the single-level storage concept main memory and auxiliary storage (for example, disk storage) are considered as a single large address space, whose linearly addressable areas can grow to a maximum size of 16 MB.
· A teraspace is temporary dynamic storage, that provides an address space of 1 terabyte for each process (that is, iSeries job). A teraspace can consist of a number of separately allocated and deallocated storage areas. Between these areas, "addressability holes" can exist, that is, storage areas that are not allocated. Although teraspace is also based on single-level storage, it is completely transparent to the processes (iSeries jobs). This memory type is used for the so called roll area.
· For memory mapped files, the storage area with a given size is mapped to a undefined file of a given size in the file system. All commands that access the memory space are redirected to file access by the operating system. Memory protection is achieved by explicit attach and detach instructions to the extended memory when activating and deactivating a user context.
For the memory management to function optimally, sufficient free auxiliary storage must be available. The implementation of memory on iSeries is completely analog to UNIX. For more information, see Allocating Memory for User Contexts (UNIX) and Implementing the Extended Memory Under UNIX.