Bilateral Kernel—Userspace Page Frame Allocator

User-space memory allocators (e.g. glibc malloc() or jemalloc) request memory from the operating system and provide it in smaller chunks to the user application. While the part within the user-space is relatively well understood, the interface between user-space allocator and kernel is still a rather unexplored area.

While the allocator historically used sbrk(2) to enlarge the heap-memory zone, modern allocators rely on mmap(2) to request a new anonymous memory mapping in the process' virtual address space.

In this thesis, we want to explore a bilateral interaction pattern between user-space and kernel that is faster than mmap(2). Further, it should support frame-sized allocations both from user- and from kernel-space.

Needed for this thesis: