You are on page 1of 33

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 F4
F3
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 public

Attach a group to a file: chgrp G game chmod 761 game

Operating System Concepts with Java – 7th Edition, Nov 15, 2006 10.27 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 network-
wide 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

You might also like