Tunable Kernel Parameters

Table Of Contents
Interprocess Communication (IPC) Subsystem
Overview of Shared Memory Operation
Chapter 5
38
Overview of Shared Memory Operation
See “Shared Memory Parameter Summary” on page 33 for the list of parameters.
Shared Memory
Shared memory is reserved memory space for storing data structures and data being
shared between or among cooperating processes. Sharing a common memory space
eliminates the need for copying or moving data to a separate location before it can be
used by other processes, reducing processor time and overhead as well as memory
consumption.
Shared Memory Access and Use
Shared memory management is similar in many respects to messages and semaphores.
A process requests a shared memory segment allocation by means of the shmget()
system call, specifying the segment size in one of the function parameters (see shmget
(2)). One or more processes can then attach to the allocated segment by using the
shmat() system call and detach when finished with the shmdt() system call (see shmop
(2)). shmctl() is used to obtain information about the segment, and to remove the
segment when it is no longer needed (see shmctl (2)).
Semaphores can be used to prevent shared memory read/write access collisions, but the
more common method is for one process to populate (write to) a given shared memory
segment and other processes read from the segment (write once, read many). In such
arrangements, when a subsequent write operation is to be performed, the writing
process allocates a new segment, and cooperating processes attach to that new segment
when ready to use it.
Shared memory is allocated in swappable shared memory space. Data structures for
managing shared memory are located in the kernel.