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
4 numeric
4 character
4 binary
• Program
§ Contents defined by file’s creator
• Many types
4 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
File Operations
§ File is an abstract data type
§ 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.7 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.8 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
§ 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.9 Silberschatz, Galvin and Gagne ©2018
File Types – Name, Extension
Operating System Concepts – 10th Edition 13.10 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
§ Who decides:
• Operating system
• Program
Operating System Concepts – 10th Edition 13.11 Silberschatz, Galvin and Gagne ©2018
Sequential-access File
Operating System Concepts – 10th Edition 13.12 Silberschatz, Galvin and Gagne ©2018
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
§ Relative block numbers allow OS to decide where file should be placed
• See allocation problem in Ch 12
Operating System Concepts – 10th Edition 13.13 Silberschatz, Galvin and Gagne ©2018
Simulation of Sequential Access on Direct-access File
Operating System Concepts – 10th Edition 13.14 Silberschatz, Galvin and Gagne ©2018
Example of Index and Relative Files
Operating System Concepts – 10th Edition 13.15 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 13.16 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 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 – 10th Edition 13.17 Silberschatz, Galvin and Gagne ©2018
A Typical File-system Organization
Operating System Concepts – 10th Edition 13.18 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.19 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.20 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.21 Silberschatz, Galvin and Gagne ©2018
Single-Level Directory
§ A single directory for all users
§ Naming problem
§ Grouping problem
Operating System Concepts – 10th Edition 13.22 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.23 Silberschatz, Galvin and Gagne ©2018
Tree-Structured Directories
Operating System Concepts – 10th Edition 13.24 Silberschatz, Galvin and Gagne ©2018
Tree-Structured Directories (Cont.)
§ Efficient searching
§ Grouping Capability
§ Current directory (working directory)
• cd /spell/mail/prog
Operating System Concepts – 10th Edition 13.25 Silberschatz, Galvin and Gagne ©2018
Tree-Structured Directories (Cont.)
§ Absolute or relative path name
§ Creating a new file is done in current directory
§ Delete a file
rm <file-name>
§ Creating a new subdirectory is done in current directory
mkdir <dir-name>
Example: if in current directory /mail
mkdir count
Deleting “mail” Þ deleting the entire subtree rooted by “mail”
Operating System Concepts – 10th Edition 13.26 Silberschatz, Galvin and Gagne ©2018
File System Mounting
§ A file system must be mounted before it can be accessed
§ A unmounted file system (i.e., Fig. 11-11(b)) is mounted at
a mount point
users
bill fred sue jane
help doc
prog
(a) (b)
Operating System Concepts – 10th Edition 13.27 Silberschatz, Galvin and Gagne ©2018
Mount Point
Operating System Concepts – 10th Edition 13.28 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.29 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.30 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.31 Silberschatz, Galvin and Gagne ©2018
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.
Attach a group to a file
chgrp G game
Operating System Concepts – 10th Edition 13.32 Silberschatz, Galvin and Gagne ©2018
Windows 7 Access-Control List Management
Operating System Concepts – 10th Edition 13.33 Silberschatz, Galvin and Gagne ©2018
A Sample UNIX Directory Listing
Operating System Concepts – 10th Edition 13.34 Silberschatz, Galvin and Gagne ©2018