Linked File Allocation stores files as linked lists of disk blocks where each block contains a pointer to the next block in the chain. The directory entry for a file contains a pointer to the first and last blocks of the file.
This method completely eliminates external fragmentation since each new block can be placed anywhere on the disk. Files can grow dynamically by simply adding new blocks to the chain. However, it's inefficient for random access as the system must follow the chain from the beginning.
A variation called File Allocation Table (FAT) improves performance by maintaining all links in a central table in memory, allowing faster traversal of the block chain.
Advantages
- No external fragmentation - optimal disk space utilization
- Files can grow easily without size declaration
- Simple to implement - only need starting block address
- No need for compaction or periodic defragmentation
Disadvantages
- Inefficient for random access - must traverse entire chain
- Overhead of storing pointers in each block
- Reliability issues - if one link is corrupted, entire file may be lost
- Slower than contiguous allocation for sequential access