Changeset 29d8c02 for doc/theses/mubeen_zulfiqar_MMath/intro.tex
- Timestamp:
- May 20, 2022, 10:36:32 AM (2 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
- Children:
- 74ec742
- Parents:
- d8075d28
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mubeen_zulfiqar_MMath/intro.tex
rd8075d28 r29d8c02 53 53 When this allocator proves inadequate, programmers often write specialize allocators for specific needs. 54 54 C and \CC allow easy replacement of the default memory allocator with an alternative specialized or general-purpose memory-allocator. 55 (Jikes RVM MMTk~\cite{MMTk} provides a similar generalization for the Java virtual machine.) 55 Jikes RVM MMTk~\cite{MMTk} provides a similar generalization for the Java virtual machine. 56 56 However, high-performance memory-allocators for kernel and user multi-threaded programs are still being designed and improved. 57 57 For this reason, several alternative general-purpose allocators have been written for C/\CC with the goal of scaling in a multi-threaded program~\cite{Berger00,mtmalloc,streamflow,tcmalloc}. … … 65 65 \begin{enumerate}[leftmargin=*] 66 66 \item 67 Implementation of a new stand-lone concurrent low-latency memory-allocator ($\approx$1,200 lines of code) for C/\CC programs using kernel threads (1:1 threading), and specialized versions of the allocator for the programming languages \uC and \CFA using user-level threads running over multiple kernel threads (M:N threading). 68 69 \item 70 Adopt @nullptr@ return for a zero-sized allocation, rather than an actual memory address, which can be passed to @free@. 67 Implementation of a new stand-alone concurrent low-latency memory-allocator ($\approx$1,200 lines of code) for C/\CC programs using kernel threads (1:1 threading), and specialized versions of the allocator for the programming languages \uC and \CFA using user-level threads running over multiple kernel threads (M:N threading). 71 68 72 69 \item … … 104 101 105 102 \item 106 Provide additional heap wrapper functions in \CFA creating a n orthogonalset of allocation operations and properties.103 Provide additional heap wrapper functions in \CFA creating a more usable set of allocation operations and properties. 107 104 108 105 \item … … 111 108 \item 112 109 @malloc_alignment( addr )@ returns the alignment of the allocation pointed-to by @addr@. 113 If the allocation is not aligned or @addr@ is the @ nulladdr@, the minimal alignment is returned.110 If the allocation is not aligned or @addr@ is the @NULL@, the minimal alignment is returned. 114 111 \item 115 112 @malloc_zero_fill( addr )@ returns a boolean result indicating if the memory pointed-to by @addr@ is allocated with zero fill, e.g., by @calloc@/@cmemalign@. … … 119 116 @malloc_usable_size( addr )@ returns the usable (total) size of the memory pointed-to by @addr@, i.e., the bin size containing the allocation, where @malloc_size( addr )@ $\le$ @malloc_usable_size( addr )@. 120 117 \end{itemize} 121 122 \item123 Provide mostly contention-free allocation and free operations via a heap-per-kernel-thread implementation.124 118 125 119 \item … … 136 130 137 131 \item 138 Provide extensive runtime checks to valid allocation operations and identify the amount of unfreed storage at program termination.132 Provide extensive runtime checks to validate allocation operations and identify the amount of unfreed storage at program termination. 139 133 140 134 \item
Note: See TracChangeset
for help on using the changeset viewer.