Bird
Raised Fist0
Operating Systemsknowledge~6 mins

File allocation methods (contiguous, linked, indexed) in Operating Systems - Full Explanation

Choose your learning style10 modes available
Introduction
Imagine you have a big box where you want to store many books. The problem is how to arrange these books so you can find and use them easily later. File allocation methods solve this problem by deciding how files are stored on a computer's disk.
Explanation
Contiguous Allocation
In contiguous allocation, each file is stored in one continuous block of disk space. This means all parts of the file are next to each other, making reading fast and simple. However, it can cause wasted space if files grow or shrink, and finding a big enough free block can be hard.
Contiguous allocation stores files in one continuous block, making access fast but space management tricky.
Linked Allocation
Linked allocation stores a file as a chain of disk blocks scattered anywhere on the disk. Each block contains a pointer to the next block. This method uses space efficiently and allows files to grow easily, but accessing a file can be slower because the system must follow pointers from block to block.
Linked allocation stores files as scattered blocks linked by pointers, allowing flexible size but slower access.
Indexed Allocation
Indexed allocation keeps a special index block that holds pointers to all the blocks of a file. This index acts like a table of contents, letting the system find any part of the file quickly. It combines the benefits of contiguous and linked methods but requires extra space for the index block.
Indexed allocation uses an index block to point to file blocks, enabling fast access with some extra overhead.
Real World Analogy

Think of storing books in a library. Contiguous allocation is like placing all pages of a book on one shelf in order. Linked allocation is like having pages scattered in different shelves but with a note on each page telling where the next page is. Indexed allocation is like having a special card listing all the shelf locations of each page.

Contiguous Allocation → All pages of a book placed together on one shelf in order
Linked Allocation → Pages scattered on different shelves with notes pointing to the next page
Indexed Allocation → A special card listing all shelf locations of the book's pages
Diagram
Diagram
┌─────────────────────────────┐
│ Contiguous Allocation        │
│ ┌───────────────┐           │
│ │ File Blocks   │           │
│ │ [1][2][3][4] │           │
│ └───────────────┘           │
├─────────────────────────────┤
│ Linked Allocation            │
│ ┌─────┐   ┌─────┐   ┌─────┐ │
│ │[1]─┐│→ │[3]─┐│→ │[2]  │ │
│ └─┬──┘│  └─┬──┘│  └─────┘ │
│   ↓    ↓    ↓              │
├─────────────────────────────┤
│ Indexed Allocation           │
│ ┌───────────────┐           │
│ │ Index Block   │           │
│ │ [1][3][2][4] │           │
│ └───────────────┘           │
│ Blocks scattered anywhere   │
└─────────────────────────────┘
This diagram shows how files are stored in contiguous, linked, and indexed allocation methods.
Key Facts
Contiguous Allocation → Stores a file in one continuous block of disk space.
Linked Allocation → Stores a file as linked blocks scattered anywhere on the disk.
Indexed Allocation → Uses an index block to point to all blocks of a file.
Pointer → A reference in one block that tells where the next block is located.
Index Block → A special block that holds pointers to all parts of a file.
Common Confusions
Believing contiguous allocation always wastes space.
Believing contiguous allocation always wastes space. Contiguous allocation can waste space if files grow or shrink, but it is very efficient for fixed-size files.
Thinking linked allocation allows fast random access.
Thinking linked allocation allows fast random access. Linked allocation requires following pointers sequentially, so random access is slower compared to indexed allocation.
Assuming indexed allocation does not need extra space.
Assuming indexed allocation does not need extra space. Indexed allocation requires extra disk space for the index block that stores pointers to file blocks.
Summary
File allocation methods decide how files are stored on disk to balance speed and space use.
Contiguous allocation stores files in one block for fast access but can waste space.
Linked allocation uses pointers to link scattered blocks, allowing flexible file sizes but slower access.
Indexed allocation uses an index block to quickly find file parts, combining benefits of both methods.

Practice

(1/5)
1. Which file allocation method stores all file blocks in one continuous sequence on disk?
easy
A. Hybrid allocation
B. Linked allocation
C. Indexed allocation
D. Contiguous allocation

