Emery Berger Operating Systems CMPSCI 377 Lecture 17: File Systems II
Download
Report
Transcript Emery Berger Operating Systems CMPSCI 377 Lecture 17: File Systems II
Operating Systems
CMPSCI 377
Lecture 17: File Systems II
Emery Berger
University of Massachusetts, Amherst
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
Outline
File Systems Implementation
How disks work
How to organize data (files) on disks
Data structures
Placement of files on disk
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
2
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
3
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
4
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
5
Outline
File Systems Implementation
How disks work
How to organize data (files) on disks
Data structures
Placement of files on disk
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
6
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?
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
7
On-Disk Data Structures
File descriptor: structure used to describe
where file is on disk and attributes
Most systems fit following profile:
Must be stored on disks just like files
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
8
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
9
Contiguous Allocation:
Pros & Cons
Advantages
Disadvantages
Simple
Access time? Number of seeks?
Changing file sizes
Fragmentation? Disk management?
Examples: IBM OS/360, write-only disks,
early PCs
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
10
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
11
Linked Files: Pros & Cons
Advantages
Disadvantages:
Fragmentation?
File size changes?
Efficiently supports which type of access?
Does not support which type of access? Why?
Number of seeks?
Examples: MS-DOS
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
12
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
13
Indexed Files: Pros & Cons
Advantages
Wastes very little space
Sequential & random access: easy
Disadvantages
Sets maximum file size
Lots of seeks (why?)
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
14
Multilevel Indexed Files
Each file descriptor contains
14 block pointers
First 12 pointers point to data
blocks
13th pointer: one indirection
14th pointer: two indirections
Points to block of 1024
pointers to 1024 more data
blocks
Points to block of pointers to
indirect blocks
Used in BSD UNIX 4.3
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
15
Multilevel Indexed Files, Zoomed In
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
16
Multilevel Indexed Files:
Pros & Cons
Advantages
Disadvantages
Simple to implement
Supports incremental file growth
Small files?
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?
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
17
Free-Space Management: Bitmaps
Need free-space list to keep track of which
disk blocks are free
One approach: bitmap
Akin to free-list for main memory
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
18
Free-Space Management
Problems:
Space: Bitmap has big RAM footprint
Performance: Slow if most of disk is in use
Alternative: link together free blocks
80GB disk, 512 byte sectors = 5Mb
Head of list – cached in kernel memory
Each block contains next pointer
Cost of allocation? Freeing? Allocating
consecutive blocks?
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
19
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
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
20
Next Time
I/O Systems
UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science
21