Changeset 73a57af2 for doc/theses/mubeen_zulfiqar_MMath
- Timestamp:
- Apr 28, 2022, 1:02:13 PM (3 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
- Children:
- d8075d28
- Parents:
- 45200b67
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mubeen_zulfiqar_MMath/uw-ethesis-frontpgs.tex
r45200b67 r73a57af2 129 129 \begin{center}\textbf{Abstract}\end{center} 130 130 131 This is the abstract. 132 131 Memory management takes a sequence of program generated allocation/deallocation requests and attempts to satisfy them within a fixed-sized block of memory while minimizing the total amount of memory used. 132 A general-purpose dynamic-allocation algorithm cannot anticipate future allocation requests so its output is rarely optimal. 133 However, memory allocators do take advantage of regularities in allocation patterns for typical programs to produce excellent results, both in time and space (similar to LRU paging). 134 In general, allocators use a number of similar techniques, each optimizing specific allocation patterns. 135 Nevertheless, memory allocators are a series of compromises, occasionally with some static or dynamic tuning parameters to optimize specific program-request patterns. 136 137 The goal of this thesis is to build a low-latency memory allocator for both kernel and user multi-threaded systems, which is competitive with the best current memory allocators, while extending the feature set of existing and new allocator routines. 138 A new llheap memory-allocator is created that achieves all of these goals, while maintaining and managing sticky allocation properties for zero-fill and alignment allocations without a performance loss. 139 Hence, it becomes possible to use @realloc@ frequently as a safe operation, rather than just occasionally, because it preserves sticky properties when enlarging storage requests. 140 Furthermore, the ability to query sticky properties and information allows programmers to write safer programs, as it is possible to dynamically match allocation styles from unknown library routines that return allocations. 141 The C allocation API is also extended with @resize@, advanced @realloc@, @aalloc@, @amemalign@, and @cmemalign@ so programmers do not make mistakes writing theses useful allocation operations. 142 llheap is embedded into the \uC and \CFA runtime systems, both of which have user-level threading. 143 The ability to use \CFA's advanced type-system (and possibly \CC's too) to have one allocation routine with completely orthogonal sticky properties shows how far the allocation API can be pushed, which increases safety and greatly simplifies programmer's use of dynamic allocation. 144 145 The llheap allocator also provides comprehensive statistics for all allocation operations, which are invaluable in understanding and debugging a program's dynamic behaviour. 146 No other memory allocator examined in the thesis provides comprehensive statistics gathering. 147 As well, llheap provides a debugging mode where allocations are checked, along with internal pre/post conditions and invariants, is extremely useful, especially for students. 148 While not as powerful as the @valgrind@ interpreter, a large number of allocations mistakes are detected. 149 Finally, contention-free statistics gathering and debugging have a low enough cost to be used in production code. 150 151 A micro-benchmark test-suite is started for comparing allocators, rather than relying on a suite of arbitrary programs, has been an interesting challenge. 152 These micro-benchmarks have adjustment knobs to simulate allocation patterns hard-coded into arbitrary test programs. 153 Existing memory allocators, glibc, dlmalloc, hoard, jemalloc, ptmalloc3, rpmalloc, tbmalloc and the new allocator llheap are all compared using the new micro-benchmark test-suite. 133 154 \cleardoublepage 134 155 … … 136 157 % ------------------------------- 137 158 138 \begin{center}\textbf{Acknowledgements}\end{center} 139 140 I would like to thank all the little people who made this thesis possible. 159 \begin{center} 160 \textbf{Acknowledgements} 161 162 I would like to thank all the people who made this thesis possible. 163 164 I would like to acknowledge Peter A. Buhr for his assistance and support throughtout the process. 165 It would have been impossible without him. 166 167 Also, I would say thanks to my team members at PLG especially Thierry, Michael, and Andrew for their input. 168 \end{center} 141 169 \cleardoublepage 142 170
Note: See TracChangeset
for help on using the changeset viewer.