Results 1 
6 of
6
Dynamic storage allocation: A survey and critical review
, 1995
"... Dynamic memory allocation has been a fundamental part of most computer systems since roughly 1960, and memory allocation is widely considered to be either a solved problem or an insoluble one. In this survey, we describe a variety of memory allocator designs and point out issues relevant to their de ..."
Abstract

Cited by 206 (6 self)
 Add to MetaCart
Dynamic memory allocation has been a fundamental part of most computer systems since roughly 1960, and memory allocation is widely considered to be either a solved problem or an insoluble one. In this survey, we describe a variety of memory allocator designs and point out issues relevant to their design and evaluation. We then chronologically survey most of the literature on allocators between 1961 and 1995. (Scores of papers are discussed, in varying detail, and over 150 references are given.) We argue that allocator designs have been unduly restricted by an emphasis on mechanism, rather than policy, while the latter is more important; higherlevel strategic issues are still more important, but have not been given much attention. Most theoretical analyses and empirical allocator evaluations to date have relied on very strong assumptions of randomness and independence, but real program behavior exhibits important regularities that must be exploited if allocators are to perform well in practice.
Packing Schemes for Gang Scheduling
 In Job Scheduling Strategies for Parallel Processing
, 1996
"... . Jobs that do not require all processors in the system can be packed together for gang scheduling. We examine accounting traces from several parallel computers to show that indeed many jobs have small sizes and can be packed together. We then formulate a number of such packing algorithms, and e ..."
Abstract

Cited by 103 (21 self)
 Add to MetaCart
. Jobs that do not require all processors in the system can be packed together for gang scheduling. We examine accounting traces from several parallel computers to show that indeed many jobs have small sizes and can be packed together. We then formulate a number of such packing algorithms, and evaluate their effectiveness using simulations based on our workload study. The results are that two algorithms are the best: either perform the mapping based on a buddy system of processors, or use migration to remap the jobs more tightly whenever a job arrives or terminates. Other approaches, such as mapping to the least loaded PEs, proved to be counterproductive. The buddy system approach depends on the capability to gangschedule jobs in multiple slots, if there is space. The migration algorithm is more robust, but is expected to suffer greatly due to the overhead of the migration itself. In either case fragmentation is not an issue, and utilization may top 90% with sufficiently...
Buddy Systems
 Communications of the ACM
, 1974
"... Two algorithms are presented for implementing any of a class of buddy systems for dynamic storage allocation. Each buddy system corresponds to a set of recurrence relations which relate the block sizes provided to each other. Analyses of the internal fragmentation of the binary buddysystem, the ..."
Abstract

Cited by 37 (0 self)
 Add to MetaCart
Two algorithms are presented for implementing any of a class of buddy systems for dynamic storage allocation. Each buddy system corresponds to a set of recurrence relations which relate the block sizes provided to each other. Analyses of the internal fragmentation of the binary buddysystem, the Fibonai buddy system, and the weighted buddy system are given. Comparative simulation results are also presented for internal, external and total fragmentation.
Fast Allocation and Deallocation with an Improved Buddy System
 IN PROCEEDINGS OF THE 19TH CONFERENCE ON THE FOUNDATIONS OF SOFTWARE TECHNOLOGY AND THEORETICAL COMPUTER SCIENCE (FST & TCS'99), LECTURE NOTES IN COMPUTER SCIENCE
, 1999
"... We propose several modifications to the binary buddy system for managing dynamic allocation of memory blocks whose sizes are powers of two. The standard buddy system allocates and deallocates blocks in \Theta(lg n) time in the worst case (and on an amortized basis), where n is the size of the me ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
We propose several modifications to the binary buddy system for managing dynamic allocation of memory blocks whose sizes are powers of two. The standard buddy system allocates and deallocates blocks in \Theta(lg n) time in the worst case (and on an amortized basis), where n is the size of the memory. We present two schemes that improve the running time to O(1) time, where the time bound for deallocation is amortized. The first scheme uses one word of extra storage compared to the standard buddy system, but may fragment memory more than necessary. The second scheme has essentially the same fragmentation as the standard buddy system, and uses O(2 (1+ p lg n) lg lg n ) bits of auxiliary storage, which is !(lg k n) but o(n " ) for all k 1 and " ? 0. Finally, we present simulation results estimating the effect of the excess fragmentation in the first scheme.
Fast Allocation and Deallocation with an Improved Buddy System
, 2003
"... We propose several modifications to the binary buddy system for managing dynamic allocation of memory blocks whose sizes are powers of two. The standard buddy system allocates and deallocates blocks in Θ(lg n) time in the worst case (and on an amortized basis), where n is the size of the memory. We ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
We propose several modifications to the binary buddy system for managing dynamic allocation of memory blocks whose sizes are powers of two. The standard buddy system allocates and deallocates blocks in Θ(lg n) time in the worst case (and on an amortized basis), where n is the size of the memory. We present three schemes that improve the running time to O(1) time, where the time bound for deallocation is amortized for the first two schemes. The first scheme uses just one more word of memory than the standard buddy system, but may result in greater fragmentation than necessary. The second and third schemes have essentially the same fragmentation as the standard buddy system, and use O(2 (1+ √ lg n) lg lg n) bits of auxiliary storage, which is ω(lg k n) but o(n ε) for all k ≥ 1 and ε> 0. Finally, we present simulation results estimating the effect of the excess fragmentation in the first scheme.
Evaluation of Design Choices for Gang Scheduling Using . . .
 journal of Parallel and Distributed Computing
, 1996
"... this paper investigates several design choices and their performance implications. Processor fragmentation could potentially negate all the benefits of gang scheduling. That is, because gang scheduling demands that no thread execute unless all other gang member threads execute, then some processors ..."
Abstract
 Add to MetaCart
this paper investigates several design choices and their performance implications. Processor fragmentation could potentially negate all the benefits of gang scheduling. That is, because gang scheduling demands that no thread execute unless all other gang member threads execute, then some processors may be idle even when there are threads waiting to be run. Our results show that no more than 5 to 25% of the processing power is lost to fragmentation. This result means that neither optimal packing nor thread migration JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING 35, 1834 (1996) ARTICLE NO. 0064 Evaluation of Design Choices for Gang Scheduling Using Distributed Hierarchical Control DROR G. FEITELSON AND LARRY RUDOLPH Institute of Computer Science, The Hebrew University of Jerusalem, 91904 Jerusalem, Israel 18 07437315/96 $18.00 Copyright 1996 by Academic Press, Inc