Features of a Multi-Threaded Memory Allocator
dc.contributor.author | Wasik, Ayelet | |
dc.date.accessioned | 2008-01-21T18:39:41Z | |
dc.date.available | 2008-01-21T18:39:41Z | |
dc.date.issued | 2008-01-21T18:39:41Z | |
dc.date.submitted | 2008 | |
dc.description.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. | en |
dc.identifier.uri | http://hdl.handle.net/10012/3501 | |
dc.language.iso | en | en |
dc.pending | false | en |
dc.publisher | University of Waterloo | en |
dc.subject | memory allocation | en |
dc.subject | multi-threaded | en |
dc.subject | programming languages | en |
dc.subject.program | Computer Science | en |
dc.title | Features of a Multi-Threaded Memory Allocator | en |
dc.type | Master Thesis | en |
uws-etd.degree | Master of Mathematics | en |
uws-etd.degree.department | School of Computer Science | en |
uws.peerReviewStatus | Unreviewed | en |
uws.scholarLevel | Graduate | en |
uws.typeOfResource | Text | en |