Topic: heap memory management
Topic: memory management by free list
| |
Summary
Buddy system allocation identifies an adjacent block by address, making it easy to coalesce free blocks. It reduces fragmentation and simplifies allocation. Buddy systems do not work well when most objects have only a few sizes. (cbb 12/07)
Subtopic: buddy system
Quote: the number of free blocks in a buddy system is proportional to the square root of the allocated blocks
| Quote: binary buddy disk allocation just needs a 250 slot free-space table in memory; access overflow lists every 1000 allocate and free operations [»kochPD11_1987]
| Quote: binary buddy disk allocation has 2-6% internal fragmentation and 0-10% external fragmentation; most files contiguous
| Subtopic: defragmentation
Quote: analysis and algorithm for buddy heap defragmentation; relocate storage only as needed; compaction defragments the entire heap when an allocation fails [»defoDC6_2005]
| Subtopic: examples
Quote: Oberon memory management by 5 lists for 16, 32, 64, 128, and 128*n bytes; efficient allocation and coalescing; low wastage; like buddy system [»wirtN9_1989]
| Quote: manage memory with doubly linked lists of 2^n size; easily split and recombined [»knowK10_1965, OK]
| QuoteRef: wegbB_1971 ;;258 automatic garbage collection returned into list of 2**n--tables of how big each object is and where pointers located
| QuoteRef: knowK8_1966 ;;616 L^6 uses powers of 2 memory allocation scheme
| Subtopic: problems with buddy system
Quote: for most programs, the vast majority of objects allocated are of only a few sizes; 90% allocated from 6.1 sizes; why buddy system works badly [»johnMS10_1998]
|
Related Topics
Topic: heap memory management (33 items)
Topic: memory management by free list (25 items)
|