Memory Allocation

The Memory Manager provides dynamic allocation of resources of main memory.
Main function of manager: The organization and synchronization of access to memory.
 
The Memory Manager supports the following data mediums:
   - Internal RAM (IRAM);
   - External RAM < 64Kb (RAM);
   - External RAM > 64Kb (ERAM);
   - FRAM, MRAM  wiht parallel-random acccess < 64Kb (PRAM);
   - FRAM, MRAM  wiht parallel-random acccess  > 64Kb (EPRAM);

The manager gives the interface of polymorphic access to resources of memory and provides the
mechanisms for its organization.

The user can divide main memory into configurations.
In turn, each area of a configuration can:
   - To correspond to the executing task;
   - To have the personal allocation manager (dynamic creation of memory managers).

The memory manager supports 6 algorithms of memory allocation:
    1.  HEAP.   Segments of variable length.  For IRAM, RAM, PRAM.
    2.  LIFO.     For all types of memory.
    3.  POOL.   Blocks of constant length  (allocation by pages).  Only for RAM.
    4.  PAGE.   Blocks of constant length  (allocation by pages).  For all types of memory.
    5.  MAP.     Tabular allocation.  For all types of memory.
    6.  MBIT.    Tabular allocation.  For all types of memory.

The Algorithms 1-2 correspond to known classical methods of memory allocation: a heap and a stack.
Algorithms 3-6 are intended for struggle with a fragmentation and provide superfast access to main memory.
Them distinguish methods of the organization:
    - reduction of time of access;
    - minimization of resources.

The size of blocks (at allocation by pages) the user establishes at initialization of the manager.
At the request of the user, the manager of pages can use strategy of guaranteed allocation.
If all pages are already allocated, then the system give back the first page which is in queue of used pages.


Librarys the Memory Manager and the Data Manager together compose a integrated control system of main
memory.
 

Hosted by uCoz