PPT Slide
Memory Management System Calls
- UNIX uses the brk() call (named so as not to conflict with the C reserved word “break”) to extend the upper bound of the process:
int brk (char *addr); // 0 == worked, -1 == failed
- Execution of the brk() call results in the extension of the dynamic data section of the process memory map (Figure 10.31).
- Notice the unused logical address space -- this is memory addresses that are not mapped to physical memory. This requires a non-contiguous memory allocation scheme within the OS to support.
- Usually, new & malloc() indirectly result in brk() calls, depending on the size of the requests.