Allocation Methods
n An allocation method refers to how disk blocks are
allocated for files:
n Contiguous allocation
n Linked allocation
n Indexed allocation
Operating System Concepts
12.1
Silberschatz, Galvin and Gagne 2002
Contiguous Allocation
n Each file occupies a set of contiguous blocks on the disk.
n Simple only starting location (block #) and length
(number of blocks) are required.
n Random access.
n Wasteful of space (dynamic storage-allocation problem).
n Files cannot grow.
Operating System Concepts
12.2
Silberschatz, Galvin and Gagne 2002
1
1
Contiguous Allocation of Disk Space
Operating System Concepts
12.3
Silberschatz, Galvin and Gagne 2002
Extent-Based Systems
n Many newer file systems (I.e. Veritas File System) use a
modified contiguous allocation scheme.
n Extent-based file systems allocate disk blocks in extents .
n An extent is a contiguous block of disks. Extents are
allocated for file allocation. A file consists of one or more
extents.
Operating System Concepts
12.4
Silberschatz, Galvin and Gagne 2002
2
2
Linked Allocation
n Each file is a linked list of disk blocks: blocks may be
scattered anywhere on the disk.
block
pointer
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
12.5
Linked Allocation (Cont.)
n Simple need only starting address
n Free-space management system no waste of space
n No random access
n Mapping
Q
LA/511
R
Block to be accessed is the Qth block in the linked chain of
blocks representing the file.
Displacement into block = R + 1
File-allocation table (FAT) disk-space allocation used by MS-DOS
and OS/2.
Operating System Concepts
12.6
Silberschatz, Galvin and Gagne 2002
3
3
Linked Allocation
Operating System Concepts
12.7
Silberschatz, Galvin and Gagne 2002
File-Allocation Table
Operating System Concepts
12.8
Silberschatz, Galvin and Gagne 2002
4
4
Indexed Allocation
n Brings all pointers together into the index block.
n Logical view.
index table
Operating System Concepts
12.9
Silberschatz, Galvin and Gagne 2002
Example of Indexed Allocation
Operating System Concepts
12.10
Silberschatz, Galvin and Gagne 2002
5
5
Indexed Allocation (Cont.)
n Need index table
n Random access
n Dynamic access without external fragmentation, but have
overhead of index block.
n Mapping from logical to physical in a file of maximum size
of 256K words and block size of 512 words. We need
only 1 block for index table.
Q
LA/512
R
Q = displacement into index table
R = displacement into block
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
12.11
Indexed Allocation Mapping (Cont.)
n Mapping from logical to physical in a file of unbounded
length (block size of 512 words).
n Linked scheme Link blocks of index table (no limit on
size).
Q1
LA / (512 x 511)
R1
Q 1 = block of index table
R 1 is used as follows:
Q2
R 1 / 512
R2
Q 2 = displacement into block of index table
R 2 displacement into block of file:
Operating System Concepts
12.12
Silberschatz, Galvin and Gagne 2002
6
6
Indexed Allocation Mapping (Cont.)
n T w o - l e v e l i n d e x ( m a x i m u m f i l e s i z e i s 5 1 23 )
Q1
LA / (512 x 512)
R1
Q 1 = displacement into outer-index
R 1 is used as follows:
Q2
R 1 / 512
R2
Q 2 = displacement into block of index table
R 2 displacement into block of file:
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
12.13
Indexed Allocation Mapping (Cont.)
outer-index
index table
Operating System Concepts
12.14
file
Silberschatz, Galvin and Gagne 2002
7
7
Combined Scheme: UNIX (4K bytes per block)
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
12.15
Free-Space Management
n Bit vector
(n b l o c k s )
0
n-1
bit[i ] =
678
0
1
block[i ] free
block[i ]
occupied
Block number calculation
(number of bits per word) *
(number of 0-value words) +
offset of first 1 bit
Operating System Concepts
12.16
Silberschatz, Galvin and Gagne 2002
8
8
Free-Space Management (Cont.)
n Bit map requires extra space. Example:
b l o c k s i z e = 2 12 b y t e s
disk size = 2
n = 2
30
30
/2 12 = 2
bytes (1 gigabyte)
18
bits (or 32K bytes)
n Easy to get contiguous files
n Linked list (free list)
F Cannot get contiguous space easily
F No waste of space
n Grouping
n Counting
Operating System Concepts
12.17
Silberschatz, Galvin and Gagne 2002
Free-Space Management (Cont.)
n Need to protect:
F Pointer to free list
F Bit map
4Must be kept on disk
4 Copy in memory and disk may differ.
4 C a n n o t a l l o w f o r b l o c k [i ] t o h a v e a s i t u a t i o n w h e r e b i t [ i ] =
1 i n m e m o r y a n d b i t [ i] = 0 o n d i s k .
F Solution:
4 Set bit[i] = 1 in disk.
4 A l l o c a t e b l o c k [i ]
4 Set bit[i] = 1 i n m e m o r y
Operating System Concepts
12.18
Silberschatz, Galvin and Gagne 2002
9
9
Linked Free Space List on Disk
Operating System Concepts
12.19
Silberschatz, Galvin and Gagne 2002
Efficiency and Performance
n Efficiency dependent on:
F disk allocation and directory algorithms
F types of data kept in files directory entry
n Performance
F disk cache separate section of main memory for
frequently used blocks
F free-behind and read-ahead techniques to optimize
sequential access
F improve PC performance by dedicating section of memory
as virtual disk, or RAM disk.
Operating System Concepts
12.20
Silberschatz, Galvin and Gagne 2002
10
10