The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The PORT Mathematical Subroutine Library
ACM Transactions on Mathematical Software (TOMS)
Tailored-List and Recombination-Delaying Buddy Systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
The software lookaside buffler reduces search overhead with linked lists
Communications of the ACM
A unifying look at data structures
Communications of the ACM
A comparison of next-fit, first-fit, and best-fit
Communications of the ACM
Communications of the ACM
Anomalous behavior of the fifty-percent rule in dynamic memory allocation
Communications of the ACM
On the external storage fragmentation produced by first-fit and best-fit allocation strategies
Communications of the ACM
Communications of the ACM
New methods for dynamic storage allocation (Fast Fits)
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
The treadmill: real-time garbage collection without motion sickness
ACM SIGPLAN Notices
Empirical measurements of six allocation-intensive C programs
ACM SIGPLAN Notices
Evaluating models of memory allocation
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Tight bounds for dynamic storage allocation
SODA '94 Proceedings of the fifth annual ACM-SIAM symposium on Discrete algorithms
Reducing sweep time for a nearly empty heap
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An algorithm with constant execution time for dynamic storage allocation
RTCSA '95 Proceedings of the 2nd International Workshop on Real-Time Computing Systems and Applications
A comparison of memory allocators for real-time applications
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
Bridging the gap between the undergraduate and graduate experience in computer systems studies
WCAE '03 Proceedings of the 2003 workshop on Computer architecture education: Held in conjunction with the 30th International Symposium on Computer Architecture
Implementation of a constant-time dynamic storage allocator
Software—Practice & Experience
The Lightweight Runtime Engine of the Wireless Internet Platform for Mobile Devices
ICESS '07 Proceedings of the 3rd international conference on Embedded Software and Systems
Construction of constrained codes for state-independent decoding
IEEE Journal on Selected Areas in Communications
Hi-index | 0.00 |
We describe an algorithm that efficiently implements the first-fit strategy for dynamic storage allocation. The algorithm imposes a storage overhead of only one word per allocated block (plus a few percent of the total space used for dynamic storage), and the time required to allocate or free a block is O(log W), where W is the maximum number of words allocated dynamically. The algorithm is faster than many commonly used algorithms, especially when many small blocks are allocated, and has good worst-case behavior. It is relatively easy to implement and could be used internally by an operating system or to provide run-time support for high-level languages such as Pascal and Ada. A Pascal implementation is given in the Appendix.