Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation...

29
Chapter 11: File System Implementation
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    241
  • download

    7

Transcript of Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation...

Page 1: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Chapter 11: File System Implementation

Page 2: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Outline

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

Page 3: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

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

Page 4: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Layered File System

Page 5: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

A Typical File Control Block

Page 6: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

File System Structures

• File system structures provided by the OS

File open

File read

Page 7: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Virtual File Systems

• Virtual File Systems (VFS) provide an object-oriented way of implementing file systems

• VFS allows the same system call interface (the API) to be used for different types of file systems

• The API is to the VFS interface, rather than any specific type of file system.

Page 8: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Schematic View of Virtual File System

Page 9: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Directory Implementation

• Linear list of file names with pointer to the data blocks– simple to program– time-consuming: linear search required

• Hash Table – linear list with hash data structure– decreases directory search time– collisions: situations where two file

names hash to the same location

Page 10: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Allocation Methods

• Determines how disk blocks are allocated for files– Contiguous allocation– Linked allocation– Indexed allocation

Page 11: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

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

• Advantage: Random access• Cons

– Dynamic storage allocation may become difficult

– Files may not be allowed to grow

Page 12: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Contiguous Allocation of Disk Space

Page 13: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Extent-Based Systems

• A modified contiguous allocation scheme• Extent-based file systems allocate disk

blocks in extents• An extent is a contiguous block of disks

– Initially, allocate contiguous disk space to a file. If the file grows, assign an extent. Keep the link to the extent in addition to the start and link in the previous slide.

Page 14: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Linked Allocation

• Each file is a linked list of disk blocks– Blocks may be scattered anywhere on the disk

pointerblock =

Page 15: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Linked Allocation

Page 16: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Linked Allocation

• Pros– Simple: Only needs the starting address– Easy to manage free space

• No waste of space

• Cons– No random access -> slow down access

Page 17: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Indexed AllocationBrings all pointers together into the index block

Indexblock

Page 18: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Indexed Allocation

• Need index table -> Overhead• Random access without external

fragmentation • If max file size is fixed, the size of an index

block can be determined– Example

• Max file = 256K words, block size = 512 words -> Only 1 block is needed to store an index table

• Multi-level of indexes can be used, if necessary, to reduce the disk space consumption by index blocks

• If the file size is unlimited, link blocks of index table

Page 19: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Combined Scheme: UNIX (4K bytes per block)

Page 20: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Free-Space Management• Bit vector for n blocks

0 1 2 n-1

bit[i] = 0 block[i] free

1 block[i] occupied

Block number calculation

(number of bits per word) *(number of 0-value words) +offset of first 1 bit

Page 21: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Free Space Management• Bit map requires extra space

– Example:block size = 212 bytesdisk 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: Contiguous free blocks -> one group– Counting: Keep the count rather than links

Page 22: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Linked Free Space List on Disk

Page 23: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Free Space Management

• 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

Page 24: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Efficiency and Performance

• Efficiency depends on:– disk allocation and directory algorithms– types of data kept in file’s directory entry

• Performance improvement techniques– Disk cache: Separate section of main memory

for frequently used blocks– Free-behind and read-ahead: Techniques to

optimize sequential access

Page 25: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Unified Buffer Cache

• A unified buffer cache uses the same page cache to cache both memory-mapped pages and ordinary file system I/O

Page 26: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Recovery

• Consistency checking 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, other magnetic disk, optical)

• Recover lost file or disk by restoring data from backup

Page 27: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Log Structured File Systems

• Log structured (or journaling) file systems record each update to the file system as a transaction

• Each transaction is written to a log– A transaction is considered committed

once it is written to the log– But, the file system may not have been

updated yet

Page 28: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

Log Structured File Systems

• The transactions in the log are asynchronously written to the file system– After the file system in the disk is

updated, the log record is removed from the log

• If the file system crashes, all remaing committed transactions in the log must still be performed– Updates are NOT lost!

Page 29: Chapter 11: File System Implementation. Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free Space.

End of Chapter 11

Questions?