0% found this document useful (0 votes)
69 views11 pages

Chapter 12: File System Implementation

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. An allocation method refers to how disk blocks are allocated for files: contiguous allocation linked allocation Indexed allocation O perating Sy stem Concepts w ith Jav a 12.

Uploaded by

soxfannot1125
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views11 pages

Chapter 12: File System Implementation

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. An allocation method refers to how disk blocks are allocated for files: contiguous allocation linked allocation Indexed allocation O perating Sy stem Concepts w ith Jav a 12.

Uploaded by

soxfannot1125
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Chapter 12: File System Implementation

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

O perating Sy stem Concepts w ith Jav a

12.1

Silberschatz, Galv in and Gagne 2003

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 le.

O perating Sy stem Concepts w ith Jav a

12.2

Silberschatz, Galv in and Gagne 2003

Layered File System

O perating Sy stem Concepts w ith Jav a

12.3

Silberschatz, Galv in and Gagne 2003

A Typical File Control Block

O perating Sy stem Concepts w ith Jav a

12.4

Silberschatz, Galv in and Gagne 2003

In-Memory File System Structures

Figure 12-3(a) refers to opening a le. Figure 12-3(b) refers to reading a le.
O perating Sy stem Concepts w ith Jav a 12.5 Silberschatz, Galv in and Gagne 2003

Virtual File Systems


Virtual File Systems (VFS) provide an object-oriented way of

implementing le systems.
VFS allows the same system call interface (the API) to be used

for different types of le systems.


The API* is to the VFS interface, rather than any specic type of

le system.

API - Application Program Interface

O perating Sy stem Concepts w ith Jav a

12.6

Silberschatz, Galv in and Gagne 2003

Schematic View of Virtual File System

O perating Sy stem Concepts w ith Jav a

12.7

Silberschatz, Galv in and Gagne 2003

Directory Implementation
Linear list of le names with pointer 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 le names hash to the same location [ -> linked list ]

O perating Sy stem Concepts w ith Jav a

12.8

Silberschatz, Galv in and Gagne 2003

Allocation Methods
An allocation method refers to how disk blocks are allocated for

les:
Contiguous allocation Linked allocation Indexed allocation

O perating Sy stem Concepts w ith Jav a

12.9

Silberschatz, Galv in and Gagne 2003

Contiguous Allocation
Each le 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.

O perating Sy stem Concepts w ith Jav a

12.10

Silberschatz, Galv in and Gagne 2003

Contiguous Allocation of Disk Space

O perating Sy stem Concepts w ith Jav a

12.11

Silberschatz, Galv in and Gagne 2003

Extent-Based Systems
Many newer le systems (I.e. Veritas File System) use a

modied contiguous allocation scheme.


Extent-based le systems allocate disk blocks in extents. An extent is a contiguous block of disks. Extents are allocated

for le allocation. A le consists of one or more extents.

O perating Sy stem Concepts w ith Jav a

12.12

Silberschatz, Galv in and Gagne 2003

Linked Allocation
Each le is a linked list of disk blocks: blocks may be scattered

anywhere on the disk.

block

pointer

O perating Sy stem Concepts w ith Jav a

12.13

Silberschatz, Galv in and Gagne 2003

Linked Allocation (Cont.)

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

O perating Sy stem Concepts w ith Jav a

12.14

Silberschatz, Galv in and Gagne 2003

Linked Allocation

O perating Sy stem Concepts w ith Jav a

12.15

Silberschatz, Galv in and Gagne 2003

File-Allocation Table

O perating Sy stem Concepts w ith Jav a

12.16

Silberschatz, Galv in and Gagne 2003

Indexed Allocation
Brings all pointers together into the index block. Logical view.

index table

O perating Sy stem Concepts w ith Jav a

12.17

Silberschatz, Galv in and Gagne 2003

Example of Indexed Allocation

O perating Sy stem Concepts w ith Jav a

12.18

