DOCUMENT ID:  1537-02 

SYNOPSIS:     Description of Non-paged Memory Allocation

OS RELEASE:   2.x

PRODUCT:      Solaris x86

KEYWORDS:     nonpaged memory allocation           


DESCRIPTION:          

A brief description of Non-paged memory Allocation


SOLUTION:

Non-paged Memory Allocation

Many of the dynamic data structures used by the kernel need a memory
allocation procedure that can deal with blocks of memory in sizes of
less than one page.  For example, segment descriptors are typically only
a few bytes long, yet still have to be dynamically allocated and freed. 
Under UNIX System V Release 4, the kernel's memory allocation and memory
freeing routines are called kmem_alloc() and kmem_free(). 

The memory allocator procedure needs an area of memory it can use to
satisfy memory allocation requests.  This area of memory is referred to
as the "arena" or "pool".  The kernel memory allocator uses data
structures to keep track of which pieces of its pool are currently
allocated and freed.  In UNIX System V Release 3 the free areas of the
pool were accounted for by using an array of map data start of the free
area and its size. 


DATE APPROVED: 10/18/95