Chapter 11: File System Implementation: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts - 8 Edition

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 34

Chapter 11: File System

Implementation

Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
Chapter 11: File System Implementation

 File-System Structure
 File-System Implementation
 Directory Implementation
 Allocation Methods
 Free-Space Management
 Efficiency and Performance
 Recovery
 Log-Structured File Systems
 NFS
 Example: WAFL File System

Operating System Concepts – 8th Edition 11.2 Silberschatz, Galvin and Gagne ©2009
Objectives
 To describe the details of implementing local file systems and directory
structures
 To describe the implementation of remote file systems
 To discuss block allocation and free-block algorithms and trade-offs

Operating System Concepts – 8th Edition 11.3 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 11.4 Silberschatz, Galvin and Gagne ©2009
Layered File System

Operating System Concepts – 8th Edition 11.5 Silberschatz, Galvin and Gagne ©2009
A Typical File Control Block

Operating System Concepts – 8th Edition 11.6 Silberschatz, Galvin and Gagne ©2009
In-Memory File System Structures
 The following figure illustrates the necessary file system structures provided
by the operating systems.

 Figure 12-3(a) refers to opening a file.

 Figure 12-3(b) refers to reading a file.

Operating System Concepts – 8th Edition 11.7 Silberschatz, Galvin and Gagne ©2009
In-Memory File System Structures

Operating System Concepts – 8th Edition 11.8 Silberschatz, Galvin and Gagne ©2009
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.

Operating System Concepts – 8th Edition 11.9 Silberschatz, Galvin and Gagne ©2009
Schematic View of Virtual File System

Operating System Concepts – 8th Edition 11.10 Silberschatz, Galvin and Gagne ©2009
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
 fixed size

Operating System Concepts – 8th Edition 11.11 Silberschatz, Galvin and Gagne ©2009
Allocation Methods
 An allocation method refers to how disk blocks are allocated for files:

 Contiguous allocation

 Linked allocation

 Indexed allocation

Operating System Concepts – 8th Edition 11.12 Silberschatz, Galvin and Gagne ©2009
Contiguous Allocation
 Each file occupies a set of contiguous blocks on the disk

 Simple – only starting location (block #) and length (number of


blocks) are required

 Random access

 Wasteful of space (dynamic storage-allocation problem)

 Files cannot grow

Operating System Concepts – 8th Edition 11.13 Silberschatz, Galvin and Gagne ©2009
Contiguous Allocation
 Mapping from logical to physical

LA/512

Block to be accessed = ! + starting address


Displacement into block = R

Operating System Concepts – 8th Edition 11.14 Silberschatz, Galvin and Gagne ©2009
Contiguous Allocation of Disk Space

Operating System Concepts – 8th Edition 11.15 Silberschatz, Galvin and Gagne ©2009
Extent-Based Systems
 Many newer file systems (I.e. Veritas File System) use a modified
contiguous allocation scheme

 Extent-based file systems allocate disk blocks in extents

 An extent is a contiguous block of disks


 Extents are allocated for file allocation
 A file consists of one or more extents.

Operating System Concepts – 8th Edition 11.16 Silberschatz, Galvin and Gagne ©2009
Linked Allocation
 Each file is a linked list of disk blocks: blocks may be scattered anywhere on
the disk.

block = pointer

Operating System Concepts – 8th Edition 11.17 Silberschatz, Galvin and Gagne ©2009
Linked Allocation (Cont.)
 Simple – need only starting address
 Free-space management system – no waste of space
 No random access
 Mapping

Q
LA/511
R

Block to be accessed is the Qth block in the linked chain of


blocks representing the file.
Displacement into block = R + 1
File-allocation table (FAT) – disk-space allocation used by MS-DOS
and OS/2.

Operating System Concepts – 8th Edition 11.18 Silberschatz, Galvin and Gagne ©2009
Linked Allocation

Operating System Concepts – 8th Edition 11.19 Silberschatz, Galvin and Gagne ©2009
File-Allocation Table

Operating System Concepts – 8th Edition 11.20 Silberschatz, Galvin and Gagne ©2009
Indexed Allocation
 Brings all pointers together into the index block.
 Logical view.

index table

Operating System Concepts – 8th Edition 11.21 Silberschatz, Galvin and Gagne ©2009
Example of Indexed Allocation

Operating System Concepts – 8th Edition 11.22 Silberschatz, Galvin and Gagne ©2009
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.

Q
LA/512
R

Q = displacement into index table


R = displacement into block

Operating System Concepts – 8th Edition 11.23 Silberschatz, Galvin and Gagne ©2009
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).

Q1
LA / (512 x 511)
R1
Q1 = block of index table
R1 is used as follows:
Q2
R1 / 512
R2

Q2 = displacement into block of index table


R2 displacement into block of file:

Operating System Concepts – 8th Edition 11.24 Silberschatz, Galvin and Gagne ©2009
Indexed Allocation – Mapping (Cont.)
 Two-level index (maximum file size is 5123)

Q1
LA / (512 x 512)
R1

Q1 = displacement into outer-index


R1 is used as follows:
Q2
R1 / 512
R2

Q2 = displacement into block of index table


R2 displacement into block of file:

Operating System Concepts – 8th Edition 11.25 Silberschatz, Galvin and Gagne ©2009
Indexed Allocation – Mapping (Cont.)

outer-index

index table file

Operating System Concepts – 8th Edition 11.26 Silberschatz, Galvin and Gagne ©2009
Combined Scheme: UNIX (4K bytes per block)

Operating System Concepts – 8th Edition 11.27 Silberschatz, Galvin and Gagne ©2009
Free-Space Management
 Bit vector (n blocks)
0 1 2 n-1

0  block[i] free


bit[i] =
1  block[i] occupied

Block number calculation

(number of bits per word) *


(number of 0-value words) +
offset of first 1 bit

Operating System Concepts – 8th Edition 11.28 Silberschatz, Galvin and Gagne ©2009
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)
 Easy to get contiguous files
 Linked list (free list)
 Cannot get contiguous space easily
 No waste of space
 Grouping
 Counting

Operating System Concepts – 8th Edition 11.29 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 11.30 Silberschatz, Galvin and Gagne ©2009
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
 fixed size

Operating System Concepts – 8th Edition 11.31 Silberschatz, Galvin and Gagne ©2009
Linked Free Space List on Disk

Operating System Concepts – 8th Edition 11.32 Silberschatz, Galvin and Gagne ©2009
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
(floppy disk, magnetic tape, other magnetic disk, optical)

 Recover lost file or disk by restoring data from backup

Operating System Concepts – 8th Edition 11.33 Silberschatz, Galvin and Gagne ©2009
Log Structured File Systems
 Log structured (or journaling) 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

Operating System Concepts – 8th Edition 11.34 Silberschatz, Galvin and Gagne ©2009

You might also like