Free space management involves managing the available storage space on the hard disk or other secondary storage devices. To reuse the space released from deleting the files, a free space list is maintained. The free space list can be implemented mainly as:

- Bitmap or Bit vector
- Linked List
- Boundary Tags
- Free List
Bitmap or Bit vector
In this approach, A Bitmap or Bit Vector is series or collection of bits where each bit corresponds to a disk block. The bit can take two values 0 and 1:
- 0 indicates that the block is free and 1 indicates an allocated​ block.
- The given instance of disk blocks on the disk in Figure 1 can be represented by a bitmap of 16 bits as: 1111000111111001.

Bitmap
Advantages:
- Simple to understand.
- Finding the first free block is efficient. It requires scanning the words (a group of 8 bits) in a bitmap for a non-zero word. (A 0-valued word has all bits 0). The first free block is then found by scanning for the first 1 bit in the non-zero word.
Disadvantages:
- For finding a free block, Operating System needs to iterate all the blocks which is time consuming.
- The efficiency of this method reduces as the disk size increases.
Linked List
In this approach, Free blocks are linked together in a list. Each free block stores the address of the next free block. The list is maintained dynamically as blocks are allocated and freed.

Note: The free space list head points to Block 5 which points to Block 6, the next free block and so on. The last free block would contain a null pointer indicating the end of free list.
Advantages:
- The total available space is used efficiently using this method.
- Dynamic allocation in Linked List is easy, thus can add the space as per the requirement dynamically.
Disadvantages:
- When the size of Linked List increases, the headache of maintaining pointers is also increases.
- This method is not efficient during iteration of each block of memory.
- I/O is required for free space list traversal.
Boundary Tags
In this approach, Each block contains a boundary tag indicating its size and whether it is free or occupied. Adjacent free blocks are merged during deallocation to reduce fragmentation.
Advantages:
- Useful in memory management systems.
- Simplifies coalescing of adjacent free blocks.
Disadvantages:
- Slight overhead in storing tag information.
- More complex than bitmap or linked list.
Free List
In this approach, The free blocks are maintained in a list (array or linked list). Each entry in the free list points directly to a free block on disk.

Advantages:
- Fast allocation as free blocks are known upfront.
- Easy to traverse and maintain.
Disadvantages:
- Extra memory needed to store the list.
- May suffer from fragmentation over time.