File-System Interface: Silberschatz, Galvin and Gagne ©2018 Operating System Concepts - 10 Edition

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 46

Chapter 13:

File-System Interface

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Outline
 File Concept
 Access Methods
 Disk and Directory Structure
 File-System Mounting
 File Sharing
 Protection

Operating System Concepts – 10th Edition 13.2 Silberschatz, Galvin and Gagne ©2018
Objectives
 To explain the function of file systems
 To describe the interfaces to file systems
 To discuss file-system design tradeoffs, including access methods, file
sharing, file locking, and directory structures
 To explore file-system protection

Operating System Concepts – 10th Edition 13.3 Silberschatz, Galvin and Gagne ©2018
File Concept

 Contiguous logical address space


 Types:
• Data
 Numeric
 Character
 Binary
• Program
 Contents defined by file’s creator
• Many types
 Consider text file, source file, executable file

Operating System Concepts – 10th Edition 13.4 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.5 Silberschatz, Galvin and Gagne ©2018
File info Window on Mac OS X

Operating System Concepts – 10th Edition 13.6 Silberschatz, Galvin and Gagne ©2018
Directory Structure
 A collection of nodes containing information about all files

 Both the directory structure and the files reside on disk

Operating System Concepts – 10th Edition 13.7 Silberschatz, Galvin and Gagne ©2018
File Operations
 Create
 Write – at write pointer location
 Read – at read pointer location
 Reposition within file - seek
 Delete
 Truncate
 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 – 10th Edition 13.8 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.9 Silberschatz, Galvin and Gagne ©2018
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
 Mediates access to a file
 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 – 10th Edition 13.10 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.11 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.12 Silberschatz, Galvin and Gagne ©2018
File Types – Name, Extension

Operating System Concepts – 10th Edition 13.13 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.14 Silberschatz, Galvin and Gagne ©2018
Access Methods

 Sequential Access
 Direct Access

Operating System Concepts – 10th Edition 13.15 Silberschatz, Galvin and Gagne ©2018
Sequential Access

 Operations
• read next
• write next
• Reset
• no read after last write (rewrite)

 Figure

Operating System Concepts – 10th Edition 13.16 Silberschatz, Galvin and Gagne ©2018
Direct Access
 A file is fixed length logical records
 Operations
• read n
• write n
• position to n
read next
 write next
 rewrite n

n = relative block number

 Relative block numbers allow OS to decide where


file should be placed

Operating System Concepts – 10th Edition 13.17 Silberschatz, Galvin and Gagne ©2018
Simulation of Sequential Access on Direct-access File

Operating System Concepts – 10th Edition 13.18 Silberschatz, Galvin and Gagne ©2018
Other Access Methods

 Can be built on top of base methods


 General involve creation of an index for the file
 Keep index in memory for fast determination of location
of data to be operated on (consider Universal Produce
Code (UPC code) plus record of data about that item)
 If too large, index (in memory) of the index (on disk)
 IBM indexed sequential-access method (ISAM)
• Small master index, points to disk blocks of
secondary index
• File kept sorted on a defined key
• All done by the OS
 VMS operating system provides index and relative files
as another example (see next slide)

Operating System Concepts – 10th Edition 13.19 Silberschatz, Galvin and Gagne ©2018
Example of Index and Relative Files

Operating System Concepts – 10th Edition 13.20 Silberschatz, Galvin and Gagne ©2018
Disk Structure
 Disk can be subdivided into partitions
 Disks or partitions can be RAID protected against failure
 Disk or partition can be used raw – without a file system, or
formatted with a file system
 Partitions also known as minidisks, slices
 Entity containing file system is known as a volume
 Each volume containing a file system also tracks that file
system’s info in device directory or volume table of contents
 In addition to general-purpose file systems there are many
special-purpose file systems, frequently all within the same
operating system or computer

Operating System Concepts – 10th Edition 13.21 Silberschatz, Galvin and Gagne ©2018
A Typical File-system Organization

Operating System Concepts – 10th Edition 13.22 Silberschatz, Galvin and Gagne ©2018
Types of File Systems
 We mostly talk of general-purpose file systems
 But systems frequently have may file systems, some general- and
some special- purpose
 Consider Solaris has
• tmpfs – memory-based volatile FS for fast, temporary I/O
• objfs – interface into kernel memory to get kernel symbols for
debugging
• ctfs – contract file system for managing daemons
• lofs – loopback file system allows one FS to be accessed in place
of another
• procfs – kernel interface to process structures
• ufs, zfs – general purpose file systems

Operating System Concepts – 10th Edition 13.23 Silberschatz, Galvin and Gagne ©2018
Directory Structure
 A collection of nodes containing information about all files

 Both the directory structure and the files reside on disk

