File System
File System
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 10: File System
■ File Concept
■ Access Methods
■ Disk and Directory Structure
■ File-System Mounting
■ File Sharing
■ Protection
Operating System Concepts – 9th Edition 11.2 Silberschatz, Galvin and Gagne ©2013
Objectives
■ To explain the function of file systems
Operating System Concepts – 9th Edition 11.3 Silberschatz, Galvin and Gagne ©2013
File Concept
■ Contiguous logical address space
■ Types:
● Data
4 numeric
4 character
4 binary
● Program
Operating System Concepts – 9th Edition 11.4 Silberschatz, Galvin and Gagne ©2013
File Attributes
■ Name – only information kept in human-readable form
■ Identifier – unique tag (number) identifies file within file system
■ Type – needed for systems that support different types
■ Location – pointer to file location on device
■ Size – current file size
■ Protection – controls who can do reading, writing, executing
■ Time, date, and user identification – data for protection, security, and
usage monitoring
■ Information about files are kept in the directory structure, which is
maintained on the disk
■ Many variations, including extended file attributes such as file checksum
■ Information kept in the directory structure
Operating System Concepts – 9th Edition 11.5 Silberschatz, Galvin and Gagne ©2013
File Operations
■ File is an abstract data type
■ Create
■ Write – at write pointer location
■ Read – at read pointer location
■ Reposition within file - seek
■ Delete
■ Open(Fi) – search the directory structure on disk for entry Fi, and move
the content of entry to memory
■ Close (Fi) – move the content of entry Fi in memory to directory
structure on disk
Operating System Concepts – 9th Edition 11.6 Silberschatz, Galvin and Gagne ©2013
Open Files
■ Several pieces of data are needed to manage open files:
● Open-file table: tracks open files
● File pointer: pointer to last read/write location, per process that
has the file open
● File-open count: counter of number of times a file is open – to
allow removal of data from open-file table when last processes
closes it
● Disk location of the file: cache of data access information
● Access rights: per-process access mode information
Operating System Concepts – 9th Edition 11.7 Silberschatz, Galvin and Gagne ©2013
Open File Locking
■ Provided by some operating systems and file systems
● Similar to reader-writer locks
● Shared lock similar to reader lock – several processes can acquire
concurrently
● Exclusive lock similar to writer lock
■ Mandatory or advisory:
● Mandatory – access is denied depending on locks held and
requested
● Advisory – processes can find status of locks and decide what to
do
Operating System Concepts – 9th Edition 11.8 Silberschatz, Galvin and Gagne ©2013
File Locking Example – Java API
import java.io.*;
import java.nio.channels.*;
public class LockingExample {
public static final boolean EXCLUSIVE = false;
public static final boolean SHARED = true;
public static void main(String arsg[]) throws IOException {
FileLock sharedLock = null;
FileLock exclusiveLock = null;
try {
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
// get the channel for the file
FileChannel ch = raf.getChannel();
// this locks the first half of the file - exclusive
exclusiveLock = ch.lock(0, raf.length()/2, EXCLUSIVE);
/** Now modify the data . . . */
// release the lock
exclusiveLock.release();
Operating System Concepts – 9th Edition 11.9 Silberschatz, Galvin and Gagne ©2013
File Locking Example –
Java API (Cont.)
// this locks the second half of the file - shared
sharedLock = ch.lock(raf.length()/2+1, raf.length(),
SHARED);
/** Now read the data . . . */
// release the lock
sharedLock.release();
} catch (java.io.IOException ioe) {
System.err.println(ioe);
}finally {
if (exclusiveLock != null)
exclusiveLock.release();
if (sharedLock != null)
sharedLock.release();
}
}
}
Operating System Concepts – 9th Edition 11.10 Silberschatz, Galvin and Gagne ©2013
File Types – Name, Extension
Operating System Concepts – 9th Edition 11.11 Silberschatz, Galvin and Gagne ©2013
File Structure
■ None - sequence of words, bytes
■ Simple record structure
● Lines
● Fixed length
● Variable length
■ Complex Structures
● Formatted document
Relocatable load file
●
■ Can simulate last two with first method by inserting appropriate control
characters
■ Who decides:
● Operating system
● Program
Operating System Concepts – 9th Edition 11.12 Silberschatz, Galvin and Gagne ©2013
Access Methods
■ Sequential Access
read next
write next
reset
no read after last write
(rewrite)
■ Direct Access – file is fixed length logical records
read n
write n
position to n
read next
write next
rewrite n
n = relative block number
Operating System Concepts – 9th Edition 11.13 Silberschatz, Galvin and Gagne ©2013
Directory and Disk Structure
■ Disk can be subdivided into partitions
■ Partitions also known as minidisks, slices
■ Entity containing file system known as a volume
■ Each volume containing file system also tracks that file system s info
in device directory or volume table of contents
■ As well as general-purpose file systems there are many special-
purpose file systems, frequently all within the same operating system
or computer
Operating System Concepts – 9th Edition 11.14 Silberschatz, Galvin and Gagne ©2013
A Typical File-system Organization
Operating System Concepts – 9th Edition 11.15 Silberschatz, Galvin and Gagne ©2013
Directory Overview
Operating System Concepts – 9th Edition 11.16 Silberschatz, Galvin and Gagne ©2013
Directory Structure
■ A collection of nodes containing information about all files
Directory
Files
F1 F2 F4
F3
Fn
Operating System Concepts – 9th Edition 11.17 Silberschatz, Galvin and Gagne ©2013
Organize the Directory (Logically) to Obtain
Operating System Concepts – 9th Edition 11.18 Silberschatz, Galvin and Gagne ©2013
Directory Overview
Operating System Concepts – 9th Edition 11.19 Silberschatz, Galvin and Gagne ©2013
Single-Level Directory
■ The simples directory structure where all files are contained in
the same directory
■ A single directory for all users
Naming problem
Grouping problem
Operating System Concepts – 9th Edition 11.20 Silberschatz, Galvin and Gagne ©2013
Two-Level Directory
■ Separate directory for each user
■ Path name
■ Can have the same file name for different user
■ Efficient searching
■ No grouping capability
Operating System Concepts – 9th Edition 11.21 Silberschatz, Galvin and Gagne ©2013
Tree-Structured Directories
Operating System Concepts – 9th Edition 11.22 Silberschatz, Galvin and Gagne ©2013
Tree-Structured Directories (Cont.)
■ Efficient searching
■ Grouping Capability
Operating System Concepts – 9th Edition 11.23 Silberschatz, Galvin and Gagne ©2013
Tree-Structured Directories (Cont)
Operating System Concepts – 9th Edition 11.24 Silberschatz, Galvin and Gagne ©2013
Acyclic-Graph Directories
■ Have shared subdirectories and files
Operating System Concepts – 9th Edition 11.25 Silberschatz, Galvin and Gagne ©2013
General Graph Directory
Operating System Concepts – 9th Edition 11.26 Silberschatz, Galvin and Gagne ©2013
General Graph Directory (Cont.)
■ How do we guarantee no cycles?
● Allow only links to file not subdirectories
● Garbage collection
● Every time a new link is added use a cycle detection algorithm to
determine whether it is OK
Operating System Concepts – 9th Edition 11.27 Silberschatz, Galvin and Gagne ©2013
File Sharing
■ Sharing of files on multi-user systems is desirable
■ If multi-user system
● User IDs identify users, allowing permissions and protections to be per-
user
Group IDs allow users to be in groups, permitting group access rights
● Owner of a file / directory
● Group of a file / directory
Operating System Concepts – 9th Edition 11.28 Silberschatz, Galvin and Gagne ©2013
File Sharing – Remote File Systems
■ Uses networking to allow file system access between systems
● Manually via programs like FTP
● Automatically, seamlessly using distributed file systems
● Semi automatically via the world wide web
■ Client-server model allows clients to mount remote file systems from
servers
● Server can serve multiple clients
● Client and user-on-client identification is insecure or complicated
● NFS is standard UNIX client-server file sharing protocol
● CIFS is standard Windows protocol
● Standard operating system file calls are translated into remote calls
■ Distributed Information Systems (distributed naming services) such
as LDAP, DNS, NIS, Active Directory implement unified access to
information needed for remote computing
Operating System Concepts – 9th Edition 11.29 Silberschatz, Galvin and Gagne ©2013
File Sharing – Failure Modes
■ All file systems have failure modes
● For example corruption of directory structures or other non-user
data, called metadata
■ Remote file systems add new failure modes, due to network failure,
server failure
Operating System Concepts – 9th Edition 11.30 Silberschatz, Galvin and Gagne ©2013
File Sharing – Consistency Semantics
Operating System Concepts – 9th Edition 11.31 Silberschatz, Galvin and Gagne ©2013
Protection
■ File owner/creator should be able to control:
● what can be done
● by whom
■ Types of access
● Read
● Write
● Execute
● Append
● Delete
● List
Operating System Concepts – 9th Edition 11.32 Silberschatz, Galvin and Gagne ©2013
Access Lists and Groups
■ Mode of access: read, write, execute
■ Three classes of users on Unix / Linux
RWX
a) owner access 7 Þ 111
RWX
b) group access 6 Þ 110
RWX
c) public access 1 Þ 001
■ Ask manager to create a group (unique name), say G, and add
some users to the group.
■ For a particular file (say game) or subdirectory, define an
appropriate access.
Operating System Concepts – 9th Edition 11.33 Silberschatz, Galvin and Gagne ©2013
A Sample UNIX Directory Listing
Operating System Concepts – 9th Edition 11.34 Silberschatz, Galvin and Gagne ©2013