Silberschatz, Galv in and Gagne 2003

Indexed Allocation Mapping (Cont.)


Two-level index (maximum le size is 5123)

Q1 LA / (512 x 512) R1

Q1 = displacement into outer-index R1 is used as follows:


Q2 R2 R1 / 512

Q2 = displacement into block of index table R2 displacement into block of le:

O perating Sy stem Concepts w ith Jav a

12.19

Silberschatz, Galv in and Gagne 2003

Indexed Allocation Mapping (Cont.)

outer-index le

index table

O perating Sy stem Concepts w ith Jav a

12.20

Silberschatz, Galv in and Gagne 2003

Combined Scheme: UNIX (4K bytes per block)

O perating Sy stem Concepts w ith Jav a

12.21

Silberschatz, Galv in and Gagne 2003

Free-Space Management
Bit vector (n-bit word, represents n blocks) 0 1 2 n-1

68 7
If bit[i ] = 0 block[i ] free 1 block[i] occupied

Block number calculation


(number of bits per word) *(number of words) + offset of bit

O perating Sy stem Concepts w ith Jav a

12.22

Silberschatz, Galv in and Gagne 2003

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 les Linked list (free list)
Cannot get contiguous space easily No waste of space

Grouping [list of 1st n free blocks in 1st block] Counting [indicate 1st free block and number of consecutive free

blocks]

O perating Sy stem Concepts w ith Jav a

12.23

Silberschatz, Galv in and Gagne 2003

Directory Implementation
Linear list of le names with pointer 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 le names hash to the same location [ -> linked list ] xed size

O perating Sy stem Concepts w ith Jav a

12.24

Silberschatz, Galv in and Gagne 2003

Linked Free Space List on Disk

O perating Sy stem Concepts w ith Jav a

12.25

Silberschatz, Galv in and Gagne 2003

Efciency and Performance


Efciency dependent on:
disk allocation and directory algorithms types of data kept in les 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 [only benets processes using this le, reduces memory for general use].

O perating Sy stem Concepts w ith Jav a

12.26

Silberschatz, Galv in and Gagne 2003

Various Disk-Caching Locations

O perating Sy stem Concepts w ith Jav a

12.27

Silberschatz, Galv in and Gagne 2003

Page Cache
A page cache caches pages rather than disk blocks using

virtual memory techniques.


Memory-mapped I/O uses a page cache. Routine I/O through the le system uses the buffer (disk) cache. This leads to the following gure.

O perating Sy stem Concepts w ith Jav a

12.28

Silberschatz, Galv in and Gagne 2003

I/O Without a Unied Buffer Cache

O perating Sy stem Concepts w ith Jav a

12.29

Silberschatz, Galv in and Gagne 2003

Unied Buffer Cache


A unied buffer cache uses the same page cache to cache both

memory-mapped pages and ordinary le system I/O.

O perating Sy stem Concepts w ith Jav a

12.30

Silberschatz, Galv in and Gagne 2003

10

I/O Using a Unied Buffer Cache

O perating Sy stem Concepts w ith Jav a

12.31

Silberschatz, Galv in and Gagne 2003

Recovery
Consistency checking compares data in directory structure

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


Use system programs to back up data from disk to another

storage device (oppy disk, magnetic tape).


Recover lost le or disk by restoring data from backup.

O perating Sy stem Concepts w ith Jav a

12.32

Silberschatz, Galv in and Gagne 2003

Log Structured File Systems


Log structured (or journaling) le systems record each update to the

le system as a transaction. [ Linux added Journaling last year ]


All transactions are written to a log. A transaction is considered

committed once it is written to the log. However, the le system may not yet be updated.
The transactions in the log are asynchronously written to the le

system. When the le system is modied, the transaction is removed from the log.
If the le system crashes, all remaining transactions in the log must still

be performed.

O perating Sy stem Concepts w ith Jav a

12.33

Silberschatz, Galv in and Gagne 2003

11

You might also like