Operating System Concepts – 10th Edition 13.24 Silberschatz, Galvin and Gagne ©2018
Operations Performed on Directory

 Search for a file

 Create a file

 Delete a file

 List a directory

 Rename a file

 Traverse the file system

Operating System Concepts – 10th Edition 13.25 Silberschatz, Galvin and Gagne ©2018
Directory Organization
The directory is organized logically to obtain

 Efficiency – locating a file quickly


 Naming – convenient to users
• Two users can have same name for different files
• The same file can have several different names
 Grouping – logical grouping of files by properties, (e.g., all
Java programs, all games, …)

Operating System Concepts – 10th Edition 13.26 Silberschatz, Galvin and Gagne ©2018
Single-Level Directory

 A single directory for all users

 Naming problem
 Grouping problem

Operating System Concepts – 10th Edition 13.27 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.28 Silberschatz, Galvin and Gagne ©2018
Tree-Structured Directories

Operating System Concepts – 10th Edition 13.29 Silberschatz, Galvin and Gagne ©2018
Current Directory

 Current directory (working directory)


• cd /spell/mail/prog
• type list

Operating System Concepts – 10th Edition 13.30 Silberschatz, Galvin and Gagne ©2018
Current Directory (Cont.)
 Creating and deleting a file is done in current directory
 Example of creating a new file
• If in current directory is /mail
• The command
mkdir <dir-name>
• Results in:

• Deleting “mail”  deleting the entire subtree rooted by “mail”

Operating System Concepts – 10th Edition 13.31 Silberschatz, Galvin and Gagne ©2018
Acyclic-Graph Directories
 Have shared subdirectories and files

Operating System Concepts – 10th Edition 13.32 Silberschatz, Galvin and Gagne ©2018
Acyclic-Graph Directories (Cont.)
 Two different names (aliasing)
 If dict deletes w/list  dangling pointer
Solutions:
• Backpointers, so we can delete all pointers.
 Variable size records a problem
• Backpointers using a daisy chain organization
• Entry-hold-count solution
 New directory entry type
• Link – another name (pointer) to an existing file
• Resolve the link – follow pointer to locate the file

Operating System Concepts – 10th Edition 13.33 Silberschatz, Galvin and Gagne ©2018
General Graph Directory

Operating System Concepts – 10th Edition 13.34 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.35 Silberschatz, Galvin and Gagne ©2018
File System Mounting
 A file system must be mounted before it can be accessed
 Fig (a) is a mounted file system that can be accessed by
users.
 Fig. (b) is an unmounted files system that cannot be
accessed by users

Operating System Concepts – 10th Edition 13.36 Silberschatz, Galvin and Gagne ©2018
Mount Point
 Consider the file system of previous slide:

 Mounting (b) over “users” results in

Operating System Concepts – 10th Edition 13.37 Silberschatz, Galvin and Gagne ©2018
File Sharing
 Sharing of files on multi-user systems is desirable
 Sharing may be done through a protection scheme
 On distributed systems, files may be shared across a network
 Network File System (NFS) is a common distributed file-sharing
method
 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 – 10th Edition 13.38 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.39 Silberschatz, Galvin and Gagne ©2018
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
 Recovery from failure can involve state information about status of
each remote request
 Stateless protocols such as NFS v3 include all information in each
request, allowing easy recovery but less security

Operating System Concepts – 10th Edition 13.40 Silberschatz, Galvin and Gagne ©2018
File Sharing – Consistency Semantics
 Specify how multiple users are to access a shared file simultaneously
• Similar to Ch 5 process synchronization algorithms
 Tend to be less complex due to disk I/O and network latency
(for remote file systems
• Andrew File System (AFS) implemented complex remote file
sharing semantics
• Unix file system (UFS) implements:
 Writes to an open file visible immediately to other users of the
same open file
 Sharing file pointer to allow multiple users to read and write
concurrently
• AFS has session semantics
 Writes only visible to sessions starting after the file is closed

Operating System Concepts – 10th Edition 13.41 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.42 Silberschatz, Galvin and Gagne ©2018
Access Lists and Groups in Unix
 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 file (say game) or subdirectory, define an appropriate access.

Attach a group to a file


chgrp G game

Operating System Concepts – 10th Edition 13.43 Silberschatz, Galvin and Gagne ©2018
Windows 7 Access-Control List Management

Operating System Concepts – 10th Edition 13.44 Silberschatz, Galvin and Gagne ©2018
A Sample UNIX Directory Listing

Operating System Concepts – 10th Edition 13.45 Silberschatz, Galvin and Gagne ©2018
End of Chapter 13

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018

You might also like