File_System_2
File_System_2
Interface
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 13: File-System Interface
File Concept
Access Methods
Disk and Directory Structure
Operating System Concepts – 9th Edition 13.2 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 13.3 Silberschatz, Galvin and Gagne ©2013
Directory Structure
Directory
Files
F1 F2 F4
F3
Fn
Operating System Concepts – 9th Edition 13.4 Silberschatz, Galvin and Gagne ©2013
Operations Performed on Directory
Search for a file
Create a file
Delete a file
List a directory
Rename a file
Operating System Concepts – 9th Edition 13.5 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 13.6 Silberschatz, Galvin and Gagne ©2013
Single-Level Directory
A single directory for all users
Naming problem
Grouping problem
Operating System Concepts – 9th Edition 13.7 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 13.8 Silberschatz, Galvin and Gagne ©2013
Tree-Structured Directories
Operating System Concepts – 9th Edition 13.9 Silberschatz, Galvin and Gagne ©2013
Tree-Structured Directories (Cont.)
Efficient searching
Grouping Capability
Current directory (working directory)
cd /spell/mail/prog
type list
Operating System Concepts – 9th Edition 13.10 Silberschatz, Galvin and Gagne ©2013
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: Suppose the current directory is -- “/mail“
mkdir count
Operating System Concepts – 9th Edition 13.11 Silberschatz, Galvin and Gagne ©2013
Acyclic-Graph Directories
Operating System Concepts – 9th Edition 13.12 Silberschatz, Galvin and Gagne ©2013
Acyclic-Graph Directories (Cont.)
Files/subdirectories have two different names (aliasing)
Only one actual file exists, so any changes made by
one person are immediately visible to the other.
How do we implement shared files and subdirectories?
Can duplicate the inode information about the shared
file/subdirectory in each of the subdirectories that
“point’ to the shared structure.
If some information changes about the file it had to
be updated in several places.
Have a new directory entry type:
Link – another name (pointer) to an existing file or
subdirectory.
Operating System Concepts – 9th Edition 13.13 Silberschatz, Galvin and Gagne ©2013
Acyclic-Graph Directories -- Links
A link may be implemented as an absolute or a relative
path name.
When a reference to a file is made, the directory is searched.
If the directory entry is marked as a link, then the name of
the real file is included in the link information.
We resolve the link by using that path name to locate the
real file.
Links are easily identified by their format in the directory
entry (or by having a special type on systems that support
types) and are effectively indirect pointers.
The operating system ignores these links when traversing
directory trees to preserve the acyclic structure of the
system.
Operating System Concepts – 9th Edition 13.14 Silberschatz, Galvin and Gagne ©2013
Acyclic-Graph Directories -- Deletion
If dict /count is deleted 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
Operating System Concepts – 9th Edition 13.15 Silberschatz, Galvin and Gagne ©2013
General Graph Directory
Operating System Concepts – 9th Edition 13.16 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 13.17 Silberschatz, Galvin and Gagne ©2013
Access Control
Mode of access: read, write, execute
Three classes of users on Unix / Linux:
owner
group
public
With each file and subdirectory we keep 9 protection
bits, 3 for owner, 3 for group, 3 for public.
RWX
a) owner access 7 111
RWX
b) group access 6 110
RWX
c) public access 1 001
Operating System Concepts – 9th Edition 13.18 Silberschatz, Galvin and Gagne ©2013
Access Control (Cont.)
To create a group, ask the system manager to create a new
group (unique name), say G, and to add some users to the
group (say, Judi, Mark)
For a particular file (or subdirectory), say game, define an
appropriate access.
Attach a group, say G, to a file , say game – using the
command “chgrp”
chgrp G game
Operating System Concepts – 9th Edition 13.19 Silberschatz, Galvin and Gagne ©2013
A Sample UNIX Directory Listing
Example:
Explanation:
“into.ps” is a file owned by “pbg” with group ”staff”
“lib” is a subdirectory owned by “pbg” with group “faculty”
Operating System Concepts – 9th Edition 13.20 Silberschatz, Galvin and Gagne ©2013
End of Chapter 13
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013