Changes between Version 37 and Version 38 of replication_distribution
- Timestamp:
- Oct 25, 2017, 4:07:14 PM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TabularUnified replication_distribution
v37 v38 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. The user level ''malloc'' library uses the mmap() system call to allocate/release virtual memory from the heap. Besides the standard malloc() / free() functions, this library implements a non-standard remote_malloc() function, that allows the user to map a dynamically allocated user buffer on a specific physical cluster.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 / released by the mmap() / munmap() system calls (i.e. FILE / ANON / REMOTE types). The VMM implements a specific MMAP allocator for this zone, implementing the ''buddy'' algorithm. The mmap( FILE ) syscall maps directly a file in user space. The user level ''malloc'' library uses the mmap( ANON ) syscall to allocate virtual memory from the heap and map it in the same cluster as the calling thread. Besides the standard malloc() function, this library implements a non-standard remote_malloc() function, that uses the mmap( REMOTE ) syscall to dynamically allocate virtual memory from the heap, and map it a remote physical cluster. 68 68 69 69 === The ''stack'' zone ===