Filesystems 3

Intro / Flashback (04:15)

Go Back

xv6 filesystem (01:39)

Go Back

xv6 directories (00:17)

Go Back

Free block map (00:23)

Go Back

Finding free inodes (00:24)

Go Back

xv6 chooses first free block/inode (00:45)

Go Back

Direct and indirect blocks (04:05)

Go Back

Inode data block addresses

  • Inode stores an array of length NDIRECT + 1
    • Say NDIRECT is 12
    • indexes 0-11 are pointers to data blocks
      • Actually just ~0-based indexes of the disk
        • Not really 0 cuz of header block
    • index 12 points to an indirect block
      • Same size as the other data blocks
      • Filled with another array of direct pointers
        • How many?
        • (Block Size) / (Pointer Size)
          • xv6:
            • 512-byte blocks
            • 2-byte ptrs
            • stores 256 2-byte ptrs

So how much data?

  • 12 direct blocks, 512 bytes each
    • 6144 bytes
  • 1 indirect block --> 256 ptrs to 512-byte blocks
    • 131,072 bytes

Why have any Direct blocks? (Faster & Less space for small files) (03:12)

Go Back

ext2 filesystem (00:43)

Go Back

ext2 inode structure (01:17)

Go Back

Double / Triple indirect (04:19)

Go Back

Exercise (09:20)

Go Back

  • 12 direct (12 K)
  • 1 indirect
    • 256 ptrs (256K)
  • 1 double indirect
    • 256 * 256 K
  • 1 triple indirect
    • 256 * 256 * 256 K
  • 16,843,020 (~16K)

Sparse files (03:01)

Go Back

Hard links (02:53)

Go Back

Soft/Symbolic links (01:33)

Go Back

xv6 FS pros vs FAT (00:53)

Go Back

Exercise: How many inodes/blocks? (07:55)

Go Back

xv6 filesystem performance issues (01:29)

Go Back

FFS (Fast Filesystem) (00:23)

Go Back

Block groups (02:48)

Go Back

Allocation within block groups (01:17)

Go Back

FFS block groups (01:42)

Go Back

Fragments (03:07)

Go Back

Non-FFS changes (00:27)

Go Back

Extents (02:14)

Go Back

Problem with extents (01:03)

Go Back

Allocating extents (00:44)

Go Back

Holes (00:36)

Go Back

Efficient seeking with extents (non-binary search trees) (10:19)

Go Back

xv6 problem solving summary (01:12)

Go Back