Shared Memory

Shared memory is good for sharing data, and it can also be useful for keeping track of resources shared across multiple processes. It saves an application from moving the data multiple times, as is done for pipes, message queues, and sockets.

Shared memory provides an efficient way for multiple processes to share data, such as control information that all processes require access to. The processes use semaphores to take turns getting access to the shared memory. For example, a server process can use a semaphore to lock a shared memory area, then update the area with new control information, use a semaphore to unlock the shared memory area, and then notify the sharing processes. Each client process sharing the information can then use a semaphore to lock the area, read it, and then unlock it again for access by other sharing processes.

If your applications use shared memory, be aware of its extended system queue area (ESQA) requirements, and how to reduce the real storage requirements. A number of UNIX System Services use base z/OS functions that consume ESQA storage. This storage is fixed, consuming main memory rather than only virtual storage. Installations having constraints on virtual storage or main memory can control the amount of ESQA storage consumed.

Use this panel to select your shared memory settings.

You can find more detailed help on the following elements of this window:

Number of system-wide shared pages (IPCSHMSPAGES)

Number of pages for shared memory segments (IPCSHMMPAGES)

Number of attached shared-memory segments per address space (IPCSHMNSEGS)

Number of unique system-wide shared memory segments (IPCSHMNIDS)