1 / 14

Contiguous Allocation of Disk Space

Contiguous Allocation of Disk Space. Linked Allocation. 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. index table.

lawson
Download Presentation

Contiguous Allocation of Disk Space

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. index table 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.

  5. Example of Indexed Allocation

  6. Indexed Allocation – Multilevel Index(Supports very large file size)  outer-index file index table

  7. Combined Scheme: UNIX inode (Example with 4K bytes per block) 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) Size:blocks, bytes link 12

  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 • Total 4198448k • (> 4 GB) • Didn’t even use triple indirect!

  9. “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! File Access With Unix inodes inodes Data blocks n usr directory bin wc (file) wc bin directory usr #2 root directory (root) 0

  10. In-Memory File System Structures Re-Visited: (Unix Case) Opening A file inode Reading A file Pointer to Memory copy Of inode Copy of inode

  11. Free-Space Management • Bit vector (n blocks) 0 1 2 n-1 … 1  block[i] free 0  block[i] occupied  bit[i] = 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 = 212 bytes disk size = 230 bytes (1 gigabyte) n = 230/212 = 218 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

More Related