File System Implementation

28
Silberschatz, Galvin and Gagne ©2009 perating System Concepts – 8 th Edition File System Implementation

description

File System Implementation. 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. Layered File System. - PowerPoint PPT Presentation

Transcript of File System Implementation

Page 1: File System Implementation

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

File System Implementation

Page 2: 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

Page 3: File System Implementation

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

Layered File System

Page 4: File System Implementation

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

Page 5: File System Implementation

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

A Typical File Control Block

Page 6: File System Implementation

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

In-Memory File System Structures

Page 7: File System Implementation

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.

Page 8: File System Implementation

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

Schematic View of Virtual File System

Page 9: File System Implementation

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

Page 10: File System Implementation

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

Page 11: File System Implementation

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

Contiguous Allocation of Disk Space

Page 12: File System Implementation

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)

Page 13: File System Implementation

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 =

Page 14: File System Implementation

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

MS-DOS: File-Allocation Table

Page 15: File System Implementation

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

Page 16: File System Implementation

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

Page 17: File System Implementation

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

Example of One-level Indexed Allocation

Page 18: File System Implementation

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

Page 19: File System Implementation

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

Page 20: File System Implementation

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

Combined Scheme: UNIX UFS (4K bytes per block)

Page 21: File System Implementation

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

Page 22: File System Implementation

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

Page 23: File System Implementation

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

Page 24: File System Implementation

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

Page 25: File System Implementation

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

Page 26: File System Implementation

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

Page 27: File System Implementation

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

Schematic View of NFS Architecture

Page 28: File System Implementation

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