File system
Unit – 6
Chapter 1
File System - OS by JJ @CSE, HKBKCE 1
File-System Interface
• File Concept
• Access Methods
• Directory Structure
• File-System Mounting
• File Sharing
• Protection
File System - OS by JJ @CSE, HKBKCE 2
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
File System - OS by JJ @CSE, HKBKCE 3
File Concept
• The OS abstracts from the physical properties
of its storage devices to define a logical
storage unit, the file.
• Types:
– Data
• numeric
• character
• binary
– Program
File System - OS by JJ @CSE, HKBKCE 4
• Text file – seq of characters organized into
lines
• Source file – seq of subroutines & functions
each of which is further organized as
declarations followed by executable
statements
• Object file – seq of bytes organized into blocks
understandable by the system’s linker
• Executable file – series of code sections that
the loader can bring into memory and execute
File System - OS by JJ @CSE, HKBKCE 5
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
File System - OS by JJ @CSE, HKBKCE 6
File Operations
File is an abstract data type and has the following Sys
Calls
• Create (2step: space in, entry to directory structure)
• Write (write pointer to location of the file)
• Read (read & current file position pointers)
• Reposition within file (file seek)
• Delete (releasing the file space from directory)
• Truncate (file space released but attributes are kept)
• 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
File System - OS by JJ @CSE, HKBKCE 7
Open Files (of open file table)
• Several pieces of data are needed to
manage 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
File System - OS by JJ @CSE, HKBKCE 8
Open File Locking
• Provided by some operating systems and file
systems
• 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 System - OS by JJ @CSE, HKBKCE 9
File Types – Name, Extension
File System - OS by JJ @CSE, HKBKCE 10
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
File System - OS by JJ @CSE, HKBKCE 11
Sequential-access File
File System - OS by JJ @CSE, HKBKCE 12
Simulation of Sequential Access on a Direct-access File
File System - OS by JJ @CSE, HKBKCE 13
Example of Index and Relative Files
File System - OS by JJ @CSE, HKBKCE 14
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
Backups of these two structures are kept on tapes
File System - OS by JJ @CSE, HKBKCE 15
A Typical File-system Organization
File System - OS by JJ @CSE, HKBKCE 16
Operations Performed on Directory
• Search for a file
• Create a file
• Delete a file
• List a directory
• Rename a file
• Traverse the file system
File System - OS by JJ @CSE, HKBKCE 17
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 Java programs, all
games, …)
File System - OS by JJ @CSE, HKBKCE 18
Single-Level Directory
• A single directory for all users
Naming problem
Grouping problem
File System - OS by JJ @CSE, HKBKCE 19
Two-Level Directory
• Separate directory for each user
n Path name using User File Directory (UFD) thru Master FD
n Can have the same file name for different user
n No grouping capability
n For searching a file – User name & file name (search path)
File System - OS by JJ @CSE, HKBKCE 20
Tree-Structured Directories
File System - OS by JJ @CSE, HKBKCE 21
Tree-Structured Directories (Cont)
• Efficient searching
• Grouping Capability
• Current directory (working directory)
– cd /spell/mail/prog
– type list
File System - OS by JJ @CSE, HKBKCE 22
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
Deleting “mail” deleting the entire subtree rooted by “mail”
File System - OS by JJ @CSE, HKBKCE 23
Acyclic-Graph Directories
• Have shared subdirectories and files
File System - OS by JJ @CSE, HKBKCE 24
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
• New directory entry type
– Link – another name (pointer) to an existing file
– Resolve the link – follow pointer to locate the file
File System - OS by JJ @CSE, HKBKCE 25
General Graph Directory
File System - OS by JJ @CSE, HKBKCE 26
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
File System - OS by JJ @CSE, HKBKCE 27
File System Mounting
• A file system must be mounted
before it can be accessed
• Mount procedure is straight forward
– OS is given a name of the device and
mount point (the location within the file
structure where the file system is to be
attached)
• Mount point is an empty directory
File System - OS by JJ @CSE, HKBKCE 28
(a) Existing. (b) Unmounted Partition
File System - OS by JJ @CSE, HKBKCE 29
Mount Point
File System - OS by JJ @CSE, HKBKCE 30
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
Multiple Users
• User IDs identify users, allowing permissions and
protections to be per-user
• Group IDs allow users to be in groups, permitting
group access rights
File System - OS by JJ @CSE, HKBKCE 31
Remote File Systems
• Uses networking to allow file system access between
systems
– Manually via programs like FTP
– Automatically, seamlessly using distributed file
systems
– Semi automatically via the world wide web
Client-server: model allows clients to mount remote file
systems from servers
– Client and user-on-client identification is insecure or
complicated (ip Spoofing)
– NFS is standard UNIX client-server file sharing protocol
– CIFS is standard Windows protocol
– Standard operating system file calls are translated into
remote calls
File System - OS by JJ @CSE, HKBKCE 32
Distributed Information Systems:
• distributed naming services such as LDAP, DNS, NIS,
Active Directory implement unified access to
information needed for remote computing
Failure Modes :
• 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 include all
information in each request, allowing easy recovery
but less security
File System - OS by JJ @CSE, HKBKCE 33
Consistency semantics: specify how multiple users are to
access a shared file simultaneously
• Similar to process synchronization algorithms
• Tend to be less complex due to disk I/O and network
latency (for remote file systems
– Andrew File System (AFS) implemented complex
remote file sharing semantics
– Unix file system (UFS) implements:
• Writes to an open file visible immediately to other
users of the same open file
• Sharing file pointer to allow multiple users to read
and write concurrently
– AFS has session semantics
• Writes only visible to sessions starting after the file
is closed
File System - OS by JJ @CSE, HKBKCE 34
Protection
• File owner/creator should be able to control:
– what can be done (physical damage)
– by whom (protection)
• Types of access
– Read
– Write
– Execute
– Append
– Delete
– List – the name & attributes of the file
File System - OS by JJ @CSE, HKBKCE 35
Access Control
• Mode of access: read, write, execute
• Three classes of users RWX
a) owner access 7 111
b) group access 6 110
c) public access 1 001
• 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.
• Access control list (ACL) specifies user name and type of
access allowed for each user
File System - OS by JJ @CSE, HKBKCE 36
Windows XP Access-control List Management
File System - OS by JJ @CSE, HKBKCE 37
File System Implementation
Chapter 2
File System - OS by JJ @CSE, HKBKCE 38
File System Implementation
• File-System Structure
• File-System Implementation
• Directory Implementation
• Allocation Methods
• Free-Space Management
File System - OS by JJ @CSE, HKBKCE 39
File-System Structure
To improve I/O efficiency, I/O transfers b/w memory & disk
are performed in units of blocks.
block has one or more sector
sectors vary from 32 to 4096 bytes(default 512)
• File structure
– Logical storage unit
– Collection of related information
• File system resides on secondary storage (disks)
• File system organized into layers
• File control block – storage structure consisting of
information about a file
File System - OS by JJ @CSE, HKBKCE 40
Layered File System
File System - OS by JJ @CSE, HKBKCE 41
A Typical File Control Block
File System - OS by JJ @CSE, HKBKCE 42
File System Implementation
Overview
• On disk the file system may contain info of
– Boot control block
– Volume control block (no. of blocks /partition, size
of the block, free block counter & pointers)
– Master file table (file names and associated inode nos)
Created file -> it must be opened first -> open () call
passes file name into file system -> open() system
call searches system wide open file table -> if it is
used by other ->per process open file table entry
File System - OS by JJ @CSE, HKBKCE 43
• System wide open file table
– Contains a copy of the FCB of each open file
• Per process open file table
– Contains pointer to the appropriate entry in the
system wide open file table
– When a process closes the file the entry is
removed
File System - OS by JJ @CSE, HKBKCE 44
In-Memory File System Structures
File System - OS by JJ @CSE, HKBKCE 45
Virtual File Systems
• Virtual File Systems (VFS) provide an object-
oriented way of implementing file systems.
• VFS allows the same system call interface (the API)
to be used for different types of file systems.
• The API is to the VFS interface, rather than any
specific type of file system.
• VFS functions
– Abstraction on interfaces
– Vnode: vfs based file representation structure which
contains a numerical designator for network wide file.
File System - OS by JJ @CSE, HKBKCE 46
Schematic View of Virtual File System
File System - OS by JJ @CSE, HKBKCE 47
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
File System - OS by JJ @CSE, HKBKCE 48
Allocation Methods
• An allocation method refers to how disk
blocks are allocated for files:
• Contiguous allocation
• Linked allocation
• Indexed allocation
File System - OS by JJ @CSE, HKBKCE 49
Contiguous Allocation
• Each file occupies a set of contiguous blocks
on the disk
• Simple – only starting location (block #) and
length (number of blocks) are required
• Random access
• Files cannot grow(no dynamic allocation)
• External fragmentation problem solved thru
file compaction
File System - OS by JJ @CSE, HKBKCE 50
Contiguous Allocation of Disk Space
File System - OS by JJ @CSE, HKBKCE 51
• Extent-Based Systems
– Many newer file systems (I.e. Veritas File System)
use a modified contiguous allocation scheme
– Extent-based file systems allocate disk blocks in
extents
– An extent is a contiguous block of disks
– Extents are allocated for file allocation
– A file consists of one or more extents.
File System - OS by JJ @CSE, HKBKCE 52
Linked Allocation
• Each file is a linked list of disk blocks: blocks may be
scattered anywhere on the disk.
• Simple – need only starting address
• Free-space management system – no waste of space
• No random access
• File-allocation table (FAT)
• Space required for pointers. To solve use clusters
• Solves external fragmentation
File System - OS by JJ @CSE, HKBKCE 53
Linked Allocation
File System - OS by JJ @CSE, HKBKCE 54
File-Allocation Table
File System - OS by JJ @CSE, HKBKCE 55
Indexed Allocation
• Brings all pointers together into the index
block.
• Random access
• Dynamic access without external
fragmentation, but have overhead
index table
of index block.
• Mapping from logical to physical in a file of
maximum size of 256K words and block size
of 512 words. We need only 1 block for index
table
File System - OS by JJ @CSE, HKBKCE 56
Example of Indexed Allocation
File System - OS by JJ @CSE, HKBKCE 57
Indexed Allocation – Mapping (Cont.)
outer-index
index table file
File System - OS by JJ @CSE, HKBKCE 58
Combined Scheme: UNIX (4K bytes per block)
File System - OS by JJ @CSE, HKBKCE 59
Free-Space Management
• Bit vector (n blocks)
0 1 2 n-1
…
0 block[i] free
bit[i] =
1 block[i] occupied
Block number calculation
(number of bits per word) *
(number of 0-value words) +
offset of first 1 bit
File System - OS by JJ @CSE, HKBKCE 60
• Bit map requires extra space
– Example:
block size = 212 bytes
disk size = 230 bytes (1 gigabyte)
n = 230/212 = 218 bits (or 32K bytes)
• Easy to get contiguous files
• Linked list (free list)
– Cannot get contiguous space easily
– No waste of space
• Grouping - collect free addresses
• Counting –
File System - OS by JJ @CSE, HKBKCE 61
• Need to protect:
– Pointer to free list
– Bit map
• Must be kept on disk
• Copy in memory and disk may differ
• Cannot allow for block[i] to have a situation where
bit[i] = 1 in memory and bit[i] = 0 on disk
– Solution:
• Set bit[i] = 1 in disk
• Allocate block[i]
• Set bit[i] = 1 in memory
File System - OS by JJ @CSE, HKBKCE 62