Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
File System Implementation
11.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
What to Learn?
File-System Structure
File-System Implementation
Directory Implementation
Allocation Methods of Disk Space
Free-Space Management
Contiguous or block-oriented
Recovery from failure
Remote file access: NFS
11.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Layered File System
11.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
File-System Implementation
Boot control block contains info needed by system to boot OS from that volume
Volume control block contains volume details
Directory structure organizes the files
Per-file File Control Block (FCB) contains many details about the file
11.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
A Typical File Control Block
11.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
In-Memory File System Structures
11.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Virtual File Systems
Virtual File Systems (VFS) provide an object-oriented way of implementing 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.
11.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Schematic View of Virtual File System
11.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Directory Implementation
Linear list of file names with pointer to the data blocks.
simple to program
time-consuming to execute
Hash Table – linear list with hash data structure.
decreases directory search time
collisions – situations where two file names hash to the same location
11.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Allocation of Disk Blocks
An allocation method refers to how disk blocks are allocated for files:
Contiguous allocation
Linked allocation
Indexed allocation
11.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Contiguous Allocation of Disk Space
11.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Contiguous Allocation
Each file occupies a set of contiguous blocks on the disk
Advantages:
Simple – only starting location (block #) and length (number of blocks) are required
Fast Random access
Disadvantages:
Not easy to grow files. Waste in space (e.g. external fragmentation)
11.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Linked Allocation
Each file is a linked list of disk blocks: blocks may be scattered anywhere on the disk.
pointerblock =
11.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
MS-DOS: File-Allocation Table
11.15 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Linked Allocation (Cont.)
Advantages
Simple – need only starting address
Free-space management system – no waste of space
Disadvantages:
No random access
Logical address mapping
Block to be accessed is the Qth block in the linked chain of blocks representing the file.Displacement into block = R + 1
LA/511
Q-th block
R - offset
11.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
One-level Indexed Allocation
Brings all pointers together into the index block
Logical view
index table
11.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Example of One-level Indexed Allocation
11.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
One-level Indexed Allocation (Cont.)
Advantages Support random access No external fragmentation.
Disadvantages: Space overhead: need 1 block for index table
Maximum file size? Assume each block is 4KB index block holds 1024 entries (4B/entry) 1024x block size = 4MB
11.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Two-level Indexed Allocation
outer-index
Indirect pointers index table:
Direct pointersFile data
Maximum size ?4GB
11.20 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Combined Scheme: UNIX UFS (4K bytes per block)
11.21 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Free-Space Management
Bit vector (n blocks)
…
0 1 2 n-1
bit[i] = 0 block[i] free
1 block[i] occupied
Block number calculation
(number of bits per word) *(number of 0-value words) +offset of first 1 bit
11.22 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Free-Space Management (Cont.)
Bit map requires extra space Example:
block size = 212 bytes
disk size = 230 bytes (1 gigabyte)
n = 230/212 = 218 bits (or 32K bytes) Linked list (free list)
Advantages:Do not need contiguous spaceNo waste of space
11.23 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Performance Optimization
Disk cache – separate section of main memory for frequently used blocks
Read-ahead (prefetching)– techniques to optimize sequential access
improve PC performance by dedicating section of memory as virtual disk, or RAM disk
11.25 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Recovery
Consistency checking – compares data in directory structure with data blocks on disk, and tries to fix inconsistencies
Use system programs to back up data from disk to another storage device
Recover lost file or disk by restoring data from backup
11.26 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Log Structured File Systems
Log structured file systems record each update to the file system as a transaction
All transactions are written to a log
A transaction is considered committed once it is written to the log
However, the file system may not yet be updated
The transactions in the log are asynchronously written to the file system
When the file system is modified, the transaction is removed from the log
If the file system crashes, all remaining transactions in the log must still be performed
11.27 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Sun Network File System (NFS) Transparent shared file access among independent
machines and file systems A remote directory is mounted over a local file
system directory The mounted directory looks like an integral
subtree of the local file system
11.28 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Schematic View of NFS Architecture
11.29 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
NFS Protocol Provides a set of remote procedure calls (RPC) for remote file
operations: searching for a file within a directory reading a set of directory entries manipulating links and directories accessing file attributes reading and writing files
NFS servers are stateless; each request has to provide a full set of arguments
Modified data must be committed to the server’s disk before results are returned to the client
Support data exchange format conversion using an External Data Representation (XDR) protocol
Top Related