[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
5 Object Memory (SVOS)
------------------------------------------------------------------------------------------
An object memory is a special type of memory manager designed to
manage complex data values such as character strings and arrays.
The Clipper 5.0 object memory is called the Segmented Virtual Object
Store (SVOS). SVOS uses virtual memory to store data values, including
character strings, arrays, and dynamically created (macro-compiled)
code blocks.
SVOS provides two important functions beyond the basic capabilities
offered by the VMM:
. Memory compaction: Stored values are automatically compacted
on an ongoing basis. This eliminates fragmentation of the virtual
memory and reduces swapping.
. Garbage collection: Some Clipper 5.0 values (e.g., arrays)
may be referred to by several program variables (or array elements)
at the same time. The garbage collection algorithms automatically
reclaim space occupied by unreachable values (values which are
no longer accessible through any variable or array).
To minimize delays associated with memory compaction and garbage
collection, the SVOS algorithms are dynamically adjusted based on the
type, size, and persistence of data being stored, the amount of memory
available (real and EMM), and the overall performance of the system.
The algorithms attempt to manage memory in such a way that the VMM can
swap out infrequently used data, freeing up real address space for
time-critical operations.
The dynamic nature of the SVOS algorithms makes it difficult to
precisely state its maximum capacity. The worst case capacity is in
excess of 1MB. The theoretical maximum is in excess of 16MB.
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson