File System ,
Implementation of File
System
Outline
• File Concept
• Access Methods
• Disk and Directory Structure
• File-System Mounting
• File Sharing
• Protection
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
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
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
•
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
Open File Locking
• Some Operating system Provide facilities for locking an open file
• 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
File Structure
• File types can also be used to indicate the internal structure of the file.
• 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
Access Methods
• Sequential Access read next write next reset
• no read after last write
• (rewrite)
• Example: Editors and Compilers
• 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
Sequential-access File
Simulation of Sequential Access
on Direct-access File
Other Access Methods
• Can be built on top of base methods
• General involve creation of an index for the file
• Keep index in memory for fast determination of location of data to be
operated on (consider UPC code plus record of data about that item)
• If too large, index (in memory) of the index (on disk)
• IBM indexed sequential-access method (ISAM)
• Small master index, points to disk blocks of secondary index
• File kept sorted on a defined key
• All done by the OS
• VMS operating system provides index and relative files as another example
(see next slide)
Example of Index and Relative
Files
Directory Structure
• A collection of nodes containing information about all files.
Both the directory structure and the files reside on disk
Operations Performed on
Directory
• Search for a file
• Create a file
• Delete a file
• List a directory
• Rename a file
• Traverse the file system
Single-Level Directory
• A single directory for all users
⚫ Naming problem
⚫ Grouping problem
Two-Level Directory
• Separate directory for each user.
• Path name
• Can have the same file name for different user
• Efficient searching
• NO grouping capability
Tree-Structured Directories
Tree-Structured Directories (Cont.)
• Efficient searching
•
• Grouping Capability
•
• Current directory (working directory)
• cd /spell/mail/prog
• type list
Acyclic-Graph Directories
• Have shared subdirectories and files
Contd..
• 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
• New directory entry type
• Link – another name (pointer) to an existing file
• Resolve the link – follow pointer to locate the file
General Graph Directory
Contd..
• 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
File System Mounting
•A file system must be mounted before it can be accessed
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
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
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
File Sharing – Failure Modes
• All file systems have failure modes
• For example corruption of directory structures or other non-user data, called metadata
• Remote file systems add new failure modes, due to network failure, server
failure
• Recovery from failure can involve state information
• about status of each remote request
• Stateless protocols such as NFS v3 include all information in each request,
allowing easy recovery but less security
File Sharing – Consistency
Semantics
Protection
• File owner/creator should be able to control:
• what can be done
• by whom
• Types of access
• Read
• Write
• Execute
• Append
• Delete
• List
Access Lists and Groups
• Mode of access: read, write, execute
• Three classes of users on Unix / Linux
• RWX
• owner access 7 ⇒111
• RWX
• group access 6 ⇒110
• RWX
• public access 1 ⇒001
Windows 7 Access-Control List
Management
A Sample UNIX Directory Listing