File System
File System
Interface
Dr. Zeeshan Rafi
PhD MIS, MPhil IT,
• Former Software Engineer
• Department of Computing and
Information Systems
• Istanbul University, TR
• KHAS University, TR
Chapter 10: File-System Interface
• File Concept
• Access Methods
• Directory Structure
• File-System Mounting
• File Sharing
• Protection
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 Concept
• Contiguous logical address space
• Types:
– Data
• numeric
• character
• binary
– Program
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
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 Operations
• File is an abstract data type
• Create
• Write
• Read
• Reposition within file
• 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:
– 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
• 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 Locking Example – Java API
import java.io.*;
import java.nio.channels.*;
public class LockingExample {
public static final boolean EXCLUSIVE = false;
public static final boolean SHARED = true;
public static void main(String arsg[]) throws IOException {
FileLock sharedLock = null;
FileLock exclusiveLock = null;
try {
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
// get the channel for the file
FileChannel ch = raf.getChannel();
// this locks the first half of the file - exclusive
exclusiveLock = ch.lock(0, raf.length()/2, EXCLUSIVE);
/** Now modify the data . . . */
// release the lock
exclusiveLock.release();
File Locking Example – Java API (cont)
// this locks the second half of the file - shared
sharedLock = ch.lock(raf.length()/2+1, raf.length(),
SHARED);
/** Now read the data . . . */
// release the lock
sharedLock.release();
} catch (java.io.IOException ioe) {
System.err.println(ioe);
}finally {
if (exclusiveLock != null)
exclusiveLock.release();
if (sharedLock != null)
sharedLock.release();
}
}
}
File Types – Name, Extension
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
Sequential-access File
Simulation of Sequential Access on a Direct-access File
Example of Index and Relative Files
Directory Structure
• A collection of nodes containing information about all files
Directory
Files
F1 F2 F4
F3
Fn
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
• Types of access
– Read
– Write
– Execute
– Append
– Delete
– List
Windows XP Access-control List Management
A Sample UNIX Directory Listing
End of Chapter 10