Chapter 11: File System Implementation
Chapter 11: File System Implementation
Chapter 11: File System Implementation
Implementation
Chapter 11: File System Implementation
■ File-System Structure
■ File-System Implementation
■ Directory Implementation
■ Allocation Methods
■ Free-Space Management
Operating System Concepts – 7th Edition, Jan 1, 2005 11.2 Silberschatz, Galvin and Gagne ©2005
Objectives
Operating System Concepts – 7th Edition, Jan 1, 2005 11.3 Silberschatz, Galvin and Gagne ©2005
File-System Structure
■ File structure
● Logical storage unit
● Collection of related information
■ File system resides on secondary storage (disks)
■ File system organized into layers
■ File control block – storage structure consisting of information
about a file
Operating System Concepts – 7th Edition, Jan 1, 2005 11.4 Silberschatz, Galvin and Gagne ©2005
Layered File System
Operating System Concepts – 7th Edition, Jan 1, 2005 11.5 Silberschatz, Galvin and Gagne ©2005
Layered File System (2)
Operating System Concepts – 7th Edition, Jan 1, 2005 11.6 Silberschatz, Galvin and Gagne ©2005
File system implementation
■ Structures
● Boot control block (per volume): info needed at boot time
● Volume control block (per volume): contain volume/partition
details eg no of blocks in the partition, size of blocks, free block
count,
● Directory structure per file system used to organize files,eg.
inodes (UFS), master file table (NTFS)
● Per-file File Control Block: contains information about the file
eg. permission, owner, size, location
■ In-memory information
● In-memory mount table
● In-memory directory structure cache
● System-wide open-file table
● Per-process open-file table
Operating System Concepts – 7th Edition, Jan 1, 2005 11.7 Silberschatz, Galvin and Gagne ©2005
A Typical File Control Block
Operating System Concepts – 7th Edition, Jan 1, 2005 11.8 Silberschatz, Galvin and Gagne ©2005
In-Memory File System Structures
Operating System Concepts – 7th Edition, Jan 1, 2005 11.9 Silberschatz, Galvin and Gagne ©2005
In-Memory File System Structures
Operating System Concepts – 7th Edition, Jan 1, 2005 11.10 Silberschatz, Galvin and Gagne ©2005
Virtual File Systems
■ VFS allows the same system call interface (the API) to be used for
different types of file systems.
■ The API is to the VFS interface, rather than any specific type of file
system.
Operating System Concepts – 7th Edition, Jan 1, 2005 11.11 Silberschatz, Galvin and Gagne ©2005
Schematic View of Virtual File System
Operating System Concepts – 7th Edition, Jan 1, 2005 11.12 Silberschatz, Galvin and Gagne ©2005
■ File system interface: open(), read(0, write(0
■ VFS interface
● Separates file-system-generic operation from their
implementation
● Provides a mechanism for uniquely representing a file
throughout the network
■ Local file system
Operating System Concepts – 7th Edition, Jan 1, 2005 11.13 Silberschatz, Galvin and Gagne ©2005
Directory Implementation
Operating System Concepts – 7th Edition, Jan 1, 2005 11.14 Silberschatz, Galvin and Gagne ©2005
Allocation Methods
■ Contiguous allocation
■ Linked allocation
■ Indexed allocation
Operating System Concepts – 7th Edition, Jan 1, 2005 11.15 Silberschatz, Galvin and Gagne ©2005
Contiguous Allocation
■ Random access
Operating System Concepts – 7th Edition, Jan 1, 2005 11.16 Silberschatz, Galvin and Gagne ©2005
Contiguous Allocation of Disk Space
Operating System Concepts – 7th Edition, Jan 1, 2005 11.17 Silberschatz, Galvin and Gagne ©2005
Extent-Based Systems
■ Many newer file systems (I.e. Veritas File System) use a modified
contiguous allocation scheme
Operating System Concepts – 7th Edition, Jan 1, 2005 11.18 Silberschatz, Galvin and Gagne ©2005
Linked Allocation
block = pointer
Operating System Concepts – 7th Edition, Jan 1, 2005 11.19 Silberschatz, Galvin and Gagne ©2005
Linked Allocation (Cont.)
Operating System Concepts – 7th Edition, Jan 1, 2005 11.20 Silberschatz, Galvin and Gagne ©2005
Linked Allocation
Operating System Concepts – 7th Edition, Jan 1, 2005 11.21 Silberschatz, Galvin and Gagne ©2005
File-Allocation Table
Operating System Concepts – 7th Edition, Jan 1, 2005 11.22 Silberschatz, Galvin and Gagne ©2005
Indexed Allocation
index table
Operating System Concepts – 7th Edition, Jan 1, 2005 11.23 Silberschatz, Galvin and Gagne ©2005
Example of Indexed Allocation
Operating System Concepts – 7th Edition, Jan 1, 2005 11.24 Silberschatz, Galvin and Gagne ©2005
Indexed Allocation (Cont.)
■ Need index table
■ Random access
■ Dynamic access without external fragmentation, but have
overhead of index block.
■ Mapping from logical to physical in a file of maximum size of
256K words and block size of 512 words. We need only 1
block for index table.
Operating System Concepts – 7th Edition, Jan 1, 2005 11.25 Silberschatz, Galvin and Gagne ©2005
Indexed Allocation – Mapping (Cont.)
■ Mapping from logical to physical in a file of unbounded
length (block size of 512 words).
■ Linked scheme – Link blocks of index table (no limit on size).
Operating System Concepts – 7th Edition, Jan 1, 2005 11.26 Silberschatz, Galvin and Gagne ©2005
Indexed Allocation – Mapping (Cont.)
outer-index
Operating System Concepts – 7th Edition, Jan 1, 2005 11.27 Silberschatz, Galvin and Gagne ©2005
Combined Scheme: UNIX (4K bytes per block)
Operating System Concepts – 7th Edition, Jan 1, 2005 11.28 Silberschatz, Galvin and Gagne ©2005
Free-Space Management
0 ⇒ block[i] free
bit[i] =
1 ⇒ block[i] occupied
Operating System Concepts – 7th Edition, Jan 1, 2005 11.29 Silberschatz, Galvin and Gagne ©2005
Free-Space Management (Cont.)
Operating System Concepts – 7th Edition, Jan 1, 2005 11.30 Silberschatz, Galvin and Gagne ©2005
Free-Space Management (Cont.)
■ Need to protect:
● Pointer to free list
● Bit map
Must be kept on disk
Copy in memory and disk may differ
Cannot allow for block[i] to have a situation where
bit[i] = 1 in memory and bit[i] = 0 on disk
● Solution:
Set bit[i] = 1 in disk
Allocate block[i]
Set bit[i] = 1 in memory
Operating System Concepts – 7th Edition, Jan 1, 2005 11.31 Silberschatz, Galvin and Gagne ©2005
Directory Implementation
Operating System Concepts – 7th Edition, Jan 1, 2005 11.32 Silberschatz, Galvin and Gagne ©2005
Linked Free Space List on Disk
Operating System Concepts – 7th Edition, Jan 1, 2005 11.33 Silberschatz, Galvin and Gagne ©2005
Efficiency and Performance
■ Performance
● disk cache – separate section of main memory for frequently
used blocks
● free-behind and read-ahead – techniques to optimize
sequential access
● improve PC performance by dedicating section of memory as
virtual disk, or RAM disk
Operating System Concepts – 7th Edition, Jan 1, 2005 11.34 Silberschatz, Galvin and Gagne ©2005
End of Chapter 11