Changes between Version 31 and Version 32 of replication_distribution
- Timestamp:
- Sep 20, 2017, 2:09:28 PM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
replication_distribution
v31 v32 65 65 66 66 === The ''heap'' zone === 67 It is located on top of the ''elf'' zone, and starts at address defined by the CONFIG_VSPACE_HEAP_BASE parameter. It contains all vsegs dynamically allocated or released by the mmap() / munmap() system calls (i.e. FILE / ANON / REMOTE).he VMM implements a specific MMAP allocator for this zone, implementing the ''buddy'' algorithm. 67 It is located on top of the ''elf'' zone, and starts at address defined by the CONFIG_VSPACE_HEAP_BASE parameter. It contains all vsegs dynamically allocated or released by the mmap() / munmap() system calls (i.e. FILE / ANON / REMOTE).he VMM implements a specific MMAP allocator for this zone, implementing the ''buddy'' algorithm. The user level ''malloc'' library uses the mmap() system call to allocate virtual memory in the heap. Besides the standard malloc() / free() functions, it implement a non-standard remote_malloc() function, that allows the user to map a dynamically allocated user buffer on a specific physical cluster. 68 68 69 69 === The ''stack'' zone === 70 70 It is located on top of the ''mmap'' zone and starts at address defined by the CONFIG_VSPACE_STACK_BASE parameter. It contains an array of fixed size slots, and each slot contain one ''stack'' vseg. The size of a slot is defined by the CONFIG_VSPACE_STACK_SIZE. In each slot the first page is not mapped to detect stack overflow. As threads are dynamically created and destroyed, the VMM implement a specific STACK allocator for this zone, using a bitmap vector. 71