If the number of free blocks goes to zero, the performance is degraded dramatically, because of the inability to carry out the optimizations outlined above. Switch to another cylinder groups at certain file size boundaries. Keep directory within a cylinder group. When allocating for a new directory, find the cylinder group with the most free indoes. Spread out different directories.
Global policy allocates files and directories to cylinder groups.
Global policy calls local allocation routines to request for specific blocks. 10-20x original UNIX speeds. Writes are always slower than reads, because of the allocation costs in writes. Long file names. This allows sys admin to participate in the locking mechanisms, because sys admin can override any protection scheme.