Since data blocks for a file are typically accessed together,
the policyroutines try to place all data blocks for a file in the same cylinder group, preferably at rotationally
optimal positions in the same cylinder. The problem with allocating all the data blocks in the same cylinder
group is that large files will quickly use up available space in the cylinder group, forcing a spill over to
other areas. Further, using all the space in a cylinder group causes future allocations for anyfile in the
cylinder group to also spill to other areas. Ideally none of the cylinder groups should ever become com-
pletely full. The heuristic solution chosen is to redirect block allocation to a different cylinder group when
afile exceeds 48 kilobytes, and at every megabyte thereafter.* Thenewly chosen cylinder group is selected
from those cylinder groups that have a greater than average number of free blocks left. Although big files
tend to be spread out overthe disk, a megabyte of data is typically accessible before a long seek must be
performed, and the cost of one long seek per megabyte is small.