Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Chapter 10:
File-Systems
10.2 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Chapter 10: File-Systems
 File Concept
 Access Methods
 Disk and Directory Structure
 File-System Mounting
 File Sharing
 Protection
10.3 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
10.4 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
4
FILE SYSTEMS
File System Interface
The user level (more visible) portion of the file system.
 Access methods
 Directory Structure
 Protection
File System Implementation
The OS level (less visible) portion of the file system.
 Allocation and Free Space Management
 Directory Implementation
10.5 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
File Concept
 Contiguous logical address space
 Types:
 Data
 numeric
 character
 binary
 Program
 Contents defined by file’s creator
 Many types
 Consider text file, source file, executable file
10.6 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
10.7 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
10.8 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
 Access rights: per-process access mode information
10.9 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
 Mediates access to a file
 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
Explanation: if the locking system is mandatory, the OS ensures
locking integrity. For advisory locking, it is upto software
developers to ensure that locks are appropriately acquired and
released. Eg. Windows adapts Mandatory locking whereas UNIX
employ advisory locks.
10.10 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
File Types – Name, Extension
10.11 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
File Structure
 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
10.12 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
10.13 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Sequential-access File
 It is based on a tape model of a file. Such a file can be reset to the
beginning and on some systems either forward or backward
10.14 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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 (is an index relative to the beginning of the file)
Relative block number Vs Absolute block numbers
 Relative block numbers allow OS to decide where file should be placed
10.15 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Simulation of Sequential Access on Direct-access File
10.18 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
10.19 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Disk Structure
 Disk can be subdivided into partitions
 Disks or partitions can be RAID ( redundant array of independent
disks) protected against failure.
 RAID: is a data storage virtualization technology that combines
multiple physical disk drive components into a single logical unit for
the purposes of data redundancy, performance improvement, or both.
 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
10.20 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
A Typical File-system Organization
10.22 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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)
10.23 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Operations Performed on Directory
 Search for a file
 Create a file
 Delete a file
 List a directory
 Rename a file
 Traverse the file system
10.24 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Directory Organization
 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, …)
The directory is organized logically to obtain
10.25 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Single-Level Directory
 A single directory for all users
 Naming problem
 Grouping problem
10.26 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Two-Level Directory
 Separate directory for each user
 Path name
 Can have the same file name for different user
 Efficient searching
 No grouping capability
10.27 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Tree-Structured Directories
10.28 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Tree-Structured Directories (Cont.)
 Efficient searching
 Grouping Capability
 Current directory (working directory)
 cd /spell/mail/prog
 type list
10.29 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Tree-Structured Directories (Cont)
 Absolute or relative path e
 Absolute path name begins from the root and follows a path down to the specified
file, giving the directory names on the path
 Relative path name defines the path from the current directory
 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”
10.30 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Acyclic-Graph Directories
 Have shared subdirectories and files
10.31 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Acyclic-Graph Directories (Cont.)
 Consider the case when two programmers who are working on a joint
project. Both programmers are equally responsible for the project, both want
the subdirectory to be in their own directories. Hence using AGD the
common subdirectories should be shared.
 Imp Note: Shared file or directory is not the same as two copies of the
file.
 Two different names (aliasing): Multiple absolute paths
 If dict deletes list  dangling pointer
Solutions:
 Preserve the file until all references to it are deleted. Need a mechanism
for determining that the last reference to the file has been deleted.
 New directory entry type
 Link – another name (pointer) to an existing file
 Resolve the link – follow pointer to locate the file
10.33 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
General Graph Directory
10.34 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
General Graph Directory (Cont.)
 Serious problem in AGD structure to ensure no cycles
 Cycles leads to searching any component twice
 How do we guarantee no cycles?
 Allow only links to file not subdirectories
 Every time a new link is added use a cycle detection
algorithm to determine whether it is OK
 Garbage collection: involves traversing the entire file
system, marking everything that can be accessed. Then, a
second pass collects everything that is not marked onto a
list of free space.
10.37 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
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
10.41 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Protection
 File owner/creator should be able to control:
 what can be done
 by whom
 Types of access
 Read
 Write
 Execute
 Append
 Delete
 List
10.42 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
Access Lists and Groups
 Mode of access: read, write, execute
 Three classes of users on Unix / Linux
RWX
a) owner access  1 1 1
RWX
b) group access  1 1 0
RWX
c) public access  0 0 1
Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th
Edition
End of Chapter 10

