John Abramowich. Storage allocation in a certain iterative process. Communications of the ACM, 10(6):368–370, June 1967.
G. Attardi and T. Flagella. A customizable memory management framework. In Proceedings of the USENIX C++ Conference, Cambridge, Massachussetts, 1994.
Sedat Akyürek and Kenneth Salem. Adaptive block rearrangement. ACM Transactions on Computer Systems, 13(2):95–121, May 1995.
H. D. Baecker. Aspects of reference locality in list structures in virtual memory. Software Practice and Experience, 3(3):245–254, 1973.
Henry G. Baker. Infant mortality and generational garbage collection. SIGPLAN Notices, 28(4):55–57, April 1993.
B. M. Bigler, S. J. Allan, and R. R. Oldehoeft. Parallel dynamic storage allocation. In 1985 International Conference on Parallel Processing, pages 272–275, 1985.
Alan Batson. Program behavior at the symbolic level. IEEE Computer, pages 21–26, November 1976.
C. Bays. A comparison of next-fit, first-fit and best-fit. Communications of the ACM, 20(3):191–192, March 1977.
A. P. Batson and R. E. Brundage. Segment sizes and lifetimes in ALGOL 60 programs. Communications of the ACM, 20(1):36–44, January 1977.
G. Bozman, W. Buco, T. P. Daly, and W. H. Tetzlaff. Analysis of free storage algorithms—revisited. IBM Systems Journal, 23(1):44–64, 1984.
Daniel G. Bobrow and Douglas W. Clark. Compact encodings of list structure. ACM Transactions on Programming Languages and Systems, 1(2):266–286, October 1979.
B. S. Baker, E. G. Coffman, Jr., and D. E. Willard. Algorithms for resolving conflicts in dynamic storage allocation. Journal of the ACM, 32(2):327–343, April 1985.
Hans-J. Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. In Proceedings of the 1991 SIGPLAN Conference on Programming Language Design and Implementation [PLD91], pages 157–164.
Leland L. Beck. A dynamic storage allocation technique based on memory residence time. Communications of the ACM, 25(10):714–724, October 1982.
V. E. Benes. Models and problems of dynamic storage allocation. In Applied Probability and Computer Science—the Interface. Institute of Management Science and Operations Research Society of America, January 1981.
Terry Betteridge. An analytical storage allocation model. Acta Informatica, 3:101–122, 1973.
Terry Betteridge. An Algebraic Analysis of Storage Fragmentation. UMI Research Press, Ann Arbor, Michigan, 1982.
A. P. Batson, S. M. Ju, and D. C. Wood. Measurements of segment size. Communications of the ACM, 13(3):155–159, March 1970.
Ball and Larus. Optimal profiling and tracing of programs. In Conference Record of the Nineteenth Annual ACM Symposium on Principles of Programming Languages, pages 59–70. ACM Press, January 1992.
Gerald Bozman. The software lookaside buffer reduces search overhead with linked lists. Communications of the ACM, 27(3):222–227, March 1984.
Daniel G. Bobrow and Bertram Raphael. A comparison of list-processing computer languages. Communications of the ACM, 7(4):231–240, April 1964.
R. Brent. Efficient implementation of the first-fit strategy for dynamic storage allocation. ACM Transactions on Programming Languages and Systems, July 1989.
A. G. Bromley. Memory fragmentation in buddy methods for dynamic storage allocation. Acta Informatica, 14(2):107–117, August 1980.
Warren Burton. A buddy system variation for disk storage allocation. Communications of the ACM, 19(7):416–417, July 1976.
Hans-Juergen Boehm and Mark Weiser. Garbage collection in an uncooperative environment. Software Practice and Experience, 18(9):807–820, September 1988.
David A. Barrett and Bejamin G. Zorn. Using lifetime predictors to improve memory allocation performance. In Proceedings of the 1993 SIGPLAN Conference on Programming Language Design and Implementation [PLD93], pages 187–196.
David A. Barrett and Benjamin G. Zorn. Garbage collection using a dynamic threatening boundary. In Proceedings of the 1995 SIGPLAN Conference on Programming Language Design and Implementation, pages 301–314, La Jolla, California, June 1995. ACM Press.
J. A. Campbell. A note on an optimal-fit method for dynamic allocation of storage. Computer Journal, 14(1):7–9, February 1971.
Vincent Cate and Thomas Gross. Combining the concepts of compression and caching for a two-level file system. In Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS IV), pages 200–209, Santa Clara, California, April 1991.
Robert Cmelik and David Keppel. Shade: A fast instruction-set simulator for execution profiling. Technical Report UWCSE 93-06-06, Dept. of Computer Science and Engineering, University of Washington, Seattle, Washington, 1993.
E. G. Coffman, Jr., T. T. Kadota, and L. A. Shepp. On the asymptotic optimality of first-fit storage allocation. IEEE Transactions on Software Engineering, SE-11(2):235–239, February 1985.
E. G. Coffman, Jr. and F. T. Leighton. A provably efficient algorithm for dynamic storage allocation. Journal of Computer and System Sciences, 38(1):2–35, February 1989.
G. O. Collins. Experience in automatic storage allocation. Communications of the ACM, 4(10):436–440, October 1961.
W. T. Comfort. Multiword list items. Communications of the ACM, 7(6), June 1964.
B. Cranston and R. Thomas. A simplified recombination scheme for the Fibonacci buddy system. Communications of the ACM, 18(6):331–332, July 1975.
David Detlefs, Al Dosser, and Benjamin Zorn. Memory allocation costs in large C and C++ programs. Technical Report CU-CS-665-93, University of Colorado at Boulder, Dept. of Computer Science, Boulder, Colorado, August 1993.
R. Kent Dybvig, David Eby, and Carl Bruggeman. Don't stop the BIBOP: Flexible and efficient storage management for dynamically typed languages. Technical Report 400, Indiana University Computer Science Dept., March 1994.
V. Delacour. Allocation regions and implementation contracts. In Yves Bekkers and Jacques Cohen, editors, International Workshop on Memory Management, number 637 in Lecture Notes in Computer Science, pages 426–439, St. Malo, France, September 1992. Springer-Verlag.
Peter J. Denning. Virtual memory. Computing Surveys, 3(2):153–189, September 1970.
David L. Detlefs. Garbage collection and runtime typing as a C++ library. In USENIX C++ Conference, Portland, Oregon, August 1992. USENIX Association.
Edsger W. Dijkstra. Notes on structured programming. In Structured Programming. Academic Press, 1969.
Fred Douglis. The compression cache: Using on-line compression to extend physical memory. In Proceedings of 1993 Winter USENIX Conference, pages 519–529, San Diego, California, January 1993.
Amer Diwan, David Tarditi, and Eliot Moss. Memory subsystem performance of programs with intensive heap allocation. Submitted for publication, August 1993.
Alan Demers, Mark Weiser, Barry Hayes, Daniel Bobrow, and Scott Shenker. Combining generational and conservative garbage collection: Framework and implementations. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 261–269, San Francisco, California, January 1990. ACM Press.
C. S. Ellis and T. J. Olson. Algorithms for parallel memory allocation. International Journal of Parallel Programming, 17(4):303–345, 1988.
H. R. P. Ferguson. On a generalization of the Fibonacci numbers useful in memory allocation schema. The Fibonacci Quarterly, 14(3):233–243, October 1976.
R. Ford. Concurrent algorithms for real-time memory management. IEEE Software, pages 10–23, September 1988.
J. S. Fenton and D. W. Payne. Dynamic storage allocations of arbitrary sized segments. In Proc. IFIPS, pages 344–348, 1974.
Matthew Farrens and Arvin Park. Dynamic base register caching: A technique for reducing address bus width. In 18th Annual International Symposium on Computer Architecture, pages 128–137, Toronto, Canada, May 1991. ACM Press.
Marcelo J. R. Goncalves and Andrew W. Appel. Cache performance of fast-allocating programs. In FPCA '95, 1995.
E. Gelenbe. The two-thirds rule for dynamic storage allocation under equilibrium. Information Processing Letters, 1(2):59–60, July 1971.
M. R. Garey, R. L. Graham, and J. D. Ullman. Worst-case analysis of memory allocation algorithms. In Fourth Annual ACM Symposium on the Theory of Computing, 1972.
S. Gai and M. Mezzalama. Dynamic storage allocation: Experiments using the C language. Software Practice and Experience, 15(7):693–704, July 1985.
R. L. Graham. Unpublished technical report on worst-case analysis of memory allocation algorithms, Bell Labs.
A. Gottlieb and J. Wilson. Parallelizing the usual buddy algorithm. Technical Report System Software Note 37, Courant Institute, New York University, 1982.
Dirk Grunwald and Benjamin Zorn. CustoMalloc: Efficient synthesized memory allocators. Software Practice and Experience, 23(8):851–869, August 1993.
Dirk Grunwald, Benjamin Zorn, and Robert Henderson. Improving the cache locality of memory allocation. In Proceedings of the 1993 SIGPLAN Conference on Programming Language Design and Implementation [PLD93], pages 177–186.
David R. Hanson. Fast allocation and deallocation of memory based on object lifetimes. Software Practice and Experience, 20(1), January 1990.
Juris Hartmanis. Turing award lecture: On computational complexity and the nature of computer science. Computing Surveys, 27(1):7–16, March 1995.
Barry Hayes. Using key object opportunism to collect old objects. In Andreas Paepcke, editor, Conference on Object Oriented Programming Systems, Languages and Applications (OOPSLA '91), pages 33–46, Phoenix, Arizona, October 1991. ACM Press.
Barry Hayes. Key Objects in Garbage Collection. PhD thesis, Standford University, March 1993.
J. A. Hinds. An algorithm for locating adjacent storage blocks in the buddy system. Communications of the ACM, 18(4):221–222, April 1975.
D. S. Hirschberg. A class of dynamic memory allocation algorithms. Communications of the ACM, 16(10):615–618, October 1973.
V. C. Harris and C. C. Styles. A generalization of the Fibonacci numbers. The Fibonacci Quarterly, 2(4):227–289, December 1964.
Mark D. Hill and Alan Jay Smith. Evaluating associativity in CPU caches. IEEE Transactions on Computers, 38(12):1612–1629, December 1989.
S. Isoda, E. Goto, and I. Kimura. An efficient bit table technique for dynamic storage allocation of 2n-word blocks. Communications of the ACM, 14(9):589–592, September 1971.
J. K. Iliffe and J. G. Jodeit. A dynamic storage allocation scheme. Computer Journal, 5(3):200–209, October 1962.
P. Z. Ingerman. Thunks. Communications of the ACM, 4(1):55–58, January 1961.
Arun K. Iyengar. Parallel dynamic storage allocation algorithms. In Fifth IEEE Symposium on Parallel and Distributed Processing, 1993.
G. D. Johnson. Simscript II.5 User's Manual, S/360-370 Version, Release 6, 1972.
Theodore Johnson. A concurrent fast fits memory manager. Technical Report 91-009, University of Florida, 1991.
T. Johnson and D. Sasha. Parallel buddy memory management. Parallel Processing Letters, 2(4):391–398, 1992.
Arie Kaufman. Tailored-list and recombination-delaying buddy systems. ACM Transactions on Programming Languages and Systems, 6(4):118–125, 1984.
Phillip J. Koopman, Jr., Peter Lee, and Daniel P. Siewiorek. Cache performance of combinator graph reduction. ACM Transactions on Programming Languages and Systems, 14(2):265–297, April 1992.
Kenneth C. Knowlton. A fast storage allocator. Communications of the ACM, 8(10):623–625, October 1965.
Donald E. Knuth. The Art of Computer Programming, volume 1: Fundamental Algorithms. Addison-Wesley, Reading, Massachusetts, 1973. First edition published in 1968.
Saul A. Kripke. Naming and Necessity. Harvard University Press, 1972.
S. Krogdahl. A dynamic storage allocation problem. Information Processing Letters, 2:96–99, 1973.
Thomas S. Kuhn. The Structure of Scientific Revolutions (Second Edition, Enlarged). University of Chicago Press, Chicago, Illinois, 1970.
David G. Korn and Kiem-Phong Vo. In search of a better malloc. In Proc. USENIX Summer 1985, pages 489–506, Portland, Oregon, June 1985. USENIX Association.
B. W. Leverett and P. G. Hibbard. An adaptive system for dynamic storage allocation. Software Practice and Experience, 12(6):543–556, June 1982.
Henry Lieberman and Carl Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419–429, June 1983.
J. Minker et al. Analysis of data processing systems. Technical Report 69-99, University of Maryland, College Park, Maryland, 1969.
R. J. Maher. Problems of storage allocation in a multiprocessor multiprogrammed system. Communications of the ACM, 4(10):421–422, October 1961.
David Marr. Vision. Freeman, New York, 1982.
Ronald McClamrock. Marr's three levels: a re-evaluation. Minds and Machines, 1:185–196, 1991.
Ronald McClamrock. Existential Cognition: Computational Minds in the World. University of Chicago Press, 1995.
M. D. Mcllroy. The number of states of a dynamic storage allocation system. Computer Journal, 25(3):388–392, August 1982.
Marshall Kirk McKusick and Michael J. Karels. Design of a generalpurpose memory allocator for the 4.3bsd UNIX kernel. In Proceedings of the Summer 1988 USENIX Conference, San Francisco, California, June 1988. USENIX Association.
David Moon. Garbage collection in a large Lisp system. In Conference Record of the 1984 ACM Symposium on LISP and Functional Programming, pages 235–246, Austin, Texas, August 1984. ACM Press.
B. H. Margolin, R. P. Parmelee, and M. Schatzoff. Analysis of free-storage algorithms. IBM Systems Journal, 10(4):283–304, 1971.
Paul E. McKenney and Jack Slingwine. Efficient kernel memory allocation on shared-memory multiprocessors. In USENIX 1993 Winter Technical Conference, San Diego, California, January 1993. USENIX Association.
Mark Nelson. The Data Compression Book. M & T Books, 1991.
N. R. Nielsen. Dynamic memory allocation in computer simulation. Communications of the ACM, 20(11):864–873, November 1977.
R. R. Oldehoeft and S. J. Allan. Actaptive exact-fit storage management. Communications of the ACM, 28(5):506–511, May 1985.
Ivor P. Page. Optimal fit of arbitrary sized segments. British Computer Journal, 25(1), January 1982.
Ivor P. Page. Analysis of a cyclic placement scheme. Computer Journal, 27(1):18–25, January 1984.
Ivor P. Page and Jeff Hagins. Improving the performance of buddy systems. IEEE Transactions on Computers, C-35(5):441–447, May 1986.
Proceedings of the 1991 SIGPLAN Conference on Programming Language Design and Implementation, Toronto, Ontario, June 1991. ACM Press. Published as SIGPLAN Notices 26(6), June 1992.
Proceedings of the 1993 SIGPLAN Conference on Programming Language Design and Implementation, Albuquerque, New Mexico, June 1993. ACM Press.
J. L. Peterson and T. A. Norman. Buddy systems. Communications of the ACM, 20(6):421–431, June 1977.
P.W. Purdom and S. M. Stigler. Statistical properties of the buddy system. Journal of the ACM, 17(4):683–697, October 1970.
P. W. Purdom, S. M. Stigler, and Tat-Ong Cheam. Statistical investigation of three storage allocation algorithms. BIT, 11:187–195, 1971.
Brian Randell. A note on storage fragmentation and program segmentation. Communications of the ACM, 12(7):365–372, July 1969.
C. M. Reeves. Free store distribution under random-fit allocation. Computer Journal, 22(4):346–351, November 1979.
C. M. Reeves. Free store distribution under random-fit allocation: Part 2. Computer Journal, 23(4):298–306, November 1980.
C. M. Reeves. A lumped-state model of clustering in dynamic storage allocation. Computer Journal, 27(2):135–142, 1982.
C. M. Reeves. Free store distribution under random-fit allocation, part 3. Computer Journal, 26(1):25–35, February 1983.
Mark B. Reinhold. Cache performance of garbage-collected programs. In Proceedings of the 1994 SIGPLAN Conference on Programming Language Design and Implementation, pages 206–217, Orlando, Florida, June 1994. ACM Press.
Mendel Rosenblum and John K. Ousterhout. The design and implementation of a log-structured file system. In Proceedings of the Thirteenth Symposium on Operating Systems Principles, pages 1–15, Pacific Grove, California, October 1991. ACM Press. Published as Operating Systems Review 25(5).
J. M. Robson. An estimate of the store size necessary for dynamic storage allocation. Journal of the ACM, 18(3):416–423, July 1971.
J. M. Robson. Bounds for some functions concerning dynamic storage allocation. Journal of the ACM, 21(3):491–499, July 1974.
J. M. Robson. Worst case fragmentation of first fit and best fit storage allocation strategies. Computer Journal, 20(3):242–244, August 1977.
D. T. Ross. A generalized technique for symbol manipulation and numerical calculation. Communications of the ACM, 4(3):147–150, March 1961.
D. T. Ross. The AED free storage package. Communications of the ACM, 10(8):481–492, August 1967.
D. L. Russell. Internal fragmentation in a class of buddy systems. SIAM J. Comput., 6(4):607–621, December 1977.
A. Dain Samples. Mache: No-loss trace compaction. In ACM SIGMET-RICS, pages 89–97, May 1989.
Robert A. Shaw. Empirical Analysis of a Lisp System. PhD thesis, Stanford University, Palo Alto, California, February 1988. Technical Report CSL-TR-88-351, Stanford University Computer Systems Laboratory.
J. E. Shore. On the external storage fragmentation produced by first-fit and best-fit allocation strategies. Communications of the ACM, 18(8):433–440, August 1975.
J. E. Shore. Anomalous behavior of the fifty-percent rule in dynamic memory allocation. Communications of the ACM, 20(11):558–562, November 1977.
Vivek Singhal, Sheetal V. Kakkad, and Paul R. Wilson. Texas: an efficient, portable persistent store. In Antonio Albano and Ron Morrison, editors, Fifth International Workshop on Persistent Object Systems, pages 11–33, San Miniato, Italy, September 1992. Springer-Verlag.
K. K. Shen and J. L. Peterson. A weighted buddy method for dynamic storage allocation. Communications of the ACM, 17(10):558–562, October 1974.
Daniel Dominic Sleator and Robert Endre Tarjan. Self-adjusting binary search trees. Journal of the ACM, 32(3), 1985.
Thomas Standish. Data Structure Techniques. Addison-Wesley, Reading, Massachusetts, 1980.
C. J. Stephenson. Fast fits: New methods for dynamic storage allocation. In Proceedings of the Ninth Symposium on Operating Systems Principles, pages 30–32, Bretton Woods, New Hampshire, October 1983. ACM Press. blished as Operating Systems Review 17(5), October 1983.
Harold S. Stone. Parallel memory allocation using the FETCH-AND-ADD instruction. Technical report, IBM Thomas J. Watson Research Center, Yorktown Heights, New York, November 1982.
M. Tadman. Fast-fit: A new hierarchical dynamic storage allocation technique. Master's thesis, UC Irvine, Computer Science Dept., 1978.
Dominique Thiebaut. The fractal dimension of computer programs and its application to the prediction of the cache miss ratio. IEEE Transactions on Computers, pages 1012–1026, July 1989.
R. A. Totschek. An empirical investigation into the behavior of the SDC timesharing system. Technical Report SP2191, Systems Development Corporation, 1965.
David Ungar and Frank Jackson. Tenuring policies for generation-based storage reclamation. In Norman Meyrowitz, editor, Conference on Object Oriented Programming Systems, Languages and Applications (OOPSLA '88) Proceedings, pages 1–17, San Diego, California, September 1988. ACM Press.
Jeffrey D. Ullman. The role of theory today. Computing Surveys, 27(1):43–44, March 1995.
David Ungar. Design and Evaluation of a High-Performance Smalltalk System. MIT Press, Cambridge, Massachusetts, 1986.
P. Vongsathorn and S. D. Carson. A system for adaptive disk rearrangement. Software Practice and Experience, 20(3):225–242, March 1990.
[VMH+83] J. Voldman, B. Mandelbrot, L. W. Hoevel, J. Knight, and P. Rosenfeld. Fractal nature of software-cache interaction. IBM Journal of Research and Development, 27(2):164–170, March 1983.
Kiem-Phong Vo. Vmalloc: A general and efficient memory allocator. Software Practice and Experience, 1995. To appear.
Jean Vuillemin. A unifying look at data structures. Communications of the ACM, 29(4):229–239, April 1980.
B. Wald. Utilization of a multiprocessor in command and control. Proceedings of the IEEE, 53(12):1885–1888, December 1966.
Paul R. Wilson and V. B. Balayoghan. Compressed paging. In preparation, 1995.
Mark Weiser, Alan Demers, and Carl Hauser. The portable common runtime approach to interoperability. In Proceedings of the Twelfth Symposium on Operating Systems Principles, December 1989.
Charles B. Weinstock. Dynamic Storage Allocation Techniques. PhD thesis, Carnegie-Mellon University, Pittsburgh, Pennsylvania, April 1976.
Jon L. White. Address/memory management for a gigantic Lisp environment, or, GC considered harmful. In LISP Conference, pages 119–127, Redwood Estates, California, August 1980.
Paul R. Wilson. Some issues and strategies in heap management and memory hierarchies. In OOPSLA/ECOOP '90 Workshop on Garbage Collection in Object-Oriented Systems, October 1990. Also appears in SIGPLAN Notices 23(3):45–52, March 1991.
Paul R. Wilson. Operating system support for small objects. In International Workshop on Object Orientation in Operating Systems, pages 80–86, Palo Alto, California, October 1991. IEEE Press.
Paul R. Wilson. Garbage collection. Computing Surveys, 1995. Expanded version of [?]. Draft available via anonymous internet FTP from cs.utexas.edu as pub/garbage/bigsurv.ps. In revision, to appear.
David S. Wise. The double buddy-system. Technical Report 79, Computer Science Department, Indiana University, Bloomington, Indiana, December 1978.
Paul R. Wilson and Mark S. Johnstone. Truly real-time non-copying garbage collection. In OOPSLA '93 Workshop on Memory Management and Garbage Collection, December 1993. Expanded version of workshop position paper submitted for publication.
Paul R. Wilson, Mark S. Johnstone, Michael Neely, and David Boles. Memory allocation policies reconsidered. Technical report, University of Texas at Austin Department of Computer Sciences, 1995.
William A. Wulf, R. K. Johnsson, C. B. Weinstock, S. O. Hobbs, and C. M. Geschke. Design of an Optimizing Compiler. American Elsevier, 1975.
Paul R. Wilson, Michael S. Lam, and Thomas G. Moher. Effective staticgraph reorganization to improve locality in garbage-collected systems. In Proceedings of the 1991 SIGPLAN Conference on Programming Language Design and Implementation [PLD91], pages 177–191. Published as SIGPLAN Notices 26(6), June 1992.
Paul R. Wilson, Michael S. Lam, and Thomas G. Moher. Caching considerations for generational garbage collection. In Conference Record of the 1992 ACM Symposium on LISP and Functional Programming, pages 32–42, San Francisco, California, June 1992. ACM Press.
Paul R. Wilson and Thomas G. Moher. Design of the Opportunistic Garbage Collector. In Conference on Object Oriented Programming Systems, Languages and Applications (OOPSLA '89) Proceedings, pages 23–35, New Orleans, Louisiana, 1989. ACM Press.
Eric Wolman. A fixed optimum cell-size for records of various lengths. Journal of the ACM, 12(1):53–70, January 1965.
Charles B. Weinstock and William A. Wulf. Quickfit: an efficient algorithm for heap storage allocation. ACM SIGPLAN Notices, 23(10):141–144, October 1988.
Taichi Yuasa. The design and implementation of Kyoto Common Lisp. Journal of Information Processing, 13(3), 1990.
Benjamin Zorn and Dirk Grunwald. Empirical measurements of six allocation-intensive C programs. Technical Report CU-CS-604-92, University of Colorado at Boulder, Dept. of Computer Science, July 1992.
Benjamin Zorn and Dirk Grunwald. Evaluating models of memory allocation. ACM Transactions on Modeling and Computer Simulation, 1(4):107–131, 1994.
Benjamin Zorn. The measured cost of conservative garbage collection. Software—Practice and Experience, 23(7):733–756, July 1993.