Chapter 11: File System Implementation

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

Chapter 11: File System

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

■ 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 – 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)

■ I/O controls consists of device drivers and interrupt handlers


■ Basic file system issues generic commands to the appropriate
device driver to read /write physical blocks on the disk.
■ File organization module translates logical block addresses to
physical block addresses for the basic file system to transfer
■ Logical file system manages metadata information.

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

■ 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 – 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

■ How does an operating system allow multiple types fo file systems


to ve integrated into thet directory structure?

■ 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 – 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

■ 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 – 7th Edition, Jan 1, 2005 11.14 Silberschatz, Galvin and Gagne ©2005
Allocation Methods

■ An allocation method refers to how disk blocks are allocated for


files:

■ Contiguous allocation

■ Linked allocation

■ Indexed allocation

Operating System Concepts – 7th Edition, Jan 1, 2005 11.15 Silberschatz, Galvin and Gagne ©2005
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 – 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

■ 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 – 7th Edition, Jan 1, 2005 11.18 Silberschatz, Galvin and Gagne ©2005
Linked Allocation

■ Each file is a linked list of disk blocks: blocks may be scattered


anywhere on the disk.

block = pointer

Operating System Concepts – 7th Edition, Jan 1, 2005 11.19 Silberschatz, Galvin and Gagne ©2005
Linked Allocation (Cont.)

■ Simple – need only starting address


■ Free-space management system – no waste of space
■ No random access
■ Mapping

File-allocation table (FAT) – disk-space allocation used by MS-DOS


and OS/2.

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

■ Brings all pointers together into the index block.


■ Logical view.

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

index table file

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

■ 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 – 7th Edition, Jan 1, 2005 11.29 Silberschatz, Galvin and Gagne ©2005
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 – 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

■ 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 – 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

■ Efficiency dependent on:


● disk allocation and directory algorithms
● types of data kept in file’s directory entry

■ 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

You might also like