ch04.3 - File System Internal
ch04.3 - File System Internal
Outline
File Systems
File-System Mounting
Partitions and Mounting
File Sharing
Virtual File Systems
Remote File Systems
Consistency Semantics
NFS
Operating System Concepts – 10th Edition 15.2 Silberschatz, Galvin and Gagne ©2018
1
Objectives
Delve into the details of file systems and their implementation
Explore booting and file sharing
Describe remote file systems, using NFS as an example
Operating System Concepts – 10th Edition 15.3 Silberschatz, Galvin and Gagne ©2018
File System
General-purpose computers can have multiple storage devices
• Devices can be sliced into partitions, which hold volumes
• Volumes can span multiple partitions
• Each volume usually formatted into a file system
• # of file systems varies, typically dozens available to choose from
Operating System Concepts – 10th Edition 15.4 Silberschatz, Galvin and Gagne ©2018
2
Example Mount Points and File Systems - Solaris
Operating System Concepts – 10th Edition 15.5 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 15.6 Silberschatz, Galvin and Gagne ©2018
3
File Systems and Mounting
(a)Unix-like file system
directory tree
(b) Unmounted file system
Operating System Concepts – 10th Edition 15.7 Silberschatz, Galvin and Gagne ©2018
File Sharing
Allows multiple users / systems access to the same files
Permissions / protection must be implemented and accurate
• Most systems provide concepts of owner, group member
• Must have a way to apply these between systems
Operating System Concepts – 10th Edition 15.8 Silberschatz, Galvin and Gagne ©2018
4
Virtual File Systems
Virtual File Systems (VFS) on Unix 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
• Separates file-system generic operations from implementation
details
• Implementation can be one of many file systems types, or
network file system
Implements vnodes which hold inodes or network file details
• Then dispatches operation to appropriate file system
implementation routines
Operating System Concepts – 10th Edition 15.9 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 15.10 Silberschatz, Galvin and Gagne ©2018
5
Virtual File System Implementation
For example, Linux has four object types:
• inode, file, superblock, dentry
VFS defines set of operations on the objects that must be implemented
• Every object has a pointer to a function table
Function table has addresses of routines to implement that
function on that object
For example:
• int open(. . .)—Open a file
• int close(. . .)—Close an already-open file
• ssize t read(. . .)—Read from a file
• ssize t write(. . .)—Write to a file
• int mmap(. . .)—Memory-map a file
Operating System Concepts – 10th Edition 15.11 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 15.12 Silberschatz, Galvin and Gagne ©2018
6
Client-Server Model
Operating System Concepts – 10th Edition 15.13 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 15.14 Silberschatz, Galvin and Gagne ©2018
7
Consistency Semantics
Important criteria for evaluating file sharing-file systems
Specify how multiple users are to access shared file simultaneously
• When modifications of data will be observed by other users
• Directly related to process synchronization algorithms, but atomicity
across a network has high overhead (see Andrew File System)
The series of accesses between file open and closed called file session
UNIX semantics
• Writes to open file immediately visible to others with file open
• One mode of sharing allows users to share pointer to current I/O
location in file
• Single physical image, accessed exclusively, contention causes
process delays
Session semantics (Andrew file system (OpenAFS))
• Writes to open file not visible during session, only at close
• Can be several copies, each changed independently
Operating System Concepts – 10th Edition 15.15 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 15.16 Silberschatz, Galvin and Gagne ©2018
8
NFS (Cont.)
Interconnected workstations viewed as a set of independent
machines with independent file systems, which allows sharing among
these file systems in a transparent manner
• A remote directory is mounted over a local file system directory
The mounted directory looks like an integral subtree of the
local file system, replacing the subtree descending from the
local directory
• Specification of the remote directory for the mount operation is
nontransparent; the host name of the remote directory has to be
provided
Files in the remote directory can then be accessed in a
transparent manner
• Subject to access-rights accreditation, potentially any file system
(or directory within a file system), can be mounted remotely on top
of any local directory
Operating System Concepts – 10th Edition 15.17 Silberschatz, Galvin and Gagne ©2018
NFS (Cont.)
Operating System Concepts – 10th Edition 15.18 Silberschatz, Galvin and Gagne ©2018
9
File Systems
Three Independent
File Systems
Operating System Concepts – 10th Edition 15.20 Silberschatz, Galvin and Gagne ©2018
10
NFS Protocol
Provides a set of remote procedure calls for remote file operations.
The procedures support the following 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 (NFS V4 is newer, less used – very different, stateful)
Modified data must be committed to the server’s disk before results
are returned to the client (lose advantages of caching)
The NFS protocol does not provide concurrency-control mechanisms
Operating System Concepts – 10th Edition 15.21 Silberschatz, Galvin and Gagne ©2018
UNIX file-system interface (based on the open, read, write, and close
calls, and file descriptors)
Virtual File System (VFS) layer – distinguishes local files from remote
ones, and local files are further distinguished according to their file-
system types
• The VFS activates file-system-specific operations to handle local
requests according to their file-system types
• Calls the NFS protocol procedures for remote requests
Operating System Concepts – 10th Edition 15.22 Silberschatz, Galvin and Gagne ©2018
11
Schematic View of NFS Architecture
Operating System Concepts – 10th Edition 15.23 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 15.24 Silberschatz, Galvin and Gagne ©2018
12
NFS Remote Operations
Operating System Concepts – 10th Edition 15.25 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
13