One Seek File System
-
Upload
simone-strong -
Category
Documents
-
view
16 -
download
0
description
Transcript of One Seek File System
One Seek File System
Sharath R. Cholleti
Center for Distributed Object ComputingDepartment of Computer Science and Engineering
Washington University
Fall 03 E71 CS 6785 Programming Languages Seminar
07 Nov 2003
Sharath R. Cholleti
Outline
• Fixed size blocks file system• Extent based file system• Buddy system• Buddy file system• Sum of powers of 2 blocks• Experiments• Heap manager algorithm• Defragmentation• Bounds
Sharath R. Cholleti
Fixed size blocks
• Blocks could be non-contiguous• Could be spread all over the disk• Number of seeks proportional to file size
– O(S)
Sharath R. Cholleti
Extent based File System
• Limited number of extents per file• An extent can be of arbitrarily large• Number of seeks is limited
– O(1)
• Problems– Difficult to predict the size of the extents
• Cross the limit of number of extents per file– Variable size gives rise to fragmentation
• DTSS – shown to be practical without too much internal or external fragmentation
Sharath R. Cholleti
Knuth’s Buddy System
• Free lists segregated by size
128
64
32
16
8
4
2
1
• All the requests are rounded up to a power of 2
Sharath R. Cholleti
Buddy System (1)
• Begin with one large block
• Suppose we want a block of size 8
128
64
32
16
8
4
2
1
Sharath R. Cholleti
Buddy System (2)
• Begin with one large block
• Suppose we want a block of size 8
• Subdivide recursively
128
64
32
16
8
4
2
1
Sharath R. Cholleti
Buddy System (3)
• Begin with one large block
• Suppose we want a block of size 8
• Subdivide recursively
128
64
32
16
8
4
2
1
Sharath R. Cholleti
Buddy System (4)
• Begin with one large block
• Suppose we want a block of size 8
• Subdivide recursively
128
64
32
16
8
4
2
1
Sharath R. Cholleti
Buddy System (5)
• Begin with one large block
• Suppose we want a block of size 8
• Subdivide recursively
• 2 blocks of size 8
128
64
32
16
8
4
2
1
Sharath R. Cholleti
Buddy System (6)
• Begin with one large block
• Suppose we want a block of size 8
• Subdivide recursively• 2 blocks of size 8• One of those given to
the program
128
64
32
16
8
4
2
1
Given to the program
Sharath R. Cholleti
Buddy System (7)
• Coalescing• Only buddies coalesce 128
64
32
16
8
4
2
1
Deallocated
Sharath R. Cholleti
Buddy File System
• Round the file size to a power of 2• Only one large block
– Mostly only 1 seek
• Fast allocation• Deallocation – coalescing with its buddy• High internal fragmentation
– Worse case almost 50%– Average 25%
Sharath R. Cholleti
Buddy System: Tree Notation
16
8
4
2
1
Allocate block of size 1
Free
Occupied
Sharath R. Cholleti
Buddy System: Tree Notation(2)
16
8
4
2
1
Allocate block of size 1
Free
Occupied
Sharath R. Cholleti
Buddy System: Tree Notation(3)
16
8
4
2
1
Allocate block of size 1
Free
Occupied
Sharath R. Cholleti
Buddy System: Tree Notation(4)
16
8
4
2
1
Allocate block of size 1
Free
Occupied
Sharath R. Cholleti
Buddy System: Tree Notation(6)
16
8
4
2
1
Allocate block of size 4
Free
Occupied
Sharath R. Cholleti
Sum of powers of 2 blocks
• Buddy blocks of different sizes• 13 = 8 + 4 + 1
1
2
4
8
16
32
Free
Occupied
Sharath R. Cholleti
Allocation as Sum of powers of 2 blocks
• Internal fragmentation same as file system with blocks of equal size
• Buddy type coalescing helps control the external fragmentation
• Number of seeks is O(log S)• What if allocate the blocks contiguously?• Or make it contiguous after allocation• Only one seek necessary
Sharath R. Cholleti
Experiments
• CEC data• user file sizes• Usual (blocks of same size) vs Buddy vs Sum of
powers of 2– Total blocks (segments)– Wasted space– Min/avg/max number of segments
Sharath R. Cholleti
Results
• Sum of powers of 2– Much lesser internal fragmentation compared to
buddy– Very few blocks compared to fixed block size file
system
• Experiments to limit the number of segments to a constant
Sharath R. Cholleti
Heap Manager Algorithm
1 02
1 4
5
2 1
3
0 0
0
3
8
1
2
4
8
16
Sharath R. Cholleti
Defragmentation
• Need to allocate a block of size 8 • No free block of size 8 -- relocate
1
2
4
8
16
32
Free
Occupied
Sharath R. Cholleti
Defragmentation (2)
• Need to allocate a block of size 8• No free block of size 8 -- relocate
1
2
4
8
16
32
Free
Occupied
Sharath R. Cholleti
Cost
• M – disk size• Allocation O(logM)• Deallocation O(logM)• Relocation O(slogM) – file of size s
Sharath R. Cholleti
Defragmentation Theory Assumptions
• All files are stored contiguously• Each file is stored big to small• File of size S, 2^n<S<=2^(n+1), lies entirely
within a buddy block of 2^(n+1)• Unit of the file is a block• There is a way to allocate or relocate a file
Sharath R. Cholleti
Bound on relocated file size
• For the relocation to be minimum, allocation of a file of size 2^n does not relocate file of size greater than 2^(n-1)
• Proof:– X: a file or a set of files– R(X): number of blocks moved to relocate X
Sharath R. Cholleti
Proof (cont)
a EDB
R = R(a) + R(B)
= |a| + R(D) + R(B)
> |E| + R(D) + R(B)
Sharath R. Cholleti
Worst case relocation file size
• In worst case, to allocate a file of size 2^n, two files of size 2^(n-1) are relocated
Sharath R. Cholleti
Worst Case Defragmentation
• Worst-case relocation for a file of size S– SlogS blocks
• R(S) = S + 2*R(S/2)– 2(S-1) files
• R(S) = 1 + 2*R(S/2)