Analysis of Free-Storage Algorithms - Revisited

Most research in free-storage management has centered around strategies that search a linked list and strategies that partition storage into predetermined sizes. Such algorithms are analyzed in terms of CPU efficiency and storage efficiency. The subject of this study is the free-storage management in the Virtual Machine/System Product (VM/SP) system control program. As a part of this study, simulations were done of established, and proposed, dynamic storage algorithms for the VM/SP operating system. Empirical evidence is given that simplifying statistical assumptions about the distribution of interarrival times and holding times has high predictive ability. Algorithms such as first-fit, modified first-fit, and best-fit are found to be CPU-inefficient. Buddy systems are found to be very fast but suffer from a high degree of internal fragmentation. A form of extended subpooling is shown to be as fast as buddy systems with improved storage efficiency. This algorithm was implemented for VM/SP, and then measured. Results for this algorithm are given for several production VM/SP systems.

[1]  Harry M. Markowitz,et al.  SIMSCRIPT: A Simulation Programming Language , 1962 .

[2]  C. J. Stephenson,et al.  New methods for dynamic storage allocation (Fast Fits) , 1983, SOSP '83.

[3]  James L. Peterson,et al.  Buddy systems , 1977, CACM.

[4]  James L. Peterson,et al.  A weighted buddy method for dynamic storage allocation , 1974, CACM.

[5]  Brian Randell,et al.  A note on storage fragmentation and program segmentation , 1969, CACM.

[6]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[7]  Carter Bays,et al.  A comparison of next-fit, first-fit, and best-fit , 1977, CACM.

[8]  Alfs T. Berztiss,et al.  A note on storage of strings , 1965, Commun. ACM.

[9]  Kenneth C. Knowlton,et al.  A fast storage allocator , 1965, CACM.

[10]  F. Paul Wyman,et al.  Improved event-scanning mechanisms for discrete event simulation , 1975, Commun. ACM.

[11]  Jeffrey S. Fenton,et al.  Dynamic Storage Allocation of Arbitrary Sized Segments , 1974, IFIP Congress.

[12]  J. K. Iliffe,et al.  A Dynamic Storage Allocation Scheme , 1962, Comput. J..

[13]  Paul Walton Purdom,et al.  Statistical investigation of three storage allocation algorithms , 1971 .

[14]  Rick Thomas,et al.  A simplified recombination scheme for the Fibonacci buddy system , 1975, CACM.

[15]  J. Little A Proof for the Queuing Formula: L = λW , 1961 .

[16]  Martin Schatzoff,et al.  Analysis of Free-Storage Algorithms , 1971, IBM Syst. J..

[17]  DAVID L. RUSSELL Internal Fragmentation in a Class of Buddy Systems , 1977, SIAM J. Comput..

[18]  Michael P. Barnett,et al.  Symbol manipulation in FORTRAN: SASP I subroutines , 1964, CACM.

[19]  John Michael Robson,et al.  An Estimate of the Store Size Necessary for Dynamic Storage Allocation , 1971, JACM.

[20]  Peter J. Denning,et al.  Measuring and Calculating Queue Length Distributions , 1980, Computer.

[21]  Daniel S. Hirschberg,et al.  A class of dynamic memory allocation algorithms , 1973, CACM.

[22]  John E. Shore On the external storage fragmentation produced by first-fit and best-fit allocation strategies , 1975, CACM.

[23]  Douglas T. Ross The AED free storage package , 1967, CACM.

[24]  George O. Collins,et al.  Experience in automatic storage allocation , 1961, Commun. ACM.

[25]  Kenneth C. Knowlton A programmer's description of L6 , 1966, CACM.