Try OpenEdge Now
skip to main content
Managing ABL Applications
R-code Features and Functions : R-code execution : Memory-mapped r-code execution environment

Memory-mapped r-code execution environment

At run time, OpenEdge manages the execution of memory-mapped r-code using the following components:
*Shared memory buffer — The portion of shared memory that the operating system allocates and uses to store r-code segments for members in a memory-mapped procedure library
*Segment descriptor table — An in-memory table that references the r-code segments required by all executing members, including the location of each r-code segment in memory and usage count information
*R-code directory — An in-memory table that contains information about each executing member, including r-code size, usage count, segment descriptions, and a reference to the segment descriptor table for each segment
OpenEdge uses the segment descriptor table and the r-code directory to manage r-code from operating system files, standard libraries, and memory-mapped libraries.
The following image shows the layout for the memory-mapped r-code execution environment.
Figure 16. Memory-mapped r-code execution environment
In the above image, OpenEdge locates the cust.r and orders.r members in a memory-mapped library. Note that all r-code segments in a memory-mapped library are located in shared memory. When OpenEdge needs a segment, it executes the segment directly from shared memory.
* Memory-mapped execution sequence
* Memory-mapped execution environment limits
* Memory-mapped r-code segment management