Introduction
Imagine your computer's storage as a big parking lot. Over time, cars (files) come and go, leaving empty spots. The problem is how to keep track of these empty spots so new cars can park efficiently without confusion or wasted space.
Imagine a parking lot manager who needs to keep track of empty parking spots. Sometimes they use a checklist with a mark for each spot (bit vector). Other times, they keep a chain of empty spots by pointing from one to the next (linked list). Sometimes they group empty spots in clusters to check faster (grouping). Or they note down a starting spot and how many spots in a row are free (counting).
┌─────────────────────────────┐ │ Free Space Management Methods│ ├───────────────┬─────────────┤ │ Bit Vector │ 0 1 0 0 1 1 │ │ │ ↑ ↑ ↑ │ ├───────────────┼─────────────┤ │ Linked List │ [Block 5] → [Block 8] → [Block 12] → NULL ├───────────────┼─────────────┤ │ Grouping │ [Group 1: 5,8,12] → [Group 2: 20,21,22] ├───────────────┼─────────────┤ │ Counting │ Start: 5, Count: 3 (Blocks 5,6,7 free) └───────────────┴─────────────┘