Browse Prior Art Database

Efficient Allocation of External Memory from Smalltalk/V PM

IP.com Disclosure Number: IPCOM000110244D
Original Publication Date: 1992-Nov-01
Included in the Prior Art Database: 2005-Mar-25
Document File: 2 page(s) / 72K

Publishing Venue

IBM

Related People

Griffin, DL: AUTHOR [+2]

Abstract

This article defines a technique for minimizing the number of system memory allocation calls made within Smalltalk/V* PM. We define an ExternalMemoryManager class, whose instances act as interfaces between Smalltalk/V PM and system memory.

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

Efficient Allocation of External Memory from Smalltalk/V PM

       This article defines a technique for minimizing the
number of system memory allocation calls made within Smalltalk/V* PM.
We define an ExternalMemoryManager class, whose instances act as
interfaces between Smalltalk/V PM and system memory.

      Current art for use of external memory by Smalltalk/V
applications is for each object to allocate the memory it needs be
executing an OS/2** memory allocation call.  These memory
requirements are typically small.  The current art results in
numerous calls to allocate small pieces of system memory which is
very costly in terms of performance and system resource utilization.
Furthermore, allocating memory is a relatively slow process and
should be avoided, if possible.  Since the individual objects in the
system have no knowledge of each other, they cannot directly combine
their memory needs.

      The current art is extended by defining an
ExternalMemoryManager class.  This class allocates large, efficient
portions of system memory and carves it up on behalf of individual
Smalltalk clients.  Smalltalk client objects request external memory
from an ExternalMemoryManager instance rather than directly from the
system.  Thus, clients' requests to allocate and free memory no
longer result in costly calls to allocate blocks of system memory,
but instead result in sub-allocations from a previously allocated
block.

      An ExternalMemoryManager uses a standardized block size of 4K
bytes.  (This size will vary depend...