Lecture10-File Systems-PAfgfgfgfgfgfgf.ppt

  • 1.
    Silberschatz, Galvin andGagne ©2013 Operating System Concepts – 9th Edition Chapter 10: File-Systems
  • 2.
    10.2 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Chapter 10: File-Systems  File Concept  Access Methods  Disk and Directory Structure  File-System Mounting  File Sharing  Protection
  • 3.
    10.3 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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
  • 4.
    10.4 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 4 FILE SYSTEMS File System Interface The user level (more visible) portion of the file system.  Access methods  Directory Structure  Protection File System Implementation The OS level (less visible) portion of the file system.  Allocation and Free Space Management  Directory Implementation
  • 5.
    10.5 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition File Concept  Contiguous logical address space  Types:  Data  numeric  character  binary  Program  Contents defined by file’s creator  Many types  Consider text file, source file, executable file
  • 6.
    10.6 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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
  • 7.
    10.7 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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
  • 8.
    10.8 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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  Access rights: per-process access mode information
  • 9.
    10.9 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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  Mediates access to a file  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 Explanation: if the locking system is mandatory, the OS ensures locking integrity. For advisory locking, it is upto software developers to ensure that locks are appropriately acquired and released. Eg. Windows adapts Mandatory locking whereas UNIX employ advisory locks.
  • 10.
    10.10 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition File Types – Name, Extension
  • 11.
    10.11 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition File Structure  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
  • 12.
    10.12 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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
  • 13.
    10.13 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Sequential-access File  It is based on a tape model of a file. Such a file can be reset to the beginning and on some systems either forward or backward
  • 14.
    10.14 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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 (is an index relative to the beginning of the file) Relative block number Vs Absolute block numbers  Relative block numbers allow OS to decide where file should be placed
  • 15.
    10.15 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Simulation of Sequential Access on Direct-access File
  • 16.
    10.18 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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
  • 17.
    10.19 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Disk Structure  Disk can be subdivided into partitions  Disks or partitions can be RAID ( redundant array of independent disks) protected against failure.  RAID: is a data storage virtualization technology that combines multiple physical disk drive components into a single logical unit for the purposes of data redundancy, performance improvement, or both.  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
  • 18.
    10.20 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition A Typical File-system Organization
  • 19.
    10.22 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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)
  • 20.
    10.23 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Operations Performed on Directory  Search for a file  Create a file  Delete a file  List a directory  Rename a file  Traverse the file system
  • 21.
    10.24 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Directory Organization  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, …) The directory is organized logically to obtain
  • 22.
    10.25 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Single-Level Directory  A single directory for all users  Naming problem  Grouping problem
  • 23.
    10.26 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Two-Level Directory  Separate directory for each user  Path name  Can have the same file name for different user  Efficient searching  No grouping capability
  • 24.
    10.27 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Tree-Structured Directories
  • 25.
    10.28 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Tree-Structured Directories (Cont.)  Efficient searching  Grouping Capability  Current directory (working directory)  cd /spell/mail/prog  type list
  • 26.
    10.29 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Tree-Structured Directories (Cont)  Absolute or relative path e  Absolute path name begins from the root and follows a path down to the specified file, giving the directory names on the path  Relative path name defines the path from the current directory  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”
  • 27.
    10.30 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Acyclic-Graph Directories  Have shared subdirectories and files
  • 28.
    10.31 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Acyclic-Graph Directories (Cont.)  Consider the case when two programmers who are working on a joint project. Both programmers are equally responsible for the project, both want the subdirectory to be in their own directories. Hence using AGD the common subdirectories should be shared.  Imp Note: Shared file or directory is not the same as two copies of the file.  Two different names (aliasing): Multiple absolute paths  If dict deletes list  dangling pointer Solutions:  Preserve the file until all references to it are deleted. Need a mechanism for determining that the last reference to the file has been deleted.  New directory entry type  Link – another name (pointer) to an existing file  Resolve the link – follow pointer to locate the file
  • 29.
    10.33 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition General Graph Directory
  • 30.
    10.34 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition General Graph Directory (Cont.)  Serious problem in AGD structure to ensure no cycles  Cycles leads to searching any component twice  How do we guarantee no cycles?  Allow only links to file not subdirectories  Every time a new link is added use a cycle detection algorithm to determine whether it is OK  Garbage collection: involves traversing the entire file system, marking everything that can be accessed. Then, a second pass collects everything that is not marked onto a list of free space.
  • 31.
    10.37 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition 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
  • 32.
    10.41 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Protection  File owner/creator should be able to control:  what can be done  by whom  Types of access  Read  Write  Execute  Append  Delete  List
  • 33.
    10.42 Silberschatz, Galvinand Gagne ©2013 Operating System Concepts – 9th Edition Access Lists and Groups  Mode of access: read, write, execute  Three classes of users on Unix / Linux RWX a) owner access  1 1 1 RWX b) group access  1 1 0 RWX c) public access  0 0 1
  • 34.
    Silberschatz, Galvin andGagne ©2013 Operating System Concepts – 9th Edition End of Chapter 10