Solution

  1. Step 1: Understand file storage methods

    Contiguous allocation stores all file blocks one after another in a continuous space on disk.
  2. Step 2: Compare with other methods

    Linked allocation stores blocks scattered with pointers; indexed uses an index block. Only contiguous is continuous.
  3. Final Answer:

    Contiguous allocation -> Option D
  4. Quick Check:

    Continuous blocks = Contiguous allocation [OK]
Hint: Continuous blocks mean contiguous allocation [OK]
Common Mistakes:
  • Confusing linked allocation with contiguous
  • Thinking indexed allocation stores blocks continuously
  • Assuming hybrid is a standard method
2. Which of the following is the correct way to describe linked allocation?
easy
A. File blocks are stored in a continuous sequence
B. Each file block contains a pointer to the next block
C. An index block contains pointers to all file blocks
D. File blocks are stored in a fixed-size table

Solution

  1. Step 1: Recall linked allocation structure

    In linked allocation, each file block stores a pointer to the next block, forming a chain.
  2. Step 2: Eliminate other options

    Continuous sequence is contiguous; index block is indexed allocation; fixed-size table is unrelated.
  3. Final Answer:

    Each file block contains a pointer to the next block -> Option B
  4. Quick Check:

    Pointers in blocks = Linked allocation [OK]
Hint: Pointers inside blocks mean linked allocation [OK]
Common Mistakes:
  • Mixing up index block with linked pointers
  • Thinking linked allocation stores blocks continuously
  • Confusing fixed-size table with file allocation
3. Consider a file stored using indexed allocation with an index block containing pointers to data blocks 5, 9, and 12. Which block does the system read first to access the file?
medium
A. The index block
B. Block 5
C. Block 9
D. Block 12

Solution

  1. Step 1: Understand indexed allocation access

    The system first reads the index block to find pointers to all data blocks.
  2. Step 2: Identify the first block read

    Before accessing data blocks 5, 9, or 12, the index block must be read to know their locations.
  3. Final Answer:

    The index block -> Option A
  4. Quick Check:

    Index block read first in indexed allocation [OK]
Hint: Index block is always read first in indexed allocation [OK]
Common Mistakes:
  • Choosing a data block instead of the index block
  • Confusing linked allocation with indexed
  • Assuming direct access without index
4. A file system uses linked allocation but the file's blocks are stored non-contiguously without pointers linking them. What is the main problem here?
medium
A. File blocks are stored contiguously, causing slow access
B. File blocks are fragmented but linked correctly
C. Pointers are missing, so file blocks cannot be accessed sequentially
D. Index block is corrupted

Solution

  1. Step 1: Understand linked allocation requirements

    Linked allocation requires each block to have a pointer to the next block for sequential access.
  2. Step 2: Identify the problem without pointers

    Without pointers, the system cannot follow the chain, so blocks cannot be accessed in order.
  3. Final Answer:

    Pointers are missing, so file blocks cannot be accessed sequentially -> Option C
  4. Quick Check:

    Missing pointers break linked allocation chain [OK]
Hint: No pointers means linked allocation fails [OK]
Common Mistakes:
  • Assuming fragmentation is not a problem
  • Confusing contiguous storage with linked allocation
  • Thinking index block is involved in linked allocation
5. A file of size 12 blocks is stored using contiguous allocation starting at block 20. If block 25 is corrupted, what is the impact on the file access?
hard
A. The entire file becomes inaccessible due to break in continuity
B. File access continues using pointers from block 25
C. Only block 25 is lost; other blocks are accessible
D. Index block redirects access around block 25

Solution

  1. Step 1: Recall contiguous allocation properties

    Files are stored in continuous blocks; any corruption breaks the sequence.
  2. Step 2: Analyze impact of corrupted block 25

    Since block 25 is in the middle, the file cannot be read beyond that point, making the entire file inaccessible.
  3. Final Answer:

    The entire file becomes inaccessible due to break in continuity -> Option A
  4. Quick Check:

    Corruption breaks contiguous file access [OK]
Hint: Contiguous files fail if any block is corrupted [OK]
Common Mistakes:
  • Assuming only corrupted block is lost
  • Thinking pointers or index block help in contiguous allocation
  • Confusing linked or indexed allocation behavior
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard