Upper bound for defragmenting buddy heaps

  • Delvin C. Defoe
  • , Sharath R. Cholleti
  • , Ron K. Cytron

Research output: Contribution to conferencePaperpeer-review

6 Scopus citations

Abstract

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.

Original languageEnglish
Pages222-229
Number of pages8
DOIs
StatePublished - 2005
Event2005 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, LCTES 05 - Chicago, IL, United States
Duration: Jun 15 2005Jun 17 2005

Conference

Conference2005 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, LCTES 05
Country/TerritoryUnited States
CityChicago, IL
Period06/15/0506/17/05

Keywords

  • Buddy System
  • Compaction
  • Defragmentation
  • Memory management
  • Storage Allocation

Fingerprint

Dive into the research topics of 'Upper bound for defragmenting buddy heaps'. Together they form a unique fingerprint.

Cite this