Silberschatz, Galvin and Gagne ©200211.1
Chapter 11: File-System Interface
File Concept
Access Methods
Directory Structure
File System Mounting
File Sharing
Protection
Silberschatz, Galvin and Gagne ©200211.2
File Concept
Contiguous logical address space
Types:
Data
numeric
character
binary
Program
Silberschatz, Galvin and Gagne ©200211.3
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
Silberschatz, Galvin and Gagne ©200211.4
File Attributes
Name – only information kept in human-readable form.
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.
Silberschatz, Galvin and Gagne ©200211.5
File Operations
Create
Write
Read
Reposition within file – 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.
Silberschatz, Galvin and Gagne ©200211.6
File Types – Name, Extension
Silberschatz, Galvin and Gagne ©200211.7
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
Silberschatz, Galvin and Gagne ©200211.8
Sequential-access File
Silberschatz, Galvin and Gagne ©200211.9
Simulation of Sequential Access on a Direct-access File
Silberschatz, Galvin and Gagne ©200211.10
Example of Index and Relative
Files
Silberschatz, Galvin and Gagne ©200211.11
Directory Structure
A collection of nodes containing information about all
files.
F 1 F 2
F 3
F 4
F n
Directory
Files
Both the directory structure and the files reside on disk.
Backups of these two structures are kept on tapes.
Silberschatz, Galvin and Gagne ©200211.12
A Typical File-system Organization
Silberschatz, Galvin and Gagne ©200211.13
Information in a Device Directory
Name
Type
Address
Current length
Maximum length
Date last accessed (for archival)
Date last updated (for dump)
Owner ID (who pays)
Protection information (discuss later)
Silberschatz, Galvin and Gagne ©200211.14
Operations Performed on Directory
Search for a file
Create a file
Delete a file
List a directory
Rename a file
Traverse the file system
Silberschatz, Galvin and Gagne ©200211.15
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, …)
Silberschatz, Galvin and Gagne ©200211.16
Single-Level Directory
A single directory for all users.
Naming problem
Grouping problem
Silberschatz, Galvin and Gagne ©200211.17
Two-Level Directory
Separate directory for each user.
•Path name
•Can have the same file name for different user
•Efficient searching
•No grouping capability
Silberschatz, Galvin and Gagne ©200211.18
Tree-Structured Directories
Silberschatz, Galvin and Gagne ©200211.19
Tree-Structured Directories (Cont.)
Efficient searching
Grouping Capability
Current directory (working directory)
cd /spell/mail/prog
type list
Silberschatz, Galvin and Gagne ©200211.20
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
mail
prog copy prt exp count
Deleting “mail” ⇒ deleting the entire subtree rooted by “mail”.
Silberschatz, Galvin and Gagne ©200211.21
Acyclic-Graph Directories
Have shared subdirectories and files.
Silberschatz, Galvin and Gagne ©200211.22
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.
Entry-hold-count solution.
Silberschatz, Galvin and Gagne ©200211.23
General Graph Directory
Silberschatz, Galvin and Gagne ©200211.24
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.
Silberschatz, Galvin and Gagne ©200211.25
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.
Silberschatz, Galvin and Gagne ©200211.26
(a) Existing. (b) Unmounted
Partition
Silberschatz, Galvin and Gagne ©200211.27
Mount Point
Silberschatz, Galvin and Gagne ©200211.28
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.
Silberschatz, Galvin and Gagne ©200211.29
Protection
File owner/creator should be able to control:
what can be done
by whom
Types of access
Read
Write
Execute
Append
Delete
List
Silberschatz, Galvin and Gagne ©200211.30
Access Lists and Groups
Mode of access: read, write, execute
Three classes of users
RWX
a) owner access 7 ⇒ 1 1 1
RWX
b) group access 6 ⇒ 1 1 0
RWX
c) public access 1 ⇒ 0 0 1
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
chmod 761 game
Attach a group to a file
chgrp G game

Ch11: File System Interface

  • 1.
    Silberschatz, Galvin andGagne ©200211.1 Chapter 11: File-System Interface File Concept Access Methods Directory Structure File System Mounting File Sharing Protection
  • 2.
    Silberschatz, Galvin andGagne ©200211.2 File Concept Contiguous logical address space Types: Data numeric character binary Program
  • 3.
    Silberschatz, Galvin andGagne ©200211.3 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
  • 4.
    Silberschatz, Galvin andGagne ©200211.4 File Attributes Name – only information kept in human-readable form. 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.
  • 5.
    Silberschatz, Galvin andGagne ©200211.5 File Operations Create Write Read Reposition within file – 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.
  • 6.
    Silberschatz, Galvin andGagne ©200211.6 File Types – Name, Extension
  • 7.
    Silberschatz, Galvin andGagne ©200211.7 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
  • 8.
    Silberschatz, Galvin andGagne ©200211.8 Sequential-access File
  • 9.
    Silberschatz, Galvin andGagne ©200211.9 Simulation of Sequential Access on a Direct-access File
  • 10.
    Silberschatz, Galvin andGagne ©200211.10 Example of Index and Relative Files
  • 11.
    Silberschatz, Galvin andGagne ©200211.11 Directory Structure A collection of nodes containing information about all files. F 1 F 2 F 3 F 4 F n Directory Files Both the directory structure and the files reside on disk. Backups of these two structures are kept on tapes.
  • 12.
    Silberschatz, Galvin andGagne ©200211.12 A Typical File-system Organization
  • 13.
    Silberschatz, Galvin andGagne ©200211.13 Information in a Device Directory Name Type Address Current length Maximum length Date last accessed (for archival) Date last updated (for dump) Owner ID (who pays) Protection information (discuss later)
  • 14.
    Silberschatz, Galvin andGagne ©200211.14 Operations Performed on Directory Search for a file Create a file Delete a file List a directory Rename a file Traverse the file system
  • 15.
    Silberschatz, Galvin andGagne ©200211.15 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, …)
  • 16.
    Silberschatz, Galvin andGagne ©200211.16 Single-Level Directory A single directory for all users. Naming problem Grouping problem
  • 17.
    Silberschatz, Galvin andGagne ©200211.17 Two-Level Directory Separate directory for each user. •Path name •Can have the same file name for different user •Efficient searching •No grouping capability
  • 18.
    Silberschatz, Galvin andGagne ©200211.18 Tree-Structured Directories
  • 19.
    Silberschatz, Galvin andGagne ©200211.19 Tree-Structured Directories (Cont.) Efficient searching Grouping Capability Current directory (working directory) cd /spell/mail/prog type list
  • 20.
    Silberschatz, Galvin andGagne ©200211.20 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 mail prog copy prt exp count Deleting “mail” ⇒ deleting the entire subtree rooted by “mail”.
  • 21.
    Silberschatz, Galvin andGagne ©200211.21 Acyclic-Graph Directories Have shared subdirectories and files.
  • 22.
    Silberschatz, Galvin andGagne ©200211.22 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. Entry-hold-count solution.
  • 23.
    Silberschatz, Galvin andGagne ©200211.23 General Graph Directory
  • 24.
    Silberschatz, Galvin andGagne ©200211.24 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.
  • 25.
    Silberschatz, Galvin andGagne ©200211.25 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.
  • 26.
    Silberschatz, Galvin andGagne ©200211.26 (a) Existing. (b) Unmounted Partition
  • 27.
    Silberschatz, Galvin andGagne ©200211.27 Mount Point
  • 28.
    Silberschatz, Galvin andGagne ©200211.28 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.
  • 29.
    Silberschatz, Galvin andGagne ©200211.29 Protection File owner/creator should be able to control: what can be done by whom Types of access Read Write Execute Append Delete List
  • 30.
    Silberschatz, Galvin andGagne ©200211.30 Access Lists and Groups Mode of access: read, write, execute Three classes of users RWX a) owner access 7 ⇒ 1 1 1 RWX b) group access 6 ⇒ 1 1 0 RWX c) public access 1 ⇒ 0 0 1 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 chmod 761 game Attach a group to a file chgrp G game