Back to ComputerTerms FileSystem

   * Root File System
   * Mounted File Systems
   * Boot Block or Sector
   * '''Super Block'''
      * Static parameters of the file system: FS size, Block and fragment sizes parameters affecting allocation policies
      * Problems with allocating Free blocks using the free stack.

   * 4.2BSD changes to improve efficiency and robustness.
      * '''Cylinder groups'''
      * Cylinder header information: (superblock, cylinder block, and the inodes)
      * Allocation issues in Cylinder Groups
      * Global and Local allocation routines.

== Disk Structures ==

We always have a root file system / and mounted files systems have a bit set in the inode indicating that they are mounted file systems. The inode has a device number which is looked up in the mount table.

Every file system is a seperate system resource. The first logical sector contains a boot block (sector) containing a bootstrap program. 

The '''Superblock''' contains static parameters of the file system including:

   * Size of hte file system
   * The block and fragment sizes of data
   * The free blocks list (like a stack, but maintained as a linked list orginally)

Free blocks are removed and pushed from the front of the free blocks list. '''''This allocation operation causes a files to become more and more fragmented as disk activity continues'''''. As a result BSD 7 used only 3% of the bandwidth available to the disk drive on average.

== Changes in 4.2 BSD File allocation routines ==

To improve efficiency and robustness, '''cylinder groups''' where born. Cylinder groups are 1 or more consecutive cylinders grouped together for the purpose of localizing allocation. Each cylinder group contains:

   * Superblock identical to every other cylinder group Superblock
   * Cylinder block which contains
      * Bit map of free datablocks and fragments
      * Bit map of free inodes
      * Statistics on recent progress of allocation strategies???
   * Inodes
   * Data Blocks

For Example
||Data Blocks||
||Superblock||
||Cylinder Block||
||Inodes||
||Data Blocks||

Disk allocation happens as often as possible within a cylinder group to reduce the seek time. There are two policies that are implemented: 1) Global routine to select a desired disk block and the second is a local policy routine using the specific infomration recorded in the cylinder blocks to choose a block near the requested one. Increases in efficiency of the new Fast File System up'd bandwidth usage to 30% from 3%.

Back to ComputerTerms FileSystem