File system implementation

File System Implementation

·       Boot control block contains info needed by system to boot OS from that volume
·       Volume control block contains volume details
·       Directory structure organizes the files
·       Per-file File Control Block (FCB) contains many details about the file

A Typical File Control Block




File Blocks Allocation Methods

An allocation method refers to how disk blocks are allocated for files:

1.    Contiguous allocation
2.    Linked allocation
3.    Indexed allocation

1. Contiguous Allocation



2. Linked Allocation




3. Indexed Allocation




UNIX File system




Free Space Management

Bit vector of (n blocks):
Bit [ ] = 0  means  block  i   is  occupied
Bit [ ] = 1  means  block  i   is  free.

First Free block: the position of the first 1 bit:
Is Calculated as follows:  (number of 0-valued words) * (number of bits per word) + offset of first 1 bit.




Linked list (free list)
§  Cannot get contiguous space easily
§  No waste of space


Recovery

·       Use system programs to back up data from disk to another storage device
(magnetic tape, other magnetic disk, optical)
·       Recover lost file or disk by restoring data from backup

Log Structured File Systems

·       Log structured (or journaling) file systems: Record each update to the file system as a transaction
·       All transactions are written to a log
A transaction is considered committed once it is written to the log.
However, the file system may not yet be updated.
·       The transactions in the log are asynchronously written to the file system
When the file system is modified, the transaction is removed from the log.


The Sun Network File System (NFS)

·       Interconnected workstations viewed as a set of independent machines with independent file systems, which allows sharing among these file systems in a transparent manner
·       A remote directory is mounted over a local file system directory.
The mounted directory looks like an integral subtree of the local file system, replacing the subtree descending from the local directory. Files in the remote directory can then be accessed in a transparent manner.
·       Subject to access-rights accreditation, potentially any file system (or directory within a file system), can be mounted remotely on top of any local directory
·       NFS is designed to operate in a heterogeneous environment of different machines, operating systems, and network architectures; the NFS specifications independent of these media. This independence is achieved through the use of RPC primitives built on top of an External Data Representation (XDR) protocol used between two implementation-independent interfaces


Three Independent File Systems


Mounting in NFS


NFS Protocol

·       Provides a set of remote procedure calls for remote file operations
The procedures support the following operations:
ü searching for a file within a directory
ü reading a set of directory entries
ü manipulating links and directories
ü accessing file attributes
ü reading and writing files
·       NFS servers are stateless; each request has to provide a full set of arguments      
·       Modified data must be committed to the server’s disk before results are returned to the client.
·       The NFS protocol does not provide concurrency-control mechanisms

Schematic View of NFS Architecture