Browse Prior Art Database

Program Restructuring Technique for Improving Memory Management Performance

IP.com Disclosure Number: IPCOM000117534D
Original Publication Date: 1996-Mar-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 4 page(s) / 150K

Publishing Venue

IBM

Related People

Chen, J-C: AUTHOR [+4]

Abstract

In a virtual memory environment, the address space of a program can be much larger than the amount of physical memory present in the machine. Hence, at any given time, only a subset of the pages in the program's address space can reside in the physical memory. When a certain portion of the program's address space is referenced, the corresponding page may or may not be in the physical memory. If it is not in physical memory, secondary storage (DASD) is accessed to transfer the page to the physical memory. Such an event is known as a page fault. Since the access time to the DASD exceeds the access time to physical memory by almost two orders of magnitude, the performance of the system will be adversely affected by excessive page faults.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 39% of the total text.

Program Restructuring Technique for Improving Memory Management Performance

      In a virtual memory environment, the address space of a program
can be much larger than the amount of physical memory present in the
machine.  Hence, at any given time, only a subset of the pages in the
program's address space can reside in the physical memory.  When a
certain portion of the program's address space is referenced, the
corresponding page may or may not be in the physical memory.  If it
is not in physical memory, secondary storage (DASD) is accessed to
transfer the page to the physical memory.  Such an event is known as
a page fault.  Since the access time to the DASD exceeds the access
time to physical memory by almost two orders of magnitude, the
performance of the system will be adversely affected by excessive
page faults.  From the analysis of operating system and application
traces, it has been identified that large working sets are the
prevalent cause for excessive page faults.  (Working set is defined
as the number of pages referenced in a program execution over a given
time period.)  The move toward graphical interfaces in applications
and operating systems will only increase memory requirements.  Thus,
reducing the working set size and the occurrence of page faults is an
important step in improving the system performance.

      A program is composed of many routines which are (possibly)
stored across several pages and are relocatable in the virtual memory
environment.  The order of placing the routines within the program's
address space can significantly impact the amount of physical memory
required for the efficient execution of that program.  Typically,
programs designed for large complex applications usually perform
multiple tasks.  Ordering the routines for the most efficient
execution of a single task can be achieved rather easily.  However,
establishing an optimal ordering of the routines across all possible
tasks is a non-trivial problem.  The sequence of routines called and
the frequency of each routine called may not be apparent on simple
inspection of the code and will also vary significantly depending on
input data and run-time parameters.  The linker typically produces a
load map which is an ordered list of starting addresses of all the
routines in the program.  The order represented in the load map is
the result of compiler and linker directives specified by the
developers.  An optimal ordering will minimize the working set size
and the page faults across all the tasks.  In this disclosure, we
propose an innovative scheme to generate an optimized load map based
on the locality patterns among the routines referenced and the
frequency of references.  Locality is a well known program property
that implies programs tend to reference only a subset of all the
routines during the execution of a task.  Based on experiments
restructuring OS/2 2.1 beta, using the load map produced by our
scheme, we have obs...