cs 333 introduction to operating systems class 19 - file system performance jonathan walpole...
Post on 22-Dec-2015
216 views
TRANSCRIPT
![Page 1: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/1.jpg)
CS 333Introduction to Operating Systems
Class 19 - File System Performance
Jonathan WalpoleComputer Science
Portland State University
![Page 2: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/2.jpg)
Improving file system performance
Memory mapped files Avoid system call overhead
Buffer cache Avoid disk I/O overhead
Careful data placement on disk Avoid seek overhead
Log structured file systems Avoid seek overhead for disk writes (reads hit in
buffer cache)
![Page 3: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/3.jpg)
Buffer cache
Observations: Once a block has been read into memory it can be
used to service subsequent read/write requests without going to disk
Multiple file operations from one process may hit the same file block
File operations of multiple processes may hit the same file block
Idea: maintain a “block cache” (or “buffer cache”) in memory
When a process tries to read a block check the cache first
![Page 4: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/4.jpg)
Buffer cache
Cache organization: Many blocks (e.g., 1000s) Indexed on block number
device block#
key
![Page 5: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/5.jpg)
Buffer cache
Cache organization: Many blocks (e.g., 1000s) Indexed on block number
For efficiency, use a hash table
device block#
key
![Page 6: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/6.jpg)
Buffer Cache
![Page 7: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/7.jpg)
Buffer cache
Need to write a block? Modify the version in the block cache
But when should we write it back to disk?
![Page 8: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/8.jpg)
Buffer cache
Need to write a block? Modify the version in the block cache.
But when should we write it back to disk? Immediately
Later
![Page 9: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/9.jpg)
Buffer cache
Need to write a block? Modify the version in the block cache.
But when should we write it back to disk? Immediately
• “Write-through cache” Later
• The Unix “synch” syscall
![Page 10: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/10.jpg)
Buffer cache
Need to write a block? Modify the version in the block cache.
But when should we write it back to disk? Immediately
• “Write-through cache” Later
• The Unix “synch” syscall
What if the system crashes? Can the file system become inconsistent?
![Page 11: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/11.jpg)
Buffer cache
Need to write a block? Modify the version in the block cache.
But when should we write it back to disk? Immediately
• “Write-through cache” Later
• The Unix “synch” syscall
What if system crashes? Can the file system become inconsistent?
Write directory and i-node info immediately Okay to delay writes to files
• Background process to write dirty blocks
![Page 12: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/12.jpg)
File system performance
How does a buffer cache improve file system performance?
![Page 13: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/13.jpg)
Careful data placement
Idea Break disk into regions
• “Cylinder Groups” Put blocks that are “close together” in the same
cylinder group• Try to allocate i-node and blocks in the file within
the same cylinder group
![Page 14: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/14.jpg)
Cylinder groups
![Page 15: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/15.jpg)
File system performance
How does disk space allocation based on cylinder groups affect file system performance?
![Page 16: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/16.jpg)
Log-structured file systems
Observation Buffer caches are getting larger For a “read”
• Increasing probability the block is in the cache The buffer cache effectively filters out most reads
Conclusion: Most disk I/O is “write” operations!
So how well do our file systems perform for a write-dominated workload
Is strategy for data placement on disk appropriate?
![Page 17: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/17.jpg)
Log-structured file systems
Problem: The need to update disk blocks “in place” forces
writes to seek to the location of the block
Idea: Why not just write a new version of the block and
modify the inode to point to that one instead This way we can write the block wherever the
read/write head happens to be located, and avoid a seek!
But … Wouldn’t we have to seek to update the inode? Maybe we could make a new version of that too?
![Page 18: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/18.jpg)
Log-structured file systems
What is a “log”? A log of all actions
![Page 19: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/19.jpg)
Log-structured file systems
What is a “log”? A log of all actions
The entire disk becomes a log of disk writes
![Page 20: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/20.jpg)
Log-structured file systems
What is a “log”? A log of all actions
The entire disk becomes a log of disk writes
Approach All writes are buffered in memory Periodically all dirty blocks are written ... to the end
of the log• The i-node is modified ... to point to the new
position of the updated blocks
![Page 21: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/21.jpg)
Log-structured file systems
All the disk is a log. What happens when the disk fills up???
![Page 22: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/22.jpg)
Log-structured file systems
All the disk is a log What happens when the disk fills up? How do we reclaim space for old versions of blocks? How do we ensure that the disk’s free space doesn’t
become fragmented?• If it did, we would have to seek to a free block
every time we wanted to write anything! How do we ensure that the disk always has large
expanses of contiguous free blocks• If it does we can write out the log to contiguous
blocks with no seek or rotational delay overhead• Optimal disk throughput for writes
![Page 23: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/23.jpg)
Log-structured file systems
A “cleaner” process Reads blocks in from the beginning of the log
• Most of them will be free at this point Adds non-free blocks to the buffer cache These get written out to the log later
Log data is written in units of an entire track The “cleaner” process reads an entire track at a
time Efficient
![Page 24: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/24.jpg)
File system performance
How do log structured file systems improve file system performance?
![Page 25: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/25.jpg)
Some other issues
Block-size trade-off Free space management Backups File system consistency
![Page 26: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/26.jpg)
Disk space management
Must choose a disk block size... = Page Size? = Sector Size? = Track size?
![Page 27: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/27.jpg)
Disk space management
Must choose a disk block size... = Page Size? = Sector Size? = Track size?
Large block sizes: Internal fragmentation Last block has (on average) 1/2 wasted space Lots of very small files; waste is greater.
![Page 28: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/28.jpg)
Disk space management
Must choose a disk block size... = Page Size? = Sector Size? = Track size?
Large block sizes: Internal fragmentation Last block has (on average) 1/2 wasted space Lots of very small files; waste is greater.
Small block sizes: More seeks; file access will be slower.
![Page 29: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/29.jpg)
Block size tradeoff
Smaller block size? Better disk utilization Poor performance
Larger block size? Lower disk space utilization Better performance
![Page 30: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/30.jpg)
Example
A Unix System 1000 users, 1M files Median file size = 1,680 bytes Mean file size = 10,845 bytes Many small files, a few really large files
![Page 31: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/31.jpg)
Example
A Unix System 1000 users, 1M files Median file size = 1,680 bytes Mean file size = 10,845 bytes Many small files, a few really large files
Let’s assume all files are 2 KB... What happens with different block sizes? (The tradeoff will depend on details of disk
performance.)
![Page 32: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/32.jpg)
Block size tradeoff
sd
Block size
Assumption: All files are 2K bytesGiven: Physical disk properties
Seek time=10 msecTransfer rate=15 Mbytes/secRotational Delay=8.33 msec * 1/2
![Page 33: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/33.jpg)
Typical block sizes
Unix Typically 1 Kbytes 2 sectors = 1 block
MS-Dos Variable, N*512 (“cluster size”) Determined by other issues Limited number of bits for block addresses To accommodate larger disk sizes-->use bigger
blocks• FAT-12: 512, 1K, 2K, 4K• FAT-16: 2K, 4K, 8K, 16K, 32K• FAT-32: 4K, 8K, 16K, 32K
![Page 34: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/34.jpg)
Managing free blocks
Approach #1: Keep a bitmap 1 bit per disk block
Approach #2 Keep a free list
![Page 35: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/35.jpg)
Managing free blocks
Approach #1: Keep a bitmap 1 bit per disk block
• Example:– 1 KB block size– 16 GB Disk 16M blocks = 224 blocks
• Bitmap size = 224 bits 2K blocks– 1/8192 space lost to bitmap
Approach #2 Keep a free list
![Page 36: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/36.jpg)
Free list of disk blocks
Linked List of Free Blocks Each block on disk holds
A bunch of addresses of free blocks Address of next block in the list
null
![Page 37: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/37.jpg)
asd
Free list of disk blocks
Assumptions: Block size = 1K Each block addr = 4bytes Each block holds 255 ptrs to free blocks 1 ptr to the next block
This approach takes more space...But “free” blocks are used, so no real loss!
![Page 38: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/38.jpg)
Free list of disk blocks
Two kinds of blocks: Free Blocks Block containing pointers to free blocks
Always keep one block of pointers in memory. This block may be partially full.
Need a free block? This block gives access to 255 free blocks. Need more?
• Look at the block’s “next” pointer• Use the pointer block itself• Read in the next block of pointers into memory
![Page 39: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/39.jpg)
Free list of disk blocks
To return a block (X) to the free list... If the block of pointers (in memory) is not full:
• Add X to it
![Page 40: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/40.jpg)
Free list of disk blocks
To return a block (X) to the free list… If the block of pointers (in memory) is not full:
• Add X to it
If the block of pointers (in memory) is full:• Write it to out to the disk• Start a new block in memory• Use block X itself for a pointer block
– All empty pointers– Except the next pointer
![Page 41: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/41.jpg)
Free list of disk blocks
Scenario: Assume the block of pointers in memory is almost
empty. A few free blocks are needed.
![Page 42: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/42.jpg)
Free list of disk blocks
Scenario: Assume the block of pointers in memory is almost
empty. A few free blocks are needed.
• This triggers disk read to get next pointer block Now the block in memory is almost full.
![Page 43: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/43.jpg)
Free list of disk blocks
Scenario: Assume the block of pointers in memory is almost
empty. A few free blocks are needed.
• This triggers disk read to get next pointer block Now the block in memory is almost full. Next, a few blocks are freed.
![Page 44: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/44.jpg)
Free list of disk blocks
Scenario: Assume the block of pointers in memory is almost
empty. A few free blocks are needed.
• This triggers disk read to get next pointer block Now the block in memory is almost full. Next, a few blocks are freed. The block fills up
• This triggers a disk write of the block of pointers.
![Page 45: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/45.jpg)
Free list of disk blocks
Scenario: Assume the block of pointers in memory is almost
empty. A few free blocks are needed.
• This triggers disk read to get next pointer block Now the block in memory is almost full. Next, a few blocks are freed. The block fills up
• This triggers a disk write of the block of pointers.
Problem: Numerous small allocates and frees, when block of
pointers is right at boundary Lots of disk I/O associated with free block mgmt!
![Page 46: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/46.jpg)
Free list of disk blocks
Solution (in text): Try to keep the block in memory about 1/2 full When the block in memory fills up...
• Break it into 2 blocks (each 1/2 full)• Write one out to disk
Similar Algorithm: Keep 2 blocks of pointers in memory at all times. When both fill up
• Write out one. When both become empty Read in one new block of pointers.
![Page 47: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/47.jpg)
Comparison: free list vs bitmap
Desirable: Keep all the blocks in one file close together.
![Page 48: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/48.jpg)
Comparison: free list vs bitmap
Desirable: Keep all the blocks in one file close together.
Free Lists: Free blocks are all over the disk. Allocation comes from (almost) random location.
![Page 49: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/49.jpg)
Comparison: free list v. bitmap
Desirable: Keep all the blocks in one file close together.
Free Lists: Free blocks are all over the disk. Allocation comes from (almost) random location.
Bitmap: Much easier to find a free block “close to” a given
position Bitmap implementation:
• Keep 2 MByte bitmap in memory• Keep only one block of bitmap in memory at a
time
![Page 50: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/50.jpg)
Quotas
For each user... OS will maintain a record.
Example:• Amount of disk space used (in blocks)
– Current– Maximum allowable
• Number of files– Current– Maximum allowable
Soft Limits: When exceeded, print a warning
Hard Limits: May not be exceeded
![Page 51: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/51.jpg)
Backing up a file system
“Incremental” Dumps
Example:• Once a month, back up the entire file system• Once a day, make a copy of all files that have
changed
Why? Faster!
To restore entire file system...1. Restore from complete dump2. Process each incremental dump in order
![Page 52: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/52.jpg)
Backing up
“Physical Dump” Start a block 0 on the disk Copy each block, in order
![Page 53: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/53.jpg)
Backing up
“Physical Dump” Start a block 0 on the disk Copy each block, in order
Blocks on the free list? Should avoid copying them
![Page 54: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/54.jpg)
Backing up
“Physical Dump” Start a block 0 on the disk Copy each block, in order
Blocks on the free list? Should avoid copying them
Bad sectors on disk? Controller remaps bad sectors: Backup utility need not do anything special!
• OS handles bad sectors:• Backup utility must avoid copying them!
![Page 55: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/55.jpg)
Backing up
“Logical Dump” Dump files and directories (Most common form)
Incremental dumping of files and directories: Will copy only files that have been modified since
last incremental backup. Must also copy the directories containing any
modified files.
![Page 56: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/56.jpg)
Incremental backup of files
Determine which fileshave been modified
/
ED
CBA
F
G H
i j
m
o p
k l
q r
n
![Page 57: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/57.jpg)
Incremental backup of files
Determine which fileshave been modified
/
ED
CBA
F
G H
i j
m
o p
k l
q r
n
![Page 58: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/58.jpg)
Incremental backup of files
Which directories mustbe copied?
/
ED
CBA
F
G H
i j
m
o p
k l
q r
n
![Page 59: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/59.jpg)
Incremental backup of files
Which directories mustbe copied?
/
ED
CBA
F
G H
i j
m
o p
k l
q r
n
![Page 60: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/60.jpg)
Incremental backup of files
Which directories mustbe copied?
/
ED
CBA
F
G H
i j
m
o p
k l
q r
n
![Page 61: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/61.jpg)
Incremental backup of files
Copy only these /
ED
CBA
F
G H
i j
m
o p
k l
q r
n
![Page 62: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/62.jpg)
Incremental backup of files
Copy only these /
ED
CBA
F
G H
i j
m
o p
k l
q r
n
![Page 63: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/63.jpg)
Recycle bins
Goal: Help the user to avoid losing data.
Common Problem: User deletes a file and then regrets it.
Solution: Move all deleted files to a “garbage” directory. User must “empty the garbage” explicitly.
This is only a partial solution; May still need recourse to backup tapes.
![Page 64: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/64.jpg)
File system consistency
Invariant: Each disk block must be
• in a file (or directory), or• on the free list
![Page 65: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/65.jpg)
File system consistency
Inconsistent States:
![Page 66: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/66.jpg)
File system consistency
Inconsistent States: Some block is not in a file or on free list (“missing
block”)
![Page 67: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/67.jpg)
File system consistency
Inconsistent States: Some block is not in a file or on free list (“missing
block”)
Some block is on free list and is in some file
![Page 68: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/68.jpg)
File system consistency
Inconsistent States: Some block is not in a file or on free list (“missing
block”)
Some block is on free list and is in some file
Some block is on the free list more than once
![Page 69: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/69.jpg)
File system consistency
Inconsistent States: Some block is not in a file or on free list (“missing
block”)
Some block is on free list and is in some file
Some block is on the free list more than once
Some block is in more than one file
![Page 70: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/70.jpg)
File system consistency
Inconsistent States: Some block is not in a file or on free list (“missing
block”)• Add it to the free list.
Some block is on free list and is in some file
Some block is on the free list more than once
Some block is in more than one file
![Page 71: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/71.jpg)
File system consistency
Inconsistent States: Some block is not in a file or on free list (“missing
block”)• Add it to the free list.
Some block is on free list and is in some file• Remove it from the free list.
Some block is on the free list more than once
Some block is in more than one file
![Page 72: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/72.jpg)
File system consistency
Inconsistent States: Some block is not in a file or on free list (“missing
block”)• Add it to the free list.
Some block is on free list and is in some file• Remove it from the free list.
Some block is on the free list more than once• (Can’t happen when using a bitmap for free
blocks.)• Fix the free list so the block appears only once.
Some block is in more than one file
![Page 73: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/73.jpg)
File system consistency
Inconsistent States: Some block is not in a file or on free list (“missing block”)
• Add it to the free list. Some block is on free list and is in some file
• Remove it from the free list. Some block is on the free list more than once
• (Can’t happen when using a bitmap for free blocks.)• Fix the free list so the block appears only once.
Some block is in more than one file• Allocate another block.• Copy the block.• Put each block in each file.• Notify the user that one file may contain data from
another file.
![Page 74: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/74.jpg)
File system consistency - reference counts
Invariant (for Unix): “The reference count in each i-node must be
equal to the number of hard links to the file.”
ABC
XY
FGC
D1: D2: D3:
File
![Page 75: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/75.jpg)
File system consistency - reference counts
Problems: Reference count is too large
Reference count is too small
![Page 76: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/76.jpg)
File system consistency - reference counts
Problems: Reference count is too large
• The “rm” command will delete a hard link.• When the count becomes zero, the blocks are
freed.• Permanently allocated; blocks can never be
reused. Reference count is too small
![Page 77: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/77.jpg)
File system consistency - reference counts
Problems: Reference count is too large
• The “rm” command will delete a hard link.• When the count becomes zero, the blocks are
freed.• Permanently allocated; blocks can never be
reused. Reference count is too small
• When links are removed, the count will go to zero too soon!
• The blocks will be added to the free list, even though the file is still in some directory!
![Page 78: CS 333 Introduction to Operating Systems Class 19 - File System Performance Jonathan Walpole Computer Science Portland State University](https://reader030.vdocuments.us/reader030/viewer/2022032704/56649d7d5503460f94a603fd/html5/thumbnails/78.jpg)
File system consistency - reference counts
Problems: Reference count is too large
• The “rm” command will delete a hard link.• When the count becomes zero, the blocks are freed.• Permanently allocated; blocks can never be reused.
Reference count is too small• When links are removed, the count will go to zero
too soon!• The blocks will be added to the free list, even
though the file is still in some directory!
Solution: Correct the reference count.