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.