The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The memory fragmentation problem: solved?
Proceedings of the 1st international symposium on Memory management
Bounds for Some Functions Concerning Dynamic Storage Allocation
Journal of the ACM (JACM)
Contaminated garbage collection
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Storage Allocation for Real-Time, Embedded Systems
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
Tuning file system block addressing for performance
Proceedings of the 44th annual Southeast regional conference
Supporting superpage allocation without additional hardware support
Proceedings of the 7th international symposium on Memory management
Online Tree Node Assignment with Resource Augmentation
COCOON '09 Proceedings of the 15th Annual International Conference on Computing and Combinatorics
SIGACT news online algorithms column 14
ACM SIGACT News
ESA'07 Proceedings of the 15th annual European conference on Algorithms
Multi-core architecture cache performance analysis and optimization based on distributed method
ADMA'10 Proceedings of the 6th international conference on Advanced data mining and applications - Volume Part II
Online tree node assignment with resource augmentation
Journal of Combinatorial Optimization
Constant-competitive tree node assignment
Theoretical Computer Science
Hi-index | 0.00 |
Knuth's buddy system is an attractive algorithm for managing storage allocation, and it can be made to operate in real-time. At some point, storage-management systems must either over-provide storage or else confront the issue of defragmentation. Because storage conservation is important to embedded systems, we investigate the issue of defragmentation for heaps that are managed by the buddy system. In this paper, we present tight bounds for the amount of storage necessary to avoid defragmentation. These bounds turn out to be too high for embedded systems, so defragmentation becomes necessary.We then present an algorithm for defragmenting buddy heaps and present experiments from applying that algorithm to real and synthetic benchmarks. Our algorithm relocates less than twice the space relocated by an optimal algorithm to defragment the heap so as to respond to a single allocation request. Our experiments show our algorithm to be much more efficient than extant defragmentation algorithms.