FILE SYSTEM INTERFACE
INTRODUCTION
Computers can store information on various storage media
The operating system abstracts from the physical properties of its
storage devices to define a logical storage unit called a file
Files are mapped by the operating system onto non-volatile
physical devices
A file is a named collection of related information that is
recorded on secondary storage
For a users perspective, a file is the smallest allotment of logical
secondary storage
In general, a file is a sequence of bits, bytes, lines, or records,
whose meaning is defined by the files creator and user
Files may be free form (e.g., text files) or rigidly formatted
FILE STRUCTURE
A file has a certain defined structure, which depends on its type
A text file is a sequence of characters organized into lines
A source code file is a sequence of declarations,
statements, and subroutine definitions
An object code file and an executable file each contain a
sequence of bytes organized into headers and tables of data
and code understandable by a system linker and loader
A file is named for the convenience of its human users, and
is referred to by its name
After a file is created, it becomes independent of the
process that created it; other processes may read it or edit it
FILE ATTRIBUTES
Name the only information kept in human-readable form
Identifier unique tag (a number) that identifies file within
the file system
Type used by systems that support different types of files
Location pointer to file location on a device
Size current file size in bytes, words, or blocks
Protection access controls for who can read, write, and
execute
Time, date, and user identification used for
documenting file creation, last modification, and last use
Information about all files is kept in the directory structure,
which also is located on secondary storage
FILE OPERATIONS
A file is an abstract data type with operations to
Create
Write
Read
Reposition within file
Delete
Truncate (i.e., erase the contents but keep the file)
OPEN FILES
Several pieces of data are needed to manage open files:
File pointer: pointer to last read/write location; unique to each
process that has the file open
File-open count: count of number of simultaneous opens for a file to
allow removal of the file entry from the open-file table when the last
process closes it
Disk location of the file: Information kept in memory and used to
locate the file on disk
Access rights: Access mode information stored for each process
FILE TYPES NAME, EXTENSION
ACCESS METHODS
Sequential Access
read next
write next
reset
skip forward
skip backward
Direct Access
read n
write n
position to n
n = relative block number
SEQUENTIAL-ACCESS FILE
SIMULATION OF SEQUENTIAL ACCESS ON A DIRECT-ACCESS
FILE
cp = current position
EXAMPLE OF INDEX AND RELATIVE
FILES
DIRECTORY STRUCTURE
A collection of nodes containing information about all files
Directory
Files
F1
F2
F3
F4
Fn
Both the directory structure and the files reside on disk.
Backups of these two structures may be kept on other devices
A TYPICAL FILE-SYSTEM
ORGANIZATION
OPERATIONS PERFORMED ON
DIRECTORY
Search for a file
Create a file
Delete a file
List a directory
Rename a file
Traverse the file system
GOAL: ORGANIZE A DIRECTORY (LOGICALLY) BASED
ON THE FOLLOWING CRITERIA:
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, )
FOUR POSSIBLE APPROACHES
Single-level Directory
Two-level Directory
Tree-structured Directories
Acyclic Graph Directories
SINGLE-LEVEL DIRECTORY
A single directory maintained for all users
Advantages
Efficiency
Disadvantages
Naming - collisions
Grouping not possible
TWO-LEVEL DIRECTORY
Separate directory for each user
Advantages
Efficient searching
Naming - same file name in a different directory; path name
Disadvantages
Naming - collisions
Grouping capability not possible except by user
TREE-STRUCTURED DIRECTORIES
TREE-STRUCTURED DIRECTORIES
(CONT)
Advantages
Efficient searching current working directory
Naming - same file name in a different directory
Grouping capability
Disadvantages
Structural complexity
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
ACYCLIC-GRAPH DIRECTORIES
Have shared subdirectories and files
ACYCLIC-GRAPH DIRECTORIES
(CONT.)
Same advantages as tree-structured directory
In addition, the same file or directory may have a reference
that appears in two or more directories
Disadvantage is that its structure is more complex
The same file or directory may be referred to by many names
Need to be cautious of dangling pointers when files are
deleted
Solutions to deletion
Just delete the link
Preserve the file until all links (i.e., references) are deleted
This requires a new directory entry type called a link
Keep a count of the number of references
FILE SYSTEM MOUNTING
A file system must be mounted before it can be accessed
An unmounted file system is mounted at a mount point (see the
next two slides)
(A) EXISTING. (B) UNMOUNTED
PARTITION
See result of this mounting
on the next slide
MOUNT POINT
PROTECTION
File owner/creator should be able to control:
what can be done to a file
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
a) owner access
b) group access
c) public access
RWX
RWX
RWX
111
110
001
A system administrator creates a group (unique name), say G, and adds
some users to the group.
For a particular file (say game) or subdirectory, define an appropriate
access.
owner
chmod
group
761
public
game
Attach a group to a file
chgrp
game
WINDOWS XP ACCESS-CONTROL LIST MANAGEMENT
A SAMPLE UNIX DIRECTORY
LISTING
IN-MEMORY FILE SYSTEM
STRUCTURES
DIRECTORY
IMPLEMENTATION
Linear list of file names with pointer to the data blocks.
simple to program
time-consuming to execute
Hash Table linear list with hash data structure.
decreases directory search time
collisions situations where two file names hash to the same location
fixed size
ALLOCATION METHODS
An allocation method refers to how disk blocks are allocated for files:
Contiguous allocation
Linked allocation
Indexed allocation
CONTIGUOUS ALLOCATION OF DISK
SPACE
LINKED ALLOCATION
FILE-ALLOCATION TABLE
EXAMPLE OF INDEXED ALLOCATION
COMBINED SCHEME: UNIX (4K BYTES PER BLOCK)
LINKED FREE SPACE LIST ON
DISK