Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

New Approach to Advanced Interactive Executive Memory Management

IP.com Disclosure Number: IPCOM000114959D
Original Publication Date: 1995-Feb-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 8 page(s) / 272K

Publishing Venue

IBM

Related People

Hassitt, A: AUTHOR [+2]

Abstract

Proposed is a new Advanced Interactive Executive (AIX) memory management scheme. When an application begins execution there is one large contiguous piece of unused memory. As the application requests and frees chunks of memory, the system memory management routines utilize the initial piece of unused memory to satisfy these application requests. The memory management scheme given here divides this memory into two types of memory blocks: multi-blocks and single-blocks.

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

New Approach to Advanced Interactive Executive Memory Management

      Proposed is a new Advanced Interactive Executive (AIX) memory
management scheme.  When an application begins execution there is one
large contiguous piece of unused memory.  As the application requests
and frees chunks of memory, the system memory management routines
utilize the initial piece of unused memory to satisfy these
application
requests.  The memory management scheme given here divides this
memory
into two types of memory blocks: multi-blocks and single-blocks.

      A multi-block consists of 2**N pages aligned at a 2**N-page
memory boundary (N is fixed on a specific system, but may vary from
system to system).  The first page of a multi-block contains all the
control information for the block.  Small and medium requests for
memory are normally satisfied by a portion of a multi-block.  Given a
pointer to memory provided from within a multi-block, a few simple
manipulations on the bits of the pointer will provide the address of
that first page, thus making the control information readily
available.

      A single-block consists of a page containing control
information, followed by some number of pages of application memory.
Large requests for memory are always satisfied by a single-block.

      Both forms of memory blocks include control information that
make the identification of the form, as well as verification of
pointers to memory within the form, easy and efficient.  This scheme
provides "natural"  alignment for smaller chunks (half-page alignment
for half-page chunks, quarter-page alignment for quarter-page chunks,
etc.)  and page alignment for larger chunks.

      Many memory management methods preface each piece of user
requested memory with a short control block.  For small requests this
is a high overhead, and for large requests it complicates page
alignment.  The method given here avoids these prefaces for small and
medium requests (seven pages or less for this example) by factoring
them into a common preface at the beginning of a 16-page block.

      Fig. 1 shows a typical multi-block.  It has been used to
provide a number of chunks of user memory of various sizes and it
still contains two pages that have not yet been allocated.  These
unallocated pages might be used to satisfy a future two-page request,
or two one-page requests.  Alternatively, if the next request is for
a sixteenth of a page then page 2 will be divided into chunks of that
size, one of which will be returned to the requestor, and page 1 will
remain unallocated until it is needed.

      Page alignment is desired for large requests, so they are
satisfied outside the 16-page blocks and are given a one-page
preface.  This preface is similar to the 16-page block preface, but
describes only the one large chunk.  Given the address, A, of a large
user memory chunk, the address of the preface is obtained by
subtracting the page size.

    ...