Browse Prior Art Database

Caching Memory Selectors to Achieve Performance Gains

IP.com Disclosure Number: IPCOM000108601D
Original Publication Date: 1992-Jun-01
Included in the Prior Art Database: 2005-Mar-22
Document File: 1 page(s) / 50K

Publishing Venue

IBM

Related People

Cox, D: AUTHOR [+3]

Abstract

This article describes a method for improving the performance of allocating OS/2* system memory selectors for memory usage. Obtaining a memory segment from OS/2 can be time consuming. In a large application system such as OfficeVision*/2 (OV/2), memory selectors are constantly being allocated and freed on behalf of the many OV/2 processes which are running. A method to save and reuse memory, without returning it to the system, would improve the performance of OV/2 and other large OS/2 applications.

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

Caching Memory Selectors to Achieve Performance Gains

       This article describes a method for improving the
performance of allocating OS/2* system memory selectors for memory
usage.  Obtaining a memory segment from OS/2 can be time consuming.
In a large application system such as OfficeVision*/2 (OV/2), memory
selectors are constantly being allocated and freed on behalf of the
many OV/2 processes which are running.  A method to save and reuse
memory, without returning it to the system, would improve the
performance of OV/2 and other large OS/2 applications.

      In order to overcome this and other related memory problems in
our application systems, OV/2 Office built a Memory Management
subsystem, providing a layer of independence between applications
programs and the OS/2 operating system.  This subsystem is described
in [*].

      Using this Memory Management subsystem as the base, the
subsystem was enhanced to keep a cache list of segments allocated and
"in-use", and segments which are "free" and available for reuse.  One
cache list exists for all shared segment selectors allocated through
the Memory Management subsystem, and a separate cache list exists for
each process allocating non-shared segments selectors.

      Rather than freeing a memory segment when no longer needed, the
OV/2 Memory Management subsystem will now place it on the "free"
segment list.  Whenever a new segment is requested, a selector from
the free segment list will be lo...