* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download ch11file_system_implementation
Survey
Document related concepts
Transcript
Chapter 11: File System Implementation Implementation Looked at interface to file-system How users and processes access and modify files But what happens between the ones and zeros on the platter and that interface Layered approach Idea is that low-level format and layout of data should not change the way the user interacts with the file-system Operating System Concepts – 7th Edition, Jan 1, 2005 11.2 Silberschatz, Galvin and Gagne ©2005 File-System Structure File system resides on secondary storage (disks) To the operating: large 1-D array of “blocks” Address becomes a block ID One large array of blocks Operating System Concepts – 7th Edition, Jan 1, 2005 11.3 Silberschatz, Galvin and Gagne ©2005 Secondary Storage File-system installed on a partition (volume) Can be multiple partitions to a disk drive MBR contains disk-level information (stage one bootloader) Boot block (boot control block, kernel or loader, first block in boot partition) Volume Control Block (called a super block in UFS and a Master File Table in NTFS file systems; contains things like the number of blocks, size of blocks, etc.) Inode list Inode list Inode list Super block Boot block (stage 2 bootloader) Super block ----Data blocks---- Master Boot Record (stage 1 bootloader) Operating System Concepts – 7th Edition, Jan 1, 2005 ----Data blocks---- Partitions (or volumes) 11.4 Silberschatz, Galvin and Gagne ©2005 Each file represented by… File control block (Inode in Unix) – storage structure consisting of information about a file One inode per file Operating System Concepts – 7th Edition, Jan 1, 2005 11.5 Silberschatz, Galvin and Gagne ©2005 To open a file Must locate the Inode (file-control block) Then will know where blocks are Operating System Concepts – 7th Edition, Jan 1, 2005 11.6 Silberschatz, Galvin and Gagne ©2005 Open file tables OS keeps an open file table Also keeps one for each process Open() returns a file descriptor which is an index into this table Used for reads and writes Operating System Concepts – 7th Edition, Jan 1, 2005 11.7 Silberschatz, Galvin and Gagne ©2005 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. Same syntax regardless of FS (read(), write(), open(), close()) Operating System Concepts – 7th Edition, Jan 1, 2005 11.8 Silberschatz, Galvin and Gagne ©2005 Directory Implementation Directory (dih-rek-tuh-ree) a book alphabetically listing persons and organizations, usually with information about how to contact them In file-systems used to organize and locate files Usually implemented as a file itself Contains Linear list of file names with pointer to the data blocks. Hash Table – linear list with hash data structure. File name Inode ch13io_systems.ppt 0xFF3A ch2services.ppt 0xA23D ch10file_system_interface.ppt 0x178E ch11file_system_implementation.ppt 0xADE1 Operating System Concepts – 7th Edition, Jan 1, 2005 11.9 Silberschatz, Galvin and Gagne ©2005 Allocation Methods An allocation method refers to how disk blocks are allocated for files: How the blocks are laid out on the drive Contiguous allocation Linked allocation Indexed allocation Operating System Concepts – 7th Edition, Jan 1, 2005 11.10 Silberschatz, Galvin and Gagne ©2005 Contiguous Allocation Simple – only starting location (block #) and length (number of blocks) are required Fragmentation: dynamic storage-allocation problem Operating System Concepts – 7th Edition, Jan 1, 2005 11.11 Silberschatz, Galvin and Gagne ©2005 Linked Allocation Table points to first block Each subsequent block points to next No fragmentation but disk head must jump around to collect entire file Very early versions of file allocation table (FAT) Operating System Concepts – 7th Edition, Jan 1, 2005 11.12 Silberschatz, Galvin and Gagne ©2005 Indexed Allocation File-control block has list of every block used by disk. No external fragmentation Can make one sweep of the disk head to gather entire file Operating System Concepts – 7th Edition, Jan 1, 2005 11.13 Silberschatz, Galvin and Gagne ©2005 Index: how large can a file be? How many blocks? Contiguous and linked no limit (except addressing limitations) However many entries will fit in an inode Triple indirection 1st 12 blocks directly from inode 13th points to a block that holds nothing but addresses of data blocks 14th double indirection 15th triple Operating System Concepts – 7th Edition, Jan 1, 2005 11.14 Silberschatz, Galvin and Gagne ©2005 Index: how large can a file be? Example 12 direct-block references one single-indirection reference one double-indirection reference one triple-indirection reference How large can a file be? Assume block-size of 4096 bytes an indirection-block (a block used to hold pointers to data-blocks) can hold 1,260 entries (26 bits each). Operating System Concepts – 7th Edition, Jan 1, 2005 11.15 Silberschatz, Galvin and Gagne ©2005 Free-Space Management When it is time to request a block Must have a list of “available” or “free” blocks Unix uses a bit vector (n blocks) 0 1 2 n-1 bit[i] = … 0 block[i] free 1 block[i] occupied Example: block size = 212 bytes disk size = 230 bytes (1 gigabyte) n = 230/212 = 218 bits (or 32K bytes) Operating System Concepts – 7th Edition, Jan 1, 2005 11.16 Silberschatz, Galvin and Gagne ©2005 Bit map requires extra space 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: write ahead Set bit[i] = 1 in disk Allocate block[i] Set bit[i] = 1 in memory Disk BV ↔ Memory BV Operating System Concepts – 7th Edition, Jan 1, 2005 11.17 Silberschatz, Galvin and Gagne ©2005 Linked Free Space List on Disk Could implement free-block list with a linked-list implementation Traversal expensive Often just need the first one Operating System Concepts – 7th Edition, Jan 1, 2005 11.18 Silberschatz, Galvin and Gagne ©2005 Other free-list approaches Grouping Just keep track of the first free block It will have a list of n free blocks The last one in the list will have another list of free blocks Can acquire large numbers of blocks quickly Counting Exploits fact that usually several contiguous blocks are allocated or freed Keep a free-block list Each entry points to a free block and indicates the number of free contiguous blocks Operating System Concepts – 7th Edition, Jan 1, 2005 11.19 Grouping Counting Silberschatz, Galvin and Gagne ©2005 A few final issues Efficiency: buffering and caching Efficiency Recovering from failures NFS Recovery Networked File System Operating System Concepts – 7th Edition, Jan 1, 2005 11.20 Silberschatz, Galvin and Gagne ©2005 Efficiency and Performance Disk cache (buffer cache) – main memory can act as cache for disk (much like hi-speed cache does for memory) Would this be useful to a Web Server? Can piggy-back off of demand paging system by using memorymapped IO for file access Unified virtual memory Can lead to double caching … Operating System Concepts – 7th Edition, Jan 1, 2005 11.21 Silberschatz, Galvin and Gagne ©2005 Unified Buffer Cache A unified buffer cache uses the same page cache to cache both memory-mapped pages and ordinary file system I/O Operating System Concepts – 7th Edition, Jan 1, 2005 11.22 Silberschatz, Galvin and Gagne ©2005 Recovery Consistency checking – compares data in directory structure with data blocks on disk, and tries to fix inconsistencies Use 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 Backup fsck Restore Operating System Concepts – 7th Edition, Jan 1, 2005 11.23 Silberschatz, Galvin and Gagne ©2005 Log Structured File Systems Log structured (or journaling) file systems record each update to the file system as a transaction Journaling Similar to DB techniques covered in synchronization chapter Example of Log-Based File Systems Linux ext3 Windows NTFS Easy to recover from failures Simply •Redo completed transactions •Undo uncompleted transactions Operating System Concepts – 7th Edition, Jan 1, 2005 11.24 Silberschatz, Galvin and Gagne ©2005 The Sun Network File System (NFS) Ability to mount a remote file-system into a local file-system NFS instructions and protocols carried over TCP/IP (UDP) Server serving up a shared FS must maintain an export list bin / usr Remote files-system mnt Operating System Concepts – 7th Edition, Jan 1, 2005 11.25 Silberschatz, Galvin and Gagne ©2005 NFS Protocol File-system appears local Commands are interpreted and sent as Remote Procedure Calls to remote system The same Virtual File System (VFS) layer that allows interfacing with different file-system implementations is used for NFS Operating System Concepts – 7th Edition, Jan 1, 2005 11.26 Silberschatz, Galvin and Gagne ©2005 End of Chapter 11