Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 11: File System Implementation. 11.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 Implementation.

Similar presentations


Presentation on theme: "Chapter 11: File System Implementation. 11.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 Implementation."— Presentation transcript:

1 Chapter 11: File System Implementation

2 11.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 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 11.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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

4 11.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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 ----Data blocks---- ----Data blocks---- Master Boot Record (stage 1 bootloader) Super block Partitions (or volumes) Boot block (stage 2 bootloader) Super block Inode list

5 11.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 Each file represented by… File control block (Inode in Unix) – storage structure consisting of information about a file One inode per file

6 11.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 To open a file Must locate the Inode (file-control block) Then will know where blocks are

7 11.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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

8 11.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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())

9 11.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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 nameInode ch13io_systems.ppt0xFF3A ch2services.ppt0xA23D ch10file_system_interface.ppt0x178E ch11file_system_implementation.ppt0xADE1

10 11.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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

11 11.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 Contiguous Allocation Simple – only starting location (block #) and length (number of blocks) are required Fragmentation: dynamic storage-allocation problem

12 11.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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)

13 11.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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

14 11.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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 1 st 12 blocks directly from inode 13 th points to a block that holds nothing but addresses of data blocks 14 th double indirection 15 th triple

15 11.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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).

16 11.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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) Example: block size = 2 12 bytes disk size = 2 30 bytes (1 gigabyte) n = 2 30 /2 12 = 2 18 bits (or 32K bytes) … 012n-1 bit[i] =  0  block[i] free 1  block[i] occupied

17 11.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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

18 11.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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

19 11.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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 Grouping Counting

20 11.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 A few final issues Efficiency: buffering and caching Recovering from failures NFS Efficiency Recovery Networked File System

21 11.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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 memory- mapped IO for file access Unified virtual memory Can lead to double caching …

22 11.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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

23 11.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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 fsck Backup Restore

24 11.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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 Easy to recover from failures Simply Redo completed transactions Undo uncompleted transactions

25 11.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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 mnt Remote files-system

26 11.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 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

27 End of Chapter 11


Download ppt "Chapter 11: File System Implementation. 11.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 Implementation."

Similar presentations


Ads by Google