Linked File Allocation

Duration: 7 min

This video lesson is available to enrolled students.

Enroll to watch — ISRO Scientist/Engineer 'SC'

AI Summary

An AI-generated summary of this video lecture.

This lecture introduces Linked Allocation as a file system method that solves the problems associated with contiguous allocation. The instructor explains that with this method, each file is treated as a linked list of disk blocks, which can be scattered anywhere on the physical disk. A key feature is that the directory contains pointers to both the first and last blocks of the file. The video covers the advantages, such as the elimination of external fragmentation and the ability for files to grow dynamically without pre-allocating a fixed size. It also details significant disadvantages, including the overhead of storing pointers, the inability to perform efficient random access, and reliability concerns if a pointer is damaged.

Chapters

  1. 0:00 2:00 00:00-02:00

    The instructor begins by presenting a slide titled "Linked Allocation" which states that this method solves all problems of contiguous allocation. He explains that with linked allocation, each file is a linked list of disk blocks, and these blocks may be scattered anywhere on the disk. A diagram of a disk cylinder is shown with blocks numbered 0 through 31. The instructor points to a directory entry for a file named "jeep", which has columns for "file", "start", and "end". He traces a path through the blocks (1 -> 6 -> 10 -> 14 -> 18 -> 22 -> 26) to demonstrate how the blocks are linked together. He emphasizes that the directory contains a pointer to the first and last blocks of the file, allowing the system to traverse the entire file. The slide text reads: "The directory contains a pointer to the first and last blocks of the file."

  2. 2:00 5:00 02:00-05:00

    The lecture transitions to the advantages of linked allocation. The instructor explains that to create a new file, one simply creates a new entry in the directory. Each directory entry has a pointer to the first disk block of the file. To read a file, the system simply reads blocks by following the pointers from block to block. A major advantage is that the size of a file need not be declared when the file is created; a file can continue to grow as long as free blocks are available. He highlights that there is no external fragmentation with linked allocation, and any free block on the free-space list can be used to satisfy a request. He draws abstract linked list nodes to visualize the structure, reinforcing that blocks are linked sequentially regardless of physical location. The slide text reads: "There is no external fragmentation with linked allocation, and any free block on the free-space list can be used to satisfy a request."

  3. 5:00 7:04 05:00-07:04

    The instructor discusses the disadvantages of linked allocation. He notes that to find the i-th block of a file, one must start at the beginning of that file and follow the pointers until reaching the i-th block. Each access to a pointer requires a disk read, which is slow. Another disadvantage is the space required for the pointers, so each file requires slightly more space than it would otherwise. Reliability is also a problem; if a pointer is lost or damaged, the file chain is broken. He suggests partial solutions like using doubly linked lists or storing the file name and relative block number in each block, but notes these schemes require even more overhead. He draws a simple linked list diagram to illustrate the pointer chain. The slide text reads: "Yet another problem is reliability. Recall that the files are linked together by pointers scattered all over the disk, and consider what would happen if a pointer were lost or damaged."

The video provides a comprehensive overview of Linked Allocation in file systems. It begins by defining the concept and illustrating it with a disk diagram and directory structure. The instructor then details the advantages, such as eliminating external fragmentation and allowing dynamic file growth. Finally, he addresses the disadvantages, including slow random access, pointer overhead, and reliability issues, while proposing potential solutions like doubly linked lists. This progression helps students understand the trade-offs involved in file system design.