File System Interface
File Concept
• Collection of related information stored on
disk.
• A file is a sequence of bits, bytes, lines of
records.
• Source program, object program, Executable
program, numeric data, text, graphic images,
sound recordings etc.
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
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
• 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
File Types – Name, Extension
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
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
• Relative block numbers allow OS to decide where file should be placed
– See allocation problem in Ch 12
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
Directory
Files
F1 F2 F4
F3
Fn
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
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,
…)
Single-Level Directory
s• 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
• 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
Contd..
Deleting “mail” deleting the entire subtree rooted by “mail”