Copyright ACM, 2000
Applicaton-Level Virtual Memory Management in Real-Time Multiprocessor Systems

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
A virtual scene (or synthetic environment) is an integrated set of data elements that describe a defined
 
 
 
 
 
 

 

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.
                                                                                                                                                                            Next Page

Copyright 2000 ACM

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and or fee.
SAC 2000 March 19-21 Como, Italy
(c) 2000 ACM 1-58113-239-5/00/003>...>$5.00