University of Waterloo >
Electronic Theses and Dissertations (UW) >
Please use this identifier to cite or link to this item:
|Title: ||Features of a Multi-Threaded Memory Allocator|
|Authors: ||Wasik, Ayelet|
|Keywords: ||memory allocation|
|Approved Date: ||21-Jan-2008 |
|Date Submitted: ||2008 |
|Abstract: ||Multi-processor computers are becoming increasingly popular and are important for improving application performance. Providing high-performance memory-management is important for multi-threaded programs. This thesis looks at memory allocation of dynamic-allocation memory in concurrent C and C++ programs. The challenges facing the design of any memory allocator include minimizing fragmentation, and promoting good locality. A multi-threaded memory-allocator is also concerned with minimizing contention, providing mutual exclusion, avoiding false-sharing, and preventing heap-blowup (a form of fragmentation).
Several potential features are identified in existing multi-threaded memory-allocators. These features include per-thread heaps with a global heap, object ownership, object containers, thread-local free-list buffers, remote free-lists, allocation buffers, and lock-free operations. When used in different combinations, these features can solve most of the challenges facing a multi-threaded memory-allocator. Through the use of a test suite composed of both single and multi-threaded benchmark programs, several existing memory allocators and a set of new allocators are compared. It is determined that different features address different multi-threaded issues in the memory allocator with respect to performance, scaling, and fragmentation. Finally, recommendations are made for the design of a general-purpose memory-allocator.|
|Program: ||Computer Science|
|Department: ||School of Computer Science|
|Degree: ||Master of Mathematics|
|Appears in Collections:||Electronic Theses and Dissertations (UW)|
Faculty of Mathematics Theses and Dissertations
All items in UWSpace are protected by copyright, with all rights reserved.