Transcript ch10

Chapter 10: File-System Interface
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Silberschatz, Galvin and Gagne ©2007
Chapter 10: File-System Interface






File Concept
Access Methods
Directory Structure
File-System Mounting
File Sharing
Protection
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.2
Silberschatz, Galvin and Gagne ©2007
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 with Java – 7th Edition, Nov 15, 2006
10.3
Silberschatz, Galvin and Gagne ©2007
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
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.4
Silberschatz, Galvin and Gagne ©2007
File Operations








Create
Write
Read
Reposition within file
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 with Java – 7th Edition, Nov 15, 2006
10.5
Silberschatz, Galvin and Gagne ©2007
Open Files

Several pieces of data are needed to manage
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 with Java – 7th Edition, Nov 15, 2006
10.6
Silberschatz, Galvin and Gagne ©2007
File Types – Name, Extension
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.7
Silberschatz, Galvin and Gagne ©2007
Access Methods

Sequential Access
read next
write next
reset
no read after last write
(rewrite)

Direct Access
read n
write n
position to n
read next
write next
rewrite n
n = relative block number
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.8
Silberschatz, Galvin and Gagne ©2007
Sequential-access File
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.9
Silberschatz, Galvin and Gagne ©2007
Simulation of Sequential Access on a Direct-access File
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.10
Silberschatz, Galvin and Gagne ©2007
Example of Index and Relative Files
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.11
Silberschatz, Galvin and Gagne ©2007
A Typical File-system Organization
 Could use entire disk for FS, but
 system could have multiple FS types (e.g., swap)
 Disk divided into miniature disks called partitions or slices
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.12
Silberschatz, Galvin and Gagne ©2007
Directory Structure

A collection of nodes containing information about all files
Directory
Files
F1
F2
F3
F4
Fn
Both the directory structure and the files reside on disk
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.13
Silberschatz, Galvin and Gagne ©2007
Operations Performed on Directory






List directory contents
Search for a file
Create a file
Delete a file
Rename a file
Traverse the file system
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.14
Silberschatz, Galvin and Gagne ©2007
Organize the Directory (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 with Java – 7th Edition, Nov 15, 2006
10.15
Silberschatz, Galvin and Gagne ©2007
Single-Level Directory

A single directory for all users
 Called the root directory
 Pros: Simple, easy to quickly locate files
 Cons: inconvenient naming (uniqueness), no grouping
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.16
Silberschatz, Galvin and Gagne ©2007
Two-Level Directory

Separate directory for each user
 Introduces the notion of a path name
 Can have the same file name for different user
 Efficient searching
 No grouping capability
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.17
Silberschatz, Galvin and Gagne ©2007
Tree-Structured Directories
 Directories can now contain files and subdirectories
 Efficient searching, allows grouping
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.18
Silberschatz, Galvin and Gagne ©2007
Path Names



To access a file, the user should either:
 Go to the directory where file resides, or
 Specify the path where the file is
Path names are either absolute or relative
 Absolute: path of file from the root directory
 Relative: path from the current working directory
Most OSes have two special entries in each directory:
 “.” for current directory and “..” for parent
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.19
Silberschatz, Galvin and Gagne ©2007
Acyclic-Graph Directories

Allow sharing of subdirectories and files
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.20
Silberschatz, Galvin and Gagne ©2007
Acyclic-Graph Directories (Cont.)



Two different names (aliasing)
If dict deletes list  dangling pointer
Solutions:
 Backpointers, so we can delete all pointers
Variable size records a problem
 Backpointers using a daisy chain organization
 Reference count for each file
New directory entry type
 Link – another name (pointer) to an existing file
 Resolve the link – follow pointer to locate the file
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.21
Silberschatz, Galvin and Gagne ©2007
General Graph Directory
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.22
Silberschatz, Galvin and Gagne ©2007
General Graph Directory (Cont.)

How do we guarantee no cycles?
 Allow only links to files 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 with Java – 7th Edition, Nov 15, 2006
10.23
Silberschatz, Galvin and Gagne ©2007
File System Mounting

Mount allows two FSes to be merged into one
 For example you insert your floppy into the root FS:
mount(“/dev/fd0”, “/mnt”, 0)
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.24
Silberschatz, Galvin and Gagne ©2007
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 with Java – 7th Edition, Nov 15, 2006
10.25
Silberschatz, Galvin and Gagne ©2007
Categories of Users


Individual user
 Log in establishes a user-id
 Might be just local on the computer or could be
through interaction with a network service
Groups to which the user belongs
 For example, “nahum” is in “w4118”
 Again could just be automatic or could involve talking
to a service that might assign, say, a temporary
cryptographic key
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.26
Silberschatz, Galvin and Gagne ©2007
UNIX Access Rights




Mode of access: read, write, execute
Three classes of users
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.
owner group
Attach a group to a file: chgrp G game
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.27
public
chmod 761 game
Silberschatz, Galvin and Gagne ©2007
Issues with UNIX Access Rights


Just a single owner, a single group and the public
 Pro: Compact enough to fit in just a few bytes
 Con: Not very expressive
Access Control List: This is a per-file list that tells who
can access that file
 Pro: Highly expressive
 Con: Harder to represent in a compact way
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.28
Silberschatz, Galvin and Gagne ©2007
Windows XP Access-control List Management
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.29
Silberschatz, Galvin and Gagne ©2007
File Sharing
Sharing of files on multi-user systems is
desirable
 Sharing may be done through the
protection scheme
 On distributed systems, files may be
shared across a network
 Use a distributed file system such as
Network File System (NFS)
 Use distributed naming systems such as
NIS, LDAP, Active Directory for networkwide user information

Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.30
Silberschatz, Galvin and Gagne ©2007
Remote File System Mounting



Same idea, but file system is actually on some
other machine
Implementation uses remote procedure call
 Package up the user’s file system operation
 Send it to the remote machine where it gets
executed like a local request
 Remote sends back the answer
Very common in modern systems
 E.g., the CLIC lab, compute nodes, etc.
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.31
Silberschatz, Galvin and Gagne ©2007
File Sharing – Client-Server Model





Client-server model allows clients to mount
remote file systems from servers
Server can serve multiple clients
NFS is a standard UNIX client-server file sharing
protocol
 Multiple versions; V4 is standard now
 We use it on CLIC, compute nodes
CIFS is standard Windows protocol
Standard operating system file calls are translated
into remote procedure calls
 Package up the user’s file system operation
 Send it to the remote machine where it gets
executed like a local request
 Remote sends back the answer
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
10.32
Silberschatz, Galvin and Gagne ©2007
End of Chapter 10
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Silberschatz, Galvin and Gagne ©2007