Felicia Ionescu
University "Politehnica" of Bucharest
Str. Alexandru Constantinescu Nr. 27,Bucharest, Romania
Tel.+401 665 45 97
e-mail: fionescu@atm.neuro.pub.ro
| ABSTRACT
The paper is dealing with the problem of virtual memory management in multiprocessor systems for real-time visualization of large virtual scenes. A virtual scene (or synthetic environment) is an integrated set of data elements that describe a defined geographical region. Large virtual scenes, including extended geographical regions, can be represented as a number of virtual segments, which usually, require a memory space much greater than physical memory of the image generator. The virtual memory scheme implemented by the operating system based on page swapping on page fault interrupt is not acceptable in real-time image generation and have to be replaced with an application-level memory management scheme. The physical memory is dynamically allocated to different segments of the virtual scene, depending on the relative position of the segment towards the observer position. We do not expect a memory miss interrupt in order to swap virtual segments, and we must prevent a memory miss situation by repeatedly execution of a mapping function, which allows that a virtual segment is present in physical memory when it is needed. The representation and visualization of large synthetic environments was studied and experimented on a Silicon Graphics multiprocessor, Onyx, with four MIPS R10000 processors and Infinite Reality graphic accelerator, under IRIX 6.4 operating system. Keywords Real-time multiprocessor systems, virtual memory management, shared-memory interprocess communication, virtual scenes. 1. INTRODUCTION
|
geographical region. It must contain a consistent and
correlated description of the full physical environment (terrain, features
and 3-D objects). Large virtual scenes including extended geographical
regions can be represented as a number of virtual segments, which usually,
require a memory space much greater than physical memory of the image generator.
In virtual memory systems, partially loaded programs can be executed by
maintaining an image of the entire virtual address space of the process
on secondary storage, and bringing its sections (segments or pages) into
main memory, when needed. When a process references an address in its virtual
space which is not allocated in real memory, a page fault occurs, and the
operating system loads corresponding item (segment or page) into memory,
by replacement of another items. A page fault interrupts a process for
many milliseconds.
A real-time application, such as image generation, cannot tolerate such interruptions. The condition of a constant frame rate in real-time image generation requires locking all pages of the processes address space into memory, and inhibiting page swapping. For each process, text, stack and data segments can be locked using one of available memory locking functions (mlock(), plock()). This operation reduces the memory that it is available for all other programs, but this is not a problem, because, usually, the real-time image generation exploits the system in a single-user, single-program mode. The condition which arises if we need to work with the whole address space of processes locked in the memory, is that the physical memory dimension to be enough large to store all text, stack and data segments. Text and stack segments of an image generation program have, in general, an acceptable dimension, but the memory required for data segments to store large virtual scenes is much greater than physical memory. The virtual memory scheme implemented by the operating systems based on page swapping on page fault interrupt is not acceptable in real-time image generation and is replaced with another memory management scheme, in order to expand the use of physical memory among many segments of the virtual scene with the help of an auxiliary (backup) memory, such as disk arrays. With a limited size of physical memory, only a limited number of virtual segments can be present in memory at any given instance. Virtual memory management in real-time image generation depends on the representation of the virtual scene, on the target image generator architecture and program organization. All these aspects will be discuss, in order to establish a mechanism for virtual memory management in real-time image generation. |