Linux User Level Memory Manager




Abstract

This work is concerned with the management of memory at a user-level. Traditional memory management is handled through system calls into the kernel which are very expensive processes. We attempt to reduce these system calls by providing a library that will handle all memory management routines invoked completely at the user level. Furthermore, we will further improve performance by allowing the library to be invoked on a symmetric multiprocessor machine, thereby allowing concurrent memory allocation and deallocation to be carried out by two or more kernel threads running on separate processors. As an extension to typical memory allocation, routines will also be provided to allow concurrent reads and exclusive writes to regions of memory shared amongst several threads.

The implementation shows a definite increase in speed over traditional memory allocation. Several benchmarks show that through user-level memory management an average of a three fold increase in the speed may be achieved on a Linux machine when compared to that of the traditional malloc()/free() functions.

Utilised Technologies
  • C
  • Systems Programming
  • Operating System Concepts
  • High Performance Computing
  • Downloads
    Report (PDF)
    Source Code
    Source code is supplied as a reference, source cannot be compiled unless a properly patched kernel is present.


    [Home | University Projects | Résumé | E-Mail | Files]