Disk file allocation based on the buddy system

The buddy system is known for its speed and simplicity. However, high internal and external fragmentation have made it unattractive for use in operating system file layout. A variant of the binary buddy system that reduces fragmentation is described. Files are allocated on up to t extents, and inoptimally allocated files are periodically reallocated. The Dartmouth Time-Sharing System (DTSS) uses this method. Several installations of DTSS, representing different classes of workload, are studied to measure the method's performance. Internal fragmentation varies from 2-6 percent, and external fragmentation varies from 0-10 percent for expected request sizes. Less than 0.1 percent of the CPU is spent executing the algorithm. In addition, most files are stored contiguously on disk. The mean number of extents per file is less than 1.5, and the upper bound is t. Compared to the tile layout method used by UNIX, the buddy system results in more efficient access but less efficient utilization of disk space. As disks become larger and less expensive per byte, strategies that achieve efficient I/O throughput at the expense of some storage loss become increasingly attractive.

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

[2]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[3]  Paul Walton Purdom,et al.  Statistical Properties of the Buddy System , 1970, JACM.

[4]  W. C. Lynch Do disk arms move? , 1972, PERV.

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

[6]  A. Retrospective,et al.  The UNIX Time-sharing System , 1977 .

[7]  Michael L. Powell,et al.  The DEMOS file system , 1977, SOSP '77.

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

[9]  Donald E. Knuth,et al.  The art of computer programming: V.1.: Fundamental algorithms , 1997 .

[10]  James P. Considine,et al.  Reduction of Storage Fragmentation on Direct Access Devices , 1979, IBM J. Res. Dev..

[11]  Gordon M. Bull The Dartmouth Time-Sharing System , 1980 .

[12]  PAUL W. PURDOM,et al.  Exact formulas for the buddy system , 1980, Inf. Sci..

[13]  Mahadev Satyanarayanan,et al.  A study of file sizes and functional lifetimes , 1981, SOSP.

[14]  Liba Svobodova Performance monitoring in computer systems: a structured approach , 1981, OPSR.

[15]  A. Yurchenko Algorithm of dynamic segmented memory allocation , 1981 .

[16]  Alan Jay Smith Bibliography on File and I/O System Optimization and related Topics , 1981, ACM SIGOPS Oper. Syst. Rev..

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

[18]  A. J. Smith,et al.  Disk cache - Miss ratio analysis and design considerations , 1983, Perform. Evaluation.

[19]  C. J. Stephenson Fast fits--new methods for dynamic storage allocation , 1983 .

[20]  R. S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[21]  William H. Tetzlaff,et al.  Analysis of Free-Storage Algorithms - Revisited , 1984, IBM Syst. J..

[22]  Arie E. Kaufman,et al.  Tailored-List and Recombination-Delaying Buddy Systems , 1984, TOPL.

[23]  Alan Jay Smith,et al.  Disk cache—miss ratio analysis and design considerations , 1983, TOCS.

[24]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.

[25]  John Kunze,et al.  A trace-driven analysis of the unix 4 , 1985, SOSP 1985.

[26]  Ivor P. Page,et al.  Improving the Performance of Buddy Systems , 1986, IEEE Transactions on Computers.

[27]  Donald Golden,et al.  The structure of microcomputer file systems , 1986, CACM.