2 Outline File-System Structure File-System Implementation Directory ImplementationAllocation MethodsFree Space ManagementEfficiency and PerformanceRecoveryLog Structured File Systems
3 File System Structure File structure Logical storage unitCollection of related informationFile system resides on secondary storage (disks)File system organized into layersFile control blockStorage structure consisting of information about a file
6 File System Structures File system structures provided by the OSFile openFile read
7 Virtual File SystemsVirtual File Systems (VFS) provide an object-oriented way of implementing file systemsVFS allows the same system call interface (the API) to be used for different types of file systemsThe API is to the VFS interface, rather than any specific type of file system.
9 Directory Implementation Linear list of file names with pointer to the data blockssimple to programtime-consuming: linear search requiredHash Tablelinear list with hash data structuredecreases directory search timecollisions: situations where two file names hash to the same location
10 Allocation Methods Determines how disk blocks are allocated for files Contiguous allocationLinked allocationIndexed allocation
11 Contiguous Allocation Each file occupies a set of contiguous blocks on the diskSimple: Only starting location (block #) and length (number of blocks) are requiredAdvantage: Random accessConsDynamic storage allocation may become difficultFiles may not be allowed to grow
13 Extent-Based Systems A modified contiguous allocation scheme Extent-based file systems allocate disk blocks in extentsAn extent is a contiguous block of disksInitially, allocate contiguous disk space to a file. If the file grows, assign an extent. Keep the link to the extent in addition to the start and link in the previous slide.
14 Linked Allocation Each file is a linked list of disk blocks Blocks may be scattered anywhere on the diskpointerblock =
16 Linked Allocation Pros Cons Simple: Only needs the starting address Easy to manage free spaceNo waste of spaceConsNo random access -> slow down access
17 Indexed Allocation Brings all pointers together into the index block
18 Indexed Allocation Need index table -> Overhead Random access without external fragmentationIf max file size is fixed, the size of an index block can be determinedExampleMax file = 256K words, block size = 512 words -> Only 1 block is needed to store an index tableMulti-level of indexes can be used, if necessary, to reduce the disk space consumption by index blocksIf the file size is unlimited, link blocks of index table
20 Free-Space Management Bit vector for n blocks12n-1…0 block[i] free1 block[i] occupiedbit[i] =Block number calculation(number of bits per word) *(number of 0-value words) +offset of first 1 bit
21 Free Space Management Bit map requires extra space Example: block size = 212 bytesdisk size = 230 bytes (1 gigabyte)n = 230/212 = 218 bits (or 32K bytes)Easy to get contiguous filesLinked list (free list)Cannot get contiguous space easilyNo waste of spaceGrouping: Contiguous free blocks -> one groupCounting: Keep the count rather than links
23 Free Space Management Need to protect: Pointer to free list Bit map Must be kept on diskCopy in memory and disk may differCannot allow for block[i] to have a situation where bit[i] = 1 in memory and bit[i] = 0 on diskSolution:Set bit[i] = 1 in diskAllocate block[i]Set bit[i] = 1 in memory
24 Efficiency and Performance Efficiency depends on:disk allocation and directory algorithmstypes of data kept in file’s directory entryPerformance improvement techniquesDisk cache: Separate section of main memory for frequently used blocksFree-behind and read-ahead: Techniques to optimize sequential access
25 Unified Buffer CacheA unified buffer cache uses the same page cache to cache both memory-mapped pages and ordinary file system I/O
26 RecoveryConsistency checking compares data in directory structure with data blocks on disk, and tries to fix inconsistenciesUse system programs to back up data from disk to another storage device (floppy disk, magnetic tape, other magnetic disk, optical)Recover lost file or disk by restoring data from backup
27 Log Structured File Systems Log structured (or journaling) file systems record each update to the file system as a transactionEach transaction is written to a logA transaction is considered committed once it is written to the logBut, the file system may not have been updated yet
28 Log Structured File Systems The transactions in the log are asynchronously written to the file systemAfter the file system in the disk is updated, the log record is removed from the logIf the file system crashes, all remaing committed transactions in the log must still be performedUpdates are NOT lost!