Module 11: File-System Implementation File-System Structure - - PowerPoint PPT Presentation

module 11 file system implementation
SMART_READER_LITE
LIVE PREVIEW

Module 11: File-System Implementation File-System Structure - - PowerPoint PPT Presentation

' $ Module 11: File-System Implementation File-System Structure Allocation Methods Free-Space Management Directory Implementation Efficiency and Performance Recovery & % Silberschatz and Galvin c Operating System


slide-1
SLIDE 1 ' & $ %

Module 11: File-System Implementation

  • File-System Structure
  • Allocation Methods
  • Free-Space Management
  • Directory Implementation
  • Efficiency and Performance
  • Recovery

Operating System Concepts 11.1 Silberschatz and Galvin c 1998

slide-2
SLIDE 2 ' & $ %

File-System Structure

  • File structure

– Logical storage unit – Collection of related information

  • File system resides on secondary storage (disks).
  • File system organized into layers.
  • File control block – storage structure consisting of information

about a file.

Operating System Concepts 11.2 Silberschatz and Galvin c 1998

slide-3
SLIDE 3 ' & $ %

Contiguous Allocation

  • Each file occupies a set of contiguous blocks on the disk.
  • Simple – only starting location (block #) and length (number of

blocks) are required.

  • Random access.
  • Wasteful of space (dynamic storage-allocation problem).
  • Files cannot grow.
  • Mapping from logical to physical.

Q R LA/512 – Block to be accessed = Q + starting address – Displacement into block = R

Operating System Concepts 11.3 Silberschatz and Galvin c 1998

slide-4
SLIDE 4 ' & $ %

Linked Allocation

  • Each file is a linked list of disk blocks; blocks may be scattered

anywhere on the disk.

pointer block =

Operating System Concepts 11.4 Silberschatz and Galvin c 1998

slide-5
SLIDE 5 ' & $ %
  • Allocate as needed, link together; e.g., file starts at block 9

directory 1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 start 9 end 25 file jeep

10 16 25 1 –1

13 18

Operating System Concepts 11.5 Silberschatz and Galvin c 1998

slide-6
SLIDE 6 ' & $ %

Linked Allocation (Cont.)

  • Simple – need only starting address
  • Free-space management system – no waste of space
  • No random access
  • Mapping

LA/511 Q 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 11.6 Silberschatz and Galvin c 1998

slide-7
SLIDE 7 ' & $ %

Indexed Allocation

  • Brings all pointers together into the index block.
  • Logical view

index table

Operating System Concepts 11.7 Silberschatz and Galvin c 1998

slide-8
SLIDE 8 ' & $ %

Example of Indexed Allocation

directory 1 2 3 4 5 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 index block 19 file jeep 19 9 16 1 10 25 –1 –1 –1 15 6

Operating System Concepts 11.8 Silberschatz and Galvin c 1998

slide-9
SLIDE 9 ' & $ %

Indexed Allocation (Cont.)

  • Need index table
  • Random access
  • Dynamic access without external fragmentation, but have
  • verhead of index block.
  • 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 R LA/512

– Q = displacement into index table – R = displacement into block

Operating System Concepts 11.9 Silberschatz and Galvin c 1998

slide-10
SLIDE 10 ' & $ %

Indexed Allocation – Mapping (Cont.)

  • Mapping from logical to physical in a file of unbounded length

(block size of 512 words).

  • Linked scheme – Link blocks of index tables (no limit on size).

Q R

1 1

LA/(512 x 511)

– Q1 = block of index table – R1 is used as follows:

R1 Q R

2 2

/512

– Q2 = displacement into block of index table – R2 = displacement into block of file

Operating System Concepts 11.10 Silberschatz and Galvin c 1998

slide-11
SLIDE 11 ' & $ %

Indexed Allocation – Mapping (Cont.)

  • Two-level index (maximum file size is 5123)

Q R

1 1

LA/(512 x 512) – Q1 = displacement into outer-index – R1 is used as follows:

R1 Q R

2 2

/512

– Q2 = displacement into block of index table – R2 = displacement into block of file

Operating System Concepts 11.11 Silberschatz and Galvin c 1998

slide-12
SLIDE 12 ' & $ %

Indexed Allocation – Mapping (Cont.)

. . .

file

  • uter-index

index table

Operating System Concepts 11.12 Silberschatz and Galvin c 1998

slide-13
SLIDE 13 ' & $ %

Combined Scheme: UNIX (4K bytes per block)

mode

  • wners (2)

timestamps (3) size block count single indirect double indirect triple indirect direct blocks

. . .

data

. . .

data data data data data

. . . . . . . . . . . .

data data data data

Operating System Concepts 11.13 Silberschatz and Galvin c 1998

slide-14
SLIDE 14 ' & $ %

Free-Space Management

  • Bit vector

(n blocks)

...

1 2

  • 1

n

bit[i] =

  • 0 ⇒ block[i] free

1 ⇒ block[i] occupied

  • Block number calculation

(number of bits per word) ∗ (number of 0-value words) +

  • ffset of first 1 bit

Operating System Concepts 11.14 Silberschatz and Galvin c 1998

slide-15
SLIDE 15 ' & $ %

Free-Space Management (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
  • Linked list (free list)

– Cannot get contiguous space easily – No waste of space

  • Grouping
  • Counting

Operating System Concepts 11.15 Silberschatz and Galvin c 1998

slide-16
SLIDE 16 ' & $ %

Free-Space Management (Cont.)

  • Need to protect:

– Pointer to free list – Bit map ∗ Must be kept on disk. ∗ Copy in memory and disk may differ. ∗ Cannot allow for block[i] to have a situation where bit[i] = 1 in memory and bit[i] = 0 on disk. – Solution: ∗ Set bit[i] = 1 in disk. ∗ Allocate block[i]. ∗ Set bit[i] = 1 in memory.

Operating System Concepts 11.16 Silberschatz and Galvin c 1998

slide-17
SLIDE 17 ' & $ %

Directory Implementation

  • Linear list of file names with pointers to the data blocks.

– simple to program – time-consuming to execute

  • Hash Table – linear list with hash data structure.

– decreases directory search time – collisions – situations where two file names hash to the same location – fixed size

Operating System Concepts 11.17 Silberschatz and Galvin c 1998

slide-18
SLIDE 18 ' & $ %

Efficiency and Performance

  • Efficiency dependent on:

– disk allocation and directory algorithms – types of data kept in file’s directory entry

  • Performance

– disk cache – separate section of main memory for frequently used blocks – free-behind and read-ahead – techniques to optimize sequential access – improve PC performance by dedicating section of memory as virtual disk, or RAM disk

Operating System Concepts 11.18 Silberschatz and Galvin c 1998

slide-19
SLIDE 19 ' & $ %

Various Disk-Caching Locations

disk CPU controller main memory block buffer

  • pen-file table

ram disk track buffer

Operating System Concepts 11.19 Silberschatz and Galvin c 1998

slide-20
SLIDE 20 ' & $ %

Recovery

  • Consistency checker – compares data in directory structure

with data blocks on disk, and tries to fix inconsistencies.

  • Use system programs to back up data from disk to another

storage device (floppy disk, magnetic tape).

  • Recover lost file or disk by restoring data from backup.

Operating System Concepts 11.20 Silberschatz and Galvin c 1998