Download presentation
Presentation is loading. Please wait.
Published byTyrone Walker Modified over 9 years ago
1
Contiguous Allocation of Disk Space
2
Linked Allocation
3
File-Allocation Table (DOS, others) Section of disk at start of partition Table with one entry per disk block Indexed by block# Each entry contains link to next block Special code for EOF “0” means empty block
4
Indexed Allocation Brings all pointers (for one file) together into an index block. Supports both sequential and random access (Index into table, pointer to block) Wasteful for small files (use entire block for index) But no external fragmentation Logical view. index table
5
Example of Indexed Allocation
6
Indexed Allocation – Multilevel Index (Supports very large file size) outer-index index table file
7
Combined Scheme: UNIX inode (Example with 4K bytes per block) 12 link Size:blocks, bytes One inode table per partition 64 bytes per inode Directory entries point to inode Link count Direct index supports 48k file Double indirect supports huge files (>4 GB)
8
Maximum File Size with inodes Assume 12 direct blocks, 4K blocks, 4 byte block pointer Estimate maximum addressable up to the double indirect blocks: Direct blocks (12)48k Single indirect (4096/4=1024 ptrs to blocks)4096k Double indirect (1024 of these)4194304k Total4198448k (> 4 GB) Didn’t even use triple indirect!
9
File Access With Unix inodes “Superblock” and other structures not shown “root” directory is inode #2 Directories contain pointers to inodes Access path shown to /usr/bin/wc Notice 8 disk accesses to get first block of wc! inodes (root) root directory usr directory bin directory wc (file) Data blocks usr bin wc #2 0 n
10
In-Memory File System Structures Re-Visited: (Unix Case) Opening A file Reading A file inode Copy of inode Pointer to Memory copy Of inode
11
Free-Space Management Bit vector (n blocks) … 012n-1 bit[i] = 1 block[i] free 0 block[i] occupied To find a free block: find the first non-zero word, locate first 1-bit. Block number (of first free block) is: (number of bits per word) * (number of 0-value words) + offset of first 1 bit
12
Bit Vector (Cont.) Bit map requires extra space. Example: block size = 2 12 bytes disk size = 2 30 bytes (1 gigabyte) n = 2 30 /2 12 = 2 18 bits (or 32K bytes) Easy to get contiguous files Just look for consecutive 1’s in bit map
13
Linked List of Free Space on Disk
14
Free List Approach Linked list Hard to find contiguous space easily But no waste of space Grouping Store addresses of n free blocks in the first block Last of these addresses is to a block that contains addresses of another n free blocks So many free blocks can be found at one time Counting Clusters of contiguous free blocks recorded together Keep list of first block address, count of contiguous free ones
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.