[cgl_discussion] AEM memory management

Dave Olien dmo at osdl.org
Thu Mar 20 13:46:18 PST 2003


Frederic,

Reading the section of your article on Memory Management.

I'm sure I could answer these questions by reading source code.
But, it's easier just to ask.

You talk about two memory allocation schemes, one using the
process's heap, the other using a kernel buddy allocator.  The
memory allocation scheme can be chosen when the application is started.

When you talk about using the process's heap, is this allocation
done by the kernel, or does the application do it somehow?
How does this allocation interact with user-mode heap allocators
such as malloc(), brk(), sbrk()?

When you talk about the kernel's buddy memory allocator, how is the
allocated memory exported to user space?  Do you map kernel pages into
user space?  

Each process can have a vtable (for the buddy allocator) and an
event list. At fork() time, these may be inherited by the child
process.  How does this interact with the CLONE_VM flag?

What happens to the vtable and the event lists when a process does
an exec()?



More information about the cgl_discussion mailing list