ADTast-experimentalenumforall-pointer-decaypthread-emulationqualifiedEnum
Last change
on this file since cb921d4 was
15885de9,
checked in by m3zulfiq <m3zulfiq@…>, 3 years ago
|
removed errors from thesis and separated background chapter
|
-
Property mode set to
100644
|
File size:
3.0 KB
|
Line | |
---|
1 | \chapter{Introduction} |
---|
2 | |
---|
3 | \noindent |
---|
4 | ==================== |
---|
5 | |
---|
6 | Writing Points: |
---|
7 | \begin{itemize} |
---|
8 | \item |
---|
9 | Introduce dynamic memory allocation with brief background. |
---|
10 | \item |
---|
11 | Scope of the thesis. |
---|
12 | \item |
---|
13 | Importance of memory allocation and micro-benchmark suite. |
---|
14 | \item |
---|
15 | Research problem. |
---|
16 | \item |
---|
17 | Research objectives. |
---|
18 | \item |
---|
19 | The vision behind cfa-malloc. |
---|
20 | \item |
---|
21 | An outline of the thesis. |
---|
22 | \end{itemize} |
---|
23 | |
---|
24 | \noindent |
---|
25 | ==================== |
---|
26 | |
---|
27 | \section{Introduction} |
---|
28 | Dynamic memory allocation and management is one of the core features of C. It gives programmer the freedom to allocate, free, use, and manage dynamic memory himself. The programmer is not given the complete control of the dynamic memory management instead an interface of memory allocator is given to the progrmmer that can be used to allocate/free dynamic memory for the application's use. |
---|
29 | |
---|
30 | Memory allocator is a layer between thr programmer and the system. Allocator gets dynamic memory from the system in heap/mmap area of application storage and manages it for programmer's use. |
---|
31 | |
---|
32 | GNU C Library (FIX ME: cite this) provides an interchangeable memory allocator that can be replaced with a custom memory allocator that supports required features and fulfills application's custom needs. It also allows others to innovate in memory allocation and design their own memory allocator. GNU C Library has set guidelines that should be followed when designing a standalone memory allocator. GNU C Library requires new memory allocators to have atlease following set of functions in their allocator's interface: |
---|
33 | |
---|
34 | \begin{itemize} |
---|
35 | \item |
---|
36 | malloc: it allocates and returns a chunk of dynamic memory of requested size (FIX ME: cite man page). |
---|
37 | \item |
---|
38 | calloc: it allocates and returns an array in dynamic memory of requested size (FIX ME: cite man page). |
---|
39 | \item |
---|
40 | realloc: it reallocates and returns an already allocated chunk of dynamic memory to a new size (FIX ME: cite man page). |
---|
41 | \item |
---|
42 | free: it frees an already allocated piece of dynamic memory (FIX ME: cite man page). |
---|
43 | \end{itemize} |
---|
44 | |
---|
45 | In addition to the above functions, GNU C Library also provides some more functions to increase the usability of the dynamic memory allocator. Most standalone allocators also provide all or some of the above additional functions. |
---|
46 | |
---|
47 | \begin{itemize} |
---|
48 | \item |
---|
49 | aligned\_alloc |
---|
50 | \item |
---|
51 | malloc\_usable\_size |
---|
52 | \item |
---|
53 | memalign |
---|
54 | \item |
---|
55 | posix\_memalign |
---|
56 | \item |
---|
57 | pvalloc |
---|
58 | \item |
---|
59 | valloc |
---|
60 | \end{itemize} |
---|
61 | |
---|
62 | With the rise of concurrent applications, memory allocators should be able to fulfill dynamic memory requests from multiple threads in parallel without causing contention on shared resources. There needs to be a set of a standard benchmarks that can be used to evaluate an allocator's performance in different scenerios. |
---|
63 | |
---|
64 | \section{Research Objectives} |
---|
65 | Our research objective in this thesis is to: |
---|
66 | |
---|
67 | \begin{itemize} |
---|
68 | \item |
---|
69 | Design a lightweight concurrent memory allocator with added features and usability that are currently not present in the other memory allocators. |
---|
70 | \item |
---|
71 | Design a suite of benchmarks to evalute multiple aspects of a memory allocator. |
---|
72 | \end{itemize} |
---|
73 | |
---|
74 | \section{An outline of the thesis} |
---|
75 | LAST FIX ME: add outline at the end |
---|
Note: See
TracBrowser
for help on using the repository browser.