The operating system can maintain a table of cluster entries, and mark each
cluster as either free or allocated. This was a technique used in the MS-DOS
operating system. Other operating systems maintain a linked list of free
clusters, each free cluster pointing to the next free cluster. As clusters are
allocated, they are removed from the free cluster list. When a file is deleted,
the clusters that were allocated to it are added back to the free cluster list.