Progress
Client Deployment
Guide
R-code Execution Environment
Progress provides a dynamic environment for loading and executing r-code procedures from operating system files, standard procedure libraries, and memory-mapped procedure libraries. This execution environment consists of the following components:
- Execution buffer — The portion of local memory that Progress allocates and uses to store the chain of loaded r-code segments for all standard r-code procedures executing in local memory.
- Session sort file (.srt) — A file that Progress uses to dynamically swap standard r-code segments in and out of the execution buffer.
- Shared memory buffer — The portion of shared memory that the operating system allocates and uses to store and execute the r-code segments for all memory-mapped r-code procedures.
- Segment descriptor table — An in-memory table that references the r-code segments required by all executing procedures, including the location of each r-code segment in local or shared memory and usage count information.
- R-code directory — An in-memory table that contains information about all r-code procedures executing in local or shared memory, including r-code size, usage count, segment descriptions, and a reference to the segment descriptor table for each segment.
For more information about the r-code execution environment, see the Progress Programming Handbook.
Progress loads and executes r-code procedures in different ways, depending on whether you store the r-code files in an r-code library and the type of library. The following sections provide an overview of how Progress loads and executes r-code from an operating system file, a standard procedure library, and a memory-mapped procedure library.
Loading and Executing R-code From a File
When loading an r-code procedure from an operating system file in a directory, Progress opens the r-code file, loads the required r-code segments into local memory, and closes the file.
When executing an r-code procedure from an operating system file, Progress accesses and executes the r-code segments in the execution buffer in local memory. Progress also swaps segments to and from the session sort file, as necessary.
Loading and Executing R-code From a Standard Library
When loading an r-code procedure from a standard library, Progress opens the library file and loads the required r-code segments into local memory. The library remains open until the end of your Progress session or until you remove the library from the PROPATH. When Progress needs to load an r-code segment for a procedure in that library, it accesses the open library in local memory. This is much faster than loading the same procedure from an operating system file.
When executing an r-code procedure from a standard r-code library, Progress accesses and executes the r-code segments in the execution buffer in local memory. Progress does not swap r-code segments to the session sort file unless you specify the PROLIB Swap (-pls) startup parameter. By default, Progress reloads segments from the open library in local memory.
Loading and Executing R-code From a Memory-Mapped Library
When loading an r-code procedure from a memory-mapped library, Progress opens the library and maps it in shared memory where multiple users can access it. The library remains mapped until the end of your Progress session or until you remove the library from the PROPATH. When Progress needs to execute an r-code segment for a memory-mapped procedure, it accesses the library in shared memory. This is even faster than loading the same procedure from a standard library.
Tuning R-code Execution
Table 4–1 lists the startup parameters you use to tune the r-code execution environment for a session.
For more information about these startup parameters, see the Progress Startup Command and Parameter Reference.
Tuning Standard R-code Libraries
Table 4–2 lists the startup parameters you use to tune standard r-code libraries for a session.
If you specify the PROLIB Memory (-plm) and PROLIB Swap (-pls) startup parameters with memory-mapped libraries, Progress ignores them.
For more information about these startup parameters, see the Progress Startup Command and Parameter Reference.
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |