Many factors affect the total amount of shared memory that the OpenEdge RDBMS can allocate, including program size, stack space required, shared libraries, memory-mapped files, and memory allocated from the heap. The address space and memory allocation policies used by different operating systems are complex and vary considerably from one operating system to another. The following figure provides a sample layout for a generic 32-bit process address space. For the precise layout of your system, consult your operating system documentation.
Figure 39. Sample 4GB process address space
Most 32-bit operating systems divide a 4 GB address space into different address ranges or sections. Each section has explicit purposes. In the previous figure, the 4 GB process address space is divided into multiple sections including, the kernel, the program and its data, stack space, heap space used for dynamic memory allocation, and global data that includes shared memory and shared libraries or .dll files. The size of each section varies depending on operating system and does affect the size of allocated shared memory segments.
For 64-bit operating systems, most computational limits are theoretical and constrained by the available hardware. See your operating system documentation for specific information.