210 likes | 426 Views
Operating Systems CMPSCI 377 Lecture 16: File Systems II. Emery Berger University of Massachusetts, Amherst. Outline. File Systems Implementation How disks work How to organize data (files) on disks Data structures Placement of files on disk. Disk Surface Layout.
E N D
Operating SystemsCMPSCI 377Lecture 16: File Systems II Emery Berger University of Massachusetts, Amherst
Outline • File Systems Implementation • How disks work • How to organize data (files) on disks • Data structures • Placement of files on disk
Disk Surface Layout • Tracks: concentric rings on disk • bits laid out serially on tracks • Tracks split into sectors or blocks • Minimum unit of transfer from disk
Disk Pack: Multiple Disks • Disks organized in disk pack = stack of platters • Use both sides of platters • Two read-write heads at end of each arm • Cylinders =matching sectors on each surface
Cost of Disk Operations In addition to CPU time to start disk operation: • Latency: time to initiate disk transfer • Seek time: time to position head over correct cylinder • Rotational time: time for correct sector to rotate under disk head • Bandwidth: rate of I/O transfer of sectors once initiated
Outline • File Systems Implementation • How disks work • How to organize data (files) on disks • Data structures • Placement of files on disk
File Organization on Disk • File system maps file blocks to disk location • (file 0, block 0) = (platter 0, cylinder 0, sector 0) • Key performance issues: • Support sequential and random access • What data structure is best for maintaining file location information? • How do we lay out files on the disk?
On-Disk Data Structures • File descriptor: structure used to describe where file is on disk and attributes • Must be stored on disks just like files • Most systems fit following profile: • Most files are small • Most disk space taken up by large files • I/O operations target both small & large • Per-file cost must be low, but large files must also have good performance
Contiguous Allocation • Operating system maintains ordered list of free disk blocks • OS allocates contiguous chunk of free blocks when it creates a file • Only need to store start location & size in file descriptor
Contiguous Allocation:Pros & Cons • Advantages • Simple • Access time? Number of seeks? • Disadvantages • Changing file sizes • Fragmentation? Disk management? • Examples: IBM OS/360, write-only disks, early PCs
Linked Files • Maintain list of all free sectors/blocks • In file descriptor, keep pointer to first sector/block • In each sector, keep pointer to next sector
Linked Files: Pros & Cons • Advantages • Fragmentation? • File size changes? • Efficiently supports which type of access? • Disadvantages: • Does not support which type of access? Why? • Number of seeks? • Examples: MS-DOS
Indexed Files • OS keeps array of block pointers for each file • User or OS declares maximum length of file created • OS allocates array to hold pointers to all blocks when it creates file • But allocates blocks only on demand • OS fills pointers as it allocates blocks
Indexed Files: Pros & Cons • Advantages • Wastes very little space • Sequential & random access: easy • Disadvantages • Sets maximum file size • Lots of seeks (why?)
Multilevel Indexed Files • Each file descriptor contains 14 block pointers • First 12 pointers point to data blocks • 13th pointer: one indirection • Points to block of 1024 pointers to 1024 more data blocks • 14th pointer: two indirections • Points to block of pointers to indirect blocks • Used in BSD UNIX 4.3
Multilevel Indexed Files:Pros & Cons • Advantages • Simple to implement • Supports incremental file growth • Small files? • Disadvantages • Indirect access: inefficient for random access to very large files • Lots of seeks (data not contiguous) • Is file size bounded? • What could OS do to get more contiguous memory?
Free-Space Management: Bitmaps • Need free-space list to keep track of which disk blocks are free • Akin to free-list for main memory • One approach: bitmap • One bit per block on disk • Bit = 1 , block is free • Easy to find any page free in next 32 bits • Marking block free very simple
Free-Space Management • Problems: • Space: Bitmap has big RAM footprint • 80GB disk, 512 byte sectors = 5Mb • Performance: Slow if most of disk is in use • Alternative: link together free blocks • Head of list – cached in kernel memory • Each block contains next pointer • Cost of allocation? Freeing? Allocating consecutive blocks?
Summary • Many of concerns & implementations of file systems similar to virtual memory implementations • Contiguous allocation: simple but... • External fragmentation, compaction, relocation... • Indexed allocation ~ page tables • Free space: managed with bitmap or linked lists
Next Time • I/O Systems