Part III Part III Storage Management Storage Management Chapter - - PowerPoint PPT Presentation

part iii part iii storage management storage management
SMART_READER_LITE
LIVE PREVIEW

Part III Part III Storage Management Storage Management Chapter - - PowerPoint PPT Presentation

Part III Part III Storage Management Storage Management Chapter 11: File System Implementation Chapter 11: File System Implementation 1 Fall 2010 Layered Layered File System 2 Overview : 1/4 Overview : 1/4 A file system has on-disk


slide-1
SLIDE 1

Part III Part III Storage Management

Chapter 11: File System Implementation

Storage Management

Chapter 11: File System Implementation

1

Fall 2010

slide-2
SLIDE 2

Layered Layered File System

2

slide-3
SLIDE 3

Overview : Overview : 1/4 1/4

A file system has on-disk and in-memory information.

  • .

A disk may contain the following for implementing a file system on it:

A boot control block per volume A volume control block per volume A di t t t fil t A directory structure per file system A file control block (FCB) per file

In-memory information include In-memory information include

An in-memory mounted table has info for each mounted volume An in-memory directory structure The system-wide open-file table The per process open file table

3

The per-process open-file table Buffers hold file-system blocks

slide-4
SLIDE 4

Overview : Overview : 2/4 2/4 Overview : Overview : 2/4 2/4

A FCB fil t l A FCB, file control block, contains the d t il f fil

file permission a typical file control block FCB

details of a file. In Unix, a FCB is

file permission file date

called an i-node.

file owner, group, ACL file size file data blocks

4

slide-5
SLIDE 5

Overview : Overview : 3/4 3/4 Overview : Overview : 3/4 3/4

kernel memory disk memory 3: read the directory 4: update FCB and directory user program e e e

  • y

d s e

  • y
  • pen(filename)

directory structure directory structure FCB

1: 1: create a new file 5 fil d i /fil h dl

5

2: allocate a new FCB 5: a file descriptor/file handle is returned

slide-6
SLIDE 6

Overview : Overview : 4/4 4/4 Overview : Overview : 4/4 4/4

kernel memory disk memory

index

user program e e e

  • y

d s e

  • y

per-process

  • pen-file table

Data blocks

read(index)

Data blocks system-wide

  • pen-file table

p FCB

6

slide-7
SLIDE 7

Directory Directory Implementation mplementation Directory Directory Implementation Implementation

A Fil di t i ll i l t d A File directory is usually implemented as a linked-list, a tree (e.g., B-tree), a hash table ith h i i th bi ti f b th with chaining, or the combination of both. The problem with the linked-list approach is its poor performance in searching for a file. Directory search is performed very frequently. The hash table approach speeds up search; however, we must deal with the problem of p

  • collisions. Thus, chaining is necessary.

7

slide-8
SLIDE 8

Directory Directory Entries: ntries: 1/2 1/2 Directory Directory Entries: Entries: 1/2 1/2

A directory is just a file! A directory is just a file! A directory entry may be very simple like the

  • ne used by MS DOS Or it may be quite
  • ne used by MS-DOS. Or, it may be quite

complex like the Unix i-node.

O 9

8

extended MS-DOS directory entry used in Windows 98

slide-9
SLIDE 9

Directory Entries: Directory Entries: 2/2 2/2

find /usr/ast/mbox

Unix directory entry

find /usr/ast/mbox

9

slide-10
SLIDE 10

File Allocation Methods File Allocation Methods

There are three typical file space allocation h d methods: Contiguous Allocation Linked Allocation Indexed Allocation Indexed Allocation

10

slide-11
SLIDE 11

C t C ti All ti 1/3 1/3 Con

  • nti

tiguous guous All Alloca

  • cati

tion:

  • n: 1/3

1/3

With th ti ll ti th d With the contiguous allocation method, a user must indicate the file size before creating a file. Then, the operating system searches the disk to find contiguous disk blocks for the file. The directory entry is easy. It contains the initial disk address of this file and the number of disk blocks. Therefore, if the initial address is b and the Therefore, if the initial address is b and the number of blocks is n, the file will occupy blocks b, b+1, b+2, …, b+n-1.

11

b 1, b 2, …, b n 1.

slide-12
SLIDE 12

Contiguous Allocation: Contiguous Allocation: 2/3 2/3

directory directory

Since blocks are allocated contiguously, external g y, fragmentation may occur. Thus, compaction may be

12

needed.

slide-13
SLIDE 13

Contiguous Contiguous Allocation: Allocation: 3/3 3/3 Contiguous Contiguous Allocation: Allocation: 3/3 3/3

Contiguous allocation is easy to implement Contiguous allocation is easy to implement. Its disadvantages are It can be considered as a form of dynamic memory allocation, and external fragmentation may occur and compaction may be needed. It is difficult to estimate the file size. The size of a file may grow at run time and may be larger than the specified number of allocated blocks. p In this case, the OS must move the blocks in

  • rder to provide more space. In some systems,

13

p p y this is simply an error.

slide-14
SLIDE 14

Li Li k d All All ti 1/3 1/3 Li Linked All Alloca

  • cati

tion:

  • n: 1/3

1/3

With th li k d ll ti h di k With the linked allocation approach, disk blocks of a file are chained together with a li k d li t linked-list. The directory entry of a file contains a pointer to the first block and a pointer to the last block. To create a file, we create a new directory entry y y and the pointers are initialized to nil. When a write occurs, a new disk block is When a write occurs, a new disk block is allocated and appended to the end of the list.

14

slide-15
SLIDE 15

Linked Linked Allocation: Allocation: 2/3 2/3 Linked Linked Allocation: Allocation: 2/3 2/3

28

Last Block

directory

File Name Start End

………… …….. ……..

Last Block

………… …….. …….. B 1 28

File blocks are chained into a linked-list. linked list. The directory entry has pointers to the first and last file blocks to the first and last file blocks. Append is difficult to do without th E d i t

15

the End pointer.

slide-16
SLIDE 16

Linked Linked Allocation: Allocation: 3/3 3/3 Linked Linked Allocation: Allocation: 3/3 3/3

Advantages: Advantages: File size does not have to be specified. No external fragmentation No external fragmentation. Disadvantages: It s pports seq ential access efficientl and is It supports sequential access efficiently, and is not for direct access Each block contains a pointer asting space Each block contains a pointer, wasting space Blocks scatter everywhere and a large number

  • f disk seeks may be necessary
  • f disk seeks may be necessary

Reliability: what if a pointer is lost or damaged?

16

slide-17
SLIDE 17

File File Allocation Allocation Table able (FAT) FAT) File File Allocation Allocation Table Table (FAT) (FAT)

This is a variation of the

FAT

This is a variation of the linked allocation by pulling all pointers into a t bl th fil ll ti table, the file allocation table (FAT). The left diagram shows

217 618 test

directory

The left diagram shows file test has its first block at 217, followed by 618 339 ( d f fil )

339 end-of-file

618, 339 (end of file). Large no. of disk seeks. Can do direct access

339 618 217

Can do direct access. FAT needs space. What if FAT is damaged?

f bl k 1

17

What if FAT is damaged? We all know it well!

  • no. of blocks-1
slide-18
SLIDE 18

Indexed Indexed Allocation: Allocation: 1/4 1/4 Indexed Indexed Allocation: Allocation: 1/4 1/4

Each file has an index block that is an array of Each file has an index block that is an array of disk block addresses. Th i th t i th i d bl k i t t th i th The i-th entry in the index block points to the i-th block of the file. A file’s directory entry contains a pointer to its

  • index. Hence, the index block of an indexed

allocation plays the same role as a page table does. Index allocation supports both sequential and pp q direct access without external fragmentation.

18

slide-19
SLIDE 19

Indexed Indexed Allocation: Allocation: 2/4 2/4 Indexed Indexed Allocation: Allocation: 2/4 2/4

directory

index block

19

slide-20
SLIDE 20

Indexed Indexed Allocation: Allocation: 3/4 3/4 Indexed Indexed Allocation: Allocation: 3/4 3/4

Th i d d ll ti ff f t d The indexed allocation suffers from wasted space. The index block may not be fully used (i.e., internal f t ti ) fragmentation). The number of entries of an index table determines the size of a file. To overcome this problem, we may Have multiple index blocks and chain them into p a linked-list Have multiple index blocks, but make them a Have multiple index blocks, but make them a tree just like the indexed access method A combination of both

20

A combination of both

slide-21
SLIDE 21

Indexed Allocation: Indexed Allocation: 4/4 4/4

256 entries per index table. What is the maximum size of a file?

21

slide-22
SLIDE 22

Free Free Space Space Management Management Free Free Space Space Management Management

How do we keep track free blocks on a disk? How do we keep track free blocks on a disk? A free-list is maintained. When a new block is t d h thi li t t fi d requested, we search this list to find one. The following are commonly used techniques: Bit Vector Linked List Linked List Linked List + Grouping Li k d Li t+Add +C t Linked List+Address+Count

22

slide-23
SLIDE 23

Bit Bit Vector ector Bit Bit Vector Vector

Each block is represented by a bit in a table. If p y there are n disk blocks, the table has n bits. If a block is free, its corresponding bit is 1. g When a block is needed, the table is searched. If a 1 bit is found in position k, block k is free. If the disk capacity is small, the whole bit vector can be stored in memory. For a large disk, this bit vector will consume too much memory. We could group a few blocks into a cluster and allocate clusters. This saves space and may cause internal fragmentation.

23

slide-24
SLIDE 24

Linked Linked List List Linked Linked List List

Like the linked allocation method free blocks can Like the linked allocation method, free blocks can be chained into a linked list. Wh f bl k i d d th fi t i th h i i When a free block is needed, the first in the chain is allocated. However, this method has the same disadvantages

  • f the linked allocation method.

We may use a FAT for the disk and chain the free block pointers together. Note that the FAT may be p g y very large and consume space if it is stored in memory.

24

y

slide-25
SLIDE 25

Groupin Grouping

The first free block contains the addresses of n

  • ther free blocks
  • ther free blocks.

For each group, the first n-1 blocks are actually free and the last (i e n-th) block contains the free and the last (i.e., n-th) block contains the addresses of the next group. In this way we can quickly locate free blocks In this way, we can quickly locate free blocks.

3 8 50

3 6

3 8 50

3 8 6 12 (3 & 8 are free) 50 12 20

25

6 12 20

(6 & 12 are free)

slide-26
SLIDE 26

Address + Countin Address + Counting

The list can be made short with the following trick: Blocks are often allocated and freed in groups We may store the address of the first free block and the number of the following n free blocks.

free block list 5 3

26

3 disk

slide-27
SLIDE 27

Th E d The End

27