Chapter 11
Chapter 11
• File-System Structure
• File-System Implementation
• Directory Implementation
• Allocation Methods
• Free-Space Management
• Efficiency and Performance
• Recovery
• NFS
• Example: WAFL File System
2
Objectives
• To describe the details of implementing local file systems and directory structures
• To describe the implementation of remote file systems
• To discuss block allocation and free-block algorithms and trade-offs
3
File-System Structure
• File structure
• Logical storage unit
• Collection of related information
• File system resides on secondary storage (disks)
• Provided user interface to storage, mapping logical to physical
• Provides efficient and convenient access to disk by allowing data to be stored, located retrieved easily
• Disk provides in-place rewrite and random access
• I/O transfers performed in blocks of sectors (usually 512 bytes)
• File control block – storage structure consisting of information about a file
• Device driver controls the physical device
• File system organized into layers
4
Layered File System
5
File System Layers
6
File System Layers (Cont.)
7
File System Layers (Cont.)
8
File-System Implementation
• We have system calls at the API level, but how do we implement their functions?
• On-disk and in-memory structures
• Boot control block contains info needed by system to boot OS from that volume
• Needed if volume contains OS, usually first block of volume
• Volume control block (superblock, master file table) contains volume details
• Total # of blocks, # of free blocks, block size, free block pointers or array
• Directory structure organizes the files
• Names and inode numbers, master file table
9
File-System Implementation (Cont.)
• Per-file File Control Block (FCB) contains many details about the file
• inode number, permissions, size, dates
• NFTS stores into in master file table using relational DB structures
10
In-Memory File System Structures
• Mount table storing file system mounts, mount points, file system types
• The following figure illustrates the necessary file system structures provided by the operating systems
• Figure 12-3(a) refers to opening a file
• Figure 12-3(b) refers to reading a file
• Plus buffers hold data blocks from secondary storage
• Open returns a file handle for subsequent use
• Data from read eventually copied to specified user process memory address
11
In-Memory File System Structures
12
Partitions and Mounting
• Partition can be a volume containing a file system (“cooked”) or raw – just a sequence of blocks with no file
system
• Boot block can point to boot volume or boot loader set of blocks that contain enough code to know how to load
the kernel from the file system
• Or a boot management program for multi-os booting
• Root partition contains the OS, other partitions can hold other Oses, other file systems, or be raw
• Mounted at boot time
• Other partitions can mount automatically or manually
• At mount time, file system consistency checked
• Is all metadata correct?
• If not, fix it, try again
• If yes, add to mount table, allow access
13
Directory Implementation
17
Allocation Methods - Contiguous
• An allocation method refers to how disk blocks are allocated for files:
• Contiguous allocation – each file occupies set of contiguous blocks
• Best performance in most cases
• Simple – only starting location (block #) and length (number of blocks) are required
• Problems include finding space for file, knowing file size, external fragmentation, need for compaction off-line
(downtime) or on-line
18
Contiguous Allocation
LA/512
Block to be accessed = Q +
starting address
Displacement into block = R
19
Allocation Methods - Linked
21
Allocation Methods – Linked (Cont.)
22
Linked Allocation
• Each file is a linked list of disk blocks: blocks may be scattered anywhere on the disk
block = pointer
Mapping
Q
LA/511
R
Block to be accessed is the Qth block in the linked chain of blocks
representing the file.
23
Linked Allocation
24
File-Allocation Table
25
Allocation Methods - Indexed
• Indexed allocation
• Each file has its own index block(s) of pointers to its data blocks
• Logical view
index table
26
Example of Indexed Allocation
27
Indexed Allocation (Cont.)
• Need index table
• Random access
• Dynamic access without external fragmentation, but have overhead of index block
• Mapping from logical to physical in a file of maximum size of 256K bytes and block size of 512 bytes. We
need only 1 block for index table
Q
LA/512
R
28
Efficiency and Performance
40