1 / 27

Chapter 11: File System Implementation

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

Download Presentation

Chapter 11: File System Implementation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 11: File System Implementation

  2. 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

  3. 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

  4. 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---- ----Data blocks---- Master Boot Record (stage 1 bootloader) Partitions (or volumes)

  5. Each file represented by… • File control block(Inode in Unix) – storage structure consisting of information about a file • One inode per file

  6. To open a file • Must locate the Inode (file-control block) • Then will know where blocks are

  7. 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 Open file tables

  8. 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())

  9. 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.

  10. 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

  11. Contiguous Allocation • Simple – only starting location (block #) and length (number of blocks) are required • Fragmentation: dynamic storage-allocation problem

  12. 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)

  13. 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

  14. 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

  15. 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).

  16. 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) • Example: block size = 212 bytes disk size = 230 bytes (1 gigabyte) n = 230/212 = 218 bits (or 32K bytes) 0 1 2 n-1 … 0  block[i] free 1  block[i] occupied bit[i] = 

  17. 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

  18. Could implement free-block list with a linked-list implementation Traversal expensive Often just need the first one Linked Free Space List on Disk

  19. 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 Other free-list approaches Grouping Counting

  20. Efficiency: buffering and caching Recovering from failures NFS A few final issues Efficiency Recovery Networked File System

  21. 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 memory-mapped IO for file access • Unified virtual memory • Can lead to double caching …

  22. Unified Buffer Cache • A unified buffer cache uses the same page cache to cache both memory-mapped pages and ordinary file system I/O

  23. 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

  24. 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

  25. 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

  26. 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

  27. End of Chapter 11

More Related