Changes between Version 10 and Version 11 of library_malloc
- Timestamp:
- Apr 4, 2015, 1:52:11 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
library_malloc
v10 v11 4 4 define an user-level memory allocation service. The requested memory blocks are allocated from the application heap. 5 5 6 If the target architecture is clusterized (one physical memory bank per cluster), 7 the application heap is physically distributed, and it can exist one heap(x,y) segment per cluster, 8 This means one allocator per cluster. 6 If the target architecture is clusterized (one physical memory bank per cluster), the application heap can be physically distributed: depending on the application mapping, it can exist one or several heap(x,y) segment per cluster, and therefore it can exist up to one allocator per cluster. 9 7 10 8 The distributed heap(x,y) ''vsegs'' must be explicitely defined in the application mapping. 11 9 12 10 WARNING: The heap(x,y) segment size must be a power of 2, and the heap(x,y) base address must be aligned. 11 12 == Initialization policy == 13 14 The user application must initialize the heap(x,y) structure before using the malloc() or remote_malloc() functions, and this initialization 15 must be done by one single task. 13 16 14 17 == Allocation policy == … … 19 22 20 23 == cluster selection == 21 22 The heap_init() function has to be called by one single task before using other malloc functions.23 24 24 25 The malloc() and free() functions below have the same semantic as the standard UNIX functions. The cluster where the memory is allocated is implicitely defined by the (x,y) coordinate of the processor running the calling task.