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