File-System Implementation

References:

  1. Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 12

12.1 File-System Structure


Figure 12.1 - Layered file system.

12.2 File-System Implementation

12.2.1 Overview


Figure 12.2 - A typical file-control block.


Figure 12.3 - In-memory file-system structures. (a) File open. (b) File read.

12.2.2 Partitions and Mounting

12.2.3 Virtual File Systems


Figure 12.4 - Schematic view of a virtual file system.

12.3 Directory Implementation

12.3.1 Linear List

12.3.2 Hash Table

12.4 Allocation Methods

12.4.1 Contiguous Allocation


Figure 12.5 - Contiguous allocation of disk space.

12.4.2 Linked Allocation


Figure 12.6 - Linked allocation of disk space.


Figure 12.7 File-allocation table.

12.4.3 Indexed Allocation


Figure 12.8 - Indexed allocation of disk space.

12.4.4 Performance

12.5 Free-Space Management

12.5.1 Bit Vector

12.5.2 Linked List


Figure 12.10 - Linked free-space list on disk.

12.5.3 Grouping

12.5.4 Counting

12.5.5 Space Maps

12.6 Efficiency and Performance

12.6.1 Efficiency

12.6.2 Performance


Figure 12.11 - I/O without a unified buffer cache.


Figure 12.12 - I/O using a unified buffer cache.

12.7 Recovery

12.7.1 Consistency Checking

12.7.2 Log-Structured File Systems ( was 11.8 )

12.7.3 Other Solutions ( New )

12.7.4 Backup and Restore

12.8 NFS ( Optional )

12.8.1 Overview


Figure 12.13 - Three independent file systems.


Figure 12.14 - Mounting in NFS. (a) Mounts. (b) Cascading mounts.

12.8.2 The Mount Protocol

12.8.3 The NFS Protocol


Figure 12.15 - Schematic view of the NFS architecture.

12.8.4 Path-Name Translation

11.8.5 Remote Operations

12.9 Example: The WAFL File System ( Optional )


Figure 12.16 - The WAFL file layout.


Figure 12.17 - Snapshots in WAFL

12.10 Summary