Silberschatz and Galvin199910.1Operating System Concepts Silberschatz and Galvin19995.1Operating System Concepts Silberschatz and Galvin 19994.1
1 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
O P E R A T I N G S Y S T E M S
Chapter 11 : File-System Interface
• File Concept
• Access :Methods
• Directory Structure
• Protection
• Consistency Semantics
Operating System Concepts
Silberschatz and Galvin199910.2Operating System Concepts Silberschatz and Galvin19995.2Operating System Concepts Silberschatz and Galvin 19994.2
2 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
Chapter 11: File-System Interface
• File Concept
• Access :Methods
• Directory Structure
• Protection
• Consistency Semantics
Operating System Concepts
Silberschatz and Galvin199910.3Operating System Concepts Silberschatz and Galvin19995.3Operating System Concepts Silberschatz and Galvin 19994.3
3 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
File Concept
• Contiguous logical address space
• Types:
• Data
 numeric
 character
 binary
• Program
Operating System Concepts
Silberschatz and Galvin199910.4Operating System Concepts Silberschatz and Galvin19995.4Operating System Concepts Silberschatz and Galvin 19994.4
4 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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
Operating System Concepts
Silberschatz and Galvin199910.5Operating System Concepts Silberschatz and Galvin19995.5Operating System Concepts Silberschatz and Galvin 19994.5
5 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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.
Operating System Concepts
Silberschatz and Galvin199910.6Operating System Concepts Silberschatz and Galvin19995.6Operating System Concepts Silberschatz and Galvin 19994.6
6 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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.
Operating System Concepts
Silberschatz and Galvin199910.7Operating System Concepts Silberschatz and Galvin19995.7Operating System Concepts Silberschatz and Galvin 19994.7
7 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
File Types – name, extension
Operating System Concepts
Silberschatz and Galvin199910.8Operating System Concepts Silberschatz and Galvin19995.8Operating System Concepts Silberschatz and Galvin 19994.8
8 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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
Silberschatz and Galvin199910.9Operating System Concepts Silberschatz and Galvin19995.9Operating System Concepts Silberschatz and Galvin 19994.9
9 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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.
Operating System Concepts
Silberschatz and Galvin199910.10Operating System Concepts Silberschatz and Galvin19995.10Operating System Concepts Silberschatz and Galvin 19994.10
10 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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)
Operating System Concepts
Silberschatz and Galvin199910.11Operating System Concepts Silberschatz and Galvin19995.11Operating System Concepts Silberschatz and Galvin 19994.11
11 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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
Silberschatz and Galvin199910.12Operating System Concepts Silberschatz and Galvin19995.12Operating System Concepts Silberschatz and Galvin 19994.12
12 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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 Pascal
programs, all games, …)
Operating System Concepts
Silberschatz and Galvin199910.13Operating System Concepts Silberschatz and Galvin19995.13Operating System Concepts Silberschatz and Galvin 19994.13
13 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
Single-Level Directory
• A single directory for all users.
• Naming problem
• Grouping problem
Operating System Concepts
Silberschatz and Galvin199910.14Operating System Concepts Silberschatz and Galvin19995.14Operating System Concepts Silberschatz and Galvin 19994.14
14 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
Two-Level Directory
• Separate directory for each user.
• Path name
• Can have the saem file name for different user
• Efficient searching
• No grouping capability
Operating System Concepts
Silberschatz and Galvin199910.15Operating System Concepts Silberschatz and Galvin19995.15Operating System Concepts Silberschatz and Galvin 19994.15
15 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
Tree-Structured Directories
Operating System Concepts
Silberschatz and Galvin199910.16Operating System Concepts Silberschatz and Galvin19995.16Operating System Concepts Silberschatz and Galvin 19994.16
16 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
Tree-Structured Directories (Cont.)
• Efficient searching
• Grouping Capability
• Current directory (working directory)
• cd /spell/mail/prog
• type list
Operating System Concepts
Silberschatz and Galvin199910.17Operating System Concepts Silberschatz and Galvin19995.17Operating System Concepts Silberschatz and Galvin 19994.17
17 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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 /spell/mail
mkdir count
mail
prog copy prt exp count
• Deleting “mail”  deleting the entire subtree rooted by “mail”.
Operating System Concepts
Silberschatz and Galvin199910.18Operating System Concepts Silberschatz and Galvin19995.18Operating System Concepts Silberschatz and Galvin 19994.18
18 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
Acyclic-Graph Directories
• Have shared subdirectories and files.
Operating System Concepts
Silberschatz and Galvin199910.19Operating System Concepts Silberschatz and Galvin19995.19Operating System Concepts Silberschatz and Galvin 19994.19
19 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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.
Operating System Concepts
Silberschatz and Galvin199910.20Operating System Concepts Silberschatz and Galvin19995.20Operating System Concepts Silberschatz and Galvin 19994.20
20 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
General Graph Directory
Operating System Concepts
Silberschatz and Galvin199910.21Operating System Concepts Silberschatz and Galvin19995.21Operating System Concepts Silberschatz and Galvin 19994.21
21 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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
Silberschatz and Galvin199910.22Operating System Concepts Silberschatz and Galvin19995.22Operating System Concepts Silberschatz and Galvin 19994.22
22 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
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
Silberschatz and Galvin199910.23Operating System Concepts Silberschatz and Galvin19995.23Operating System Concepts Silberschatz and Galvin 19994.23
23 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23
Access Lists and Groups
• Mode of access: read, write, execute
• Three classes of users
RWX
a) owner access 7  1 1 1
RWX
b) groups 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
Operating System Concepts

Ch11 file system interface

  • 1.
    Silberschatz and Galvin199910.1OperatingSystem Concepts Silberschatz and Galvin19995.1Operating System Concepts Silberschatz and Galvin 19994.1 1 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 O P E R A T I N G S Y S T E M S Chapter 11 : File-System Interface • File Concept • Access :Methods • Directory Structure • Protection • Consistency Semantics Operating System Concepts
  • 2.
    Silberschatz and Galvin199910.2OperatingSystem Concepts Silberschatz and Galvin19995.2Operating System Concepts Silberschatz and Galvin 19994.2 2 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 Chapter 11: File-System Interface • File Concept • Access :Methods • Directory Structure • Protection • Consistency Semantics Operating System Concepts
  • 3.
    Silberschatz and Galvin199910.3OperatingSystem Concepts Silberschatz and Galvin19995.3Operating System Concepts Silberschatz and Galvin 19994.3 3 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 File Concept • Contiguous logical address space • Types: • Data  numeric  character  binary • Program Operating System Concepts
  • 4.
    Silberschatz and Galvin199910.4OperatingSystem Concepts Silberschatz and Galvin19995.4Operating System Concepts Silberschatz and Galvin 19994.4 4 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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 Operating System Concepts
  • 5.
    Silberschatz and Galvin199910.5OperatingSystem Concepts Silberschatz and Galvin19995.5Operating System Concepts Silberschatz and Galvin 19994.5 5 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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. Operating System Concepts
  • 6.
    Silberschatz and Galvin199910.6OperatingSystem Concepts Silberschatz and Galvin19995.6Operating System Concepts Silberschatz and Galvin 19994.6 6 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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. Operating System Concepts
  • 7.
    Silberschatz and Galvin199910.7OperatingSystem Concepts Silberschatz and Galvin19995.7Operating System Concepts Silberschatz and Galvin 19994.7 7 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 File Types – name, extension Operating System Concepts
  • 8.
    Silberschatz and Galvin199910.8OperatingSystem Concepts Silberschatz and Galvin19995.8Operating System Concepts Silberschatz and Galvin 19994.8 8 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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
  • 9.
    Silberschatz and Galvin199910.9OperatingSystem Concepts Silberschatz and Galvin19995.9Operating System Concepts Silberschatz and Galvin 19994.9 9 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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. Operating System Concepts
  • 10.
    Silberschatz and Galvin199910.10OperatingSystem Concepts Silberschatz and Galvin19995.10Operating System Concepts Silberschatz and Galvin 19994.10 10 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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) Operating System Concepts
  • 11.
    Silberschatz and Galvin199910.11OperatingSystem Concepts Silberschatz and Galvin19995.11Operating System Concepts Silberschatz and Galvin 19994.11 11 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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
  • 12.
    Silberschatz and Galvin199910.12OperatingSystem Concepts Silberschatz and Galvin19995.12Operating System Concepts Silberschatz and Galvin 19994.12 12 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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 Pascal programs, all games, …) Operating System Concepts
  • 13.
    Silberschatz and Galvin199910.13OperatingSystem Concepts Silberschatz and Galvin19995.13Operating System Concepts Silberschatz and Galvin 19994.13 13 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 Single-Level Directory • A single directory for all users. • Naming problem • Grouping problem Operating System Concepts
  • 14.
    Silberschatz and Galvin199910.14OperatingSystem Concepts Silberschatz and Galvin19995.14Operating System Concepts Silberschatz and Galvin 19994.14 14 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 Two-Level Directory • Separate directory for each user. • Path name • Can have the saem file name for different user • Efficient searching • No grouping capability Operating System Concepts
  • 15.
    Silberschatz and Galvin199910.15OperatingSystem Concepts Silberschatz and Galvin19995.15Operating System Concepts Silberschatz and Galvin 19994.15 15 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 Tree-Structured Directories Operating System Concepts
  • 16.
    Silberschatz and Galvin199910.16OperatingSystem Concepts Silberschatz and Galvin19995.16Operating System Concepts Silberschatz and Galvin 19994.16 16 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 Tree-Structured Directories (Cont.) • Efficient searching • Grouping Capability • Current directory (working directory) • cd /spell/mail/prog • type list Operating System Concepts
  • 17.
    Silberschatz and Galvin199910.17OperatingSystem Concepts Silberschatz and Galvin19995.17Operating System Concepts Silberschatz and Galvin 19994.17 17 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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 /spell/mail mkdir count mail prog copy prt exp count • Deleting “mail”  deleting the entire subtree rooted by “mail”. Operating System Concepts
  • 18.
    Silberschatz and Galvin199910.18OperatingSystem Concepts Silberschatz and Galvin19995.18Operating System Concepts Silberschatz and Galvin 19994.18 18 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 Acyclic-Graph Directories • Have shared subdirectories and files. Operating System Concepts
  • 19.
    Silberschatz and Galvin199910.19OperatingSystem Concepts Silberschatz and Galvin19995.19Operating System Concepts Silberschatz and Galvin 19994.19 19 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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. Operating System Concepts
  • 20.
    Silberschatz and Galvin199910.20OperatingSystem Concepts Silberschatz and Galvin19995.20Operating System Concepts Silberschatz and Galvin 19994.20 20 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 General Graph Directory Operating System Concepts
  • 21.
    Silberschatz and Galvin199910.21OperatingSystem Concepts Silberschatz and Galvin19995.21Operating System Concepts Silberschatz and Galvin 19994.21 21 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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
  • 22.
    Silberschatz and Galvin199910.22OperatingSystem Concepts Silberschatz and Galvin19995.22Operating System Concepts Silberschatz and Galvin 19994.22 22 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 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
  • 23.
    Silberschatz and Galvin199910.23OperatingSystem Concepts Silberschatz and Galvin19995.23Operating System Concepts Silberschatz and Galvin 19994.23 23 toOperating System Concepts | Silberschatz and Galvin 1999https://github.com/syaifulahdan/ 23 Access Lists and Groups • Mode of access: read, write, execute • Three classes of users RWX a) owner access 7  1 1 1 RWX b) groups 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 Operating System Concepts