Chapter 11: File System Implementation

27
Chapter 11: File System Chapter 11: File System Implementation Implementation

description

Chapter 11: File System Implementation. Implementation. Looked at interface to file-system How users and processes access and modify files But what happens between the ones and zeros on the platter and that interface Layered approach - PowerPoint PPT Presentation

Transcript of Chapter 11: File System Implementation

Page 1: Chapter 11:  File System Implementation

Chapter 11: File System Chapter 11: File System ImplementationImplementation

Page 2: Chapter 11:  File System Implementation

11.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

ImplementationImplementation

Looked at interface to file-system

How users and processes access and modify files

But what happens between the ones and zeros on the platter and that interface

Layered approach

Idea is that low-level format and layout of data should not change the way the user interacts with the file-system

Page 3: Chapter 11:  File System Implementation

11.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File-System StructureFile-System Structure File system resides on secondary storage (disks)

To the operating: large 1-D array of “blocks”

Address becomes a block ID

One large array of blocksOne large array of blocks

Page 4: Chapter 11:  File System Implementation

11.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Secondary StorageSecondary Storage File-system installed on a partition (volume)

Can be multiple partitions to a disk drive

MBR contains disk-level information (stage one bootloader)

Boot block (boot control block, kernel or loader, first block in boot partition)

Volume Control Block (called a super block in UFS and a Master File Table in NTFS file systems; contains things like the number of blocks, size of blocks, etc.)

Inode list

----Data blocks---- ----Data blocks----

Master Boot Record (stage 1 bootloader)

Super block

Partitions (or volumes)

Boot block(stage 2 bootloader)

Super block

Inode list Inode list

Page 5: Chapter 11:  File System Implementation

11.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Each file represented by…Each file represented by…

File control block (Inode in Unix) – storage structure consisting of information about a file

One inode per file

Page 6: Chapter 11:  File System Implementation

11.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

To open a fileTo open a file

Must locate the Inode (file-control block)

Then will know where blocks are

Page 7: Chapter 11:  File System Implementation

11.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Open file tablesOpen file tables OS keeps an open file table

Also keeps one for each process

Open() returns a file descriptor which is an index into this table

Used for reads and writes

Page 8: Chapter 11:  File System Implementation

11.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Virtual File SystemsVirtual 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.

Same syntax regardless of FS (read(), write(), open(), close())

Page 9: Chapter 11:  File System Implementation

11.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Directory ImplementationDirectory Implementation

Directory (dih-rek-tuh-ree) a book alphabetically listing persons and organizations, usually with information about how to contact them

In file-systems used to organize and locate files

Usually implemented as a file itself

Contains

Linear list of file names with pointer to the data blocks.

Hash Table – linear list with hash data structure.

File name Inode

ch13io_systems.ppt 0xFF3A

ch2services.ppt 0xA23D

ch10file_system_interface.ppt 0x178E

ch11file_system_implementation.ppt 0xADE1

Page 10: Chapter 11:  File System Implementation

11.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Allocation MethodsAllocation Methods

An allocation method refers to how disk blocks are allocated for files:

How the blocks are laid out on the drive

Contiguous allocation

Linked allocation

Indexed allocation

Page 11: Chapter 11:  File System Implementation

11.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Contiguous AllocationContiguous Allocation

Simple – only starting location (block #) and length (number of blocks) are required

Fragmentation: dynamic storage-allocation problem

Page 12: Chapter 11:  File System Implementation

11.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Linked AllocationLinked Allocation

Table points to first block

Each subsequent block points to next

No fragmentation but disk head must jump around to collect entire file

Very early versions of file allocation table (FAT)

Page 13: Chapter 11:  File System Implementation

11.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Indexed AllocationIndexed Allocation

File-control block has list of every block used by disk.

No external fragmentation

Can make one sweep of the disk head to gather entire file

Page 14: Chapter 11:  File System Implementation

11.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Index: how large can a file be?Index: how large can a file be?

How many blocks? Contiguous and linked

no limit (except addressing limitations)

However many entries will fit in an inode

Triple indirection 1st 12 blocks directly

from inode 13th points to a block

that holds nothing but addresses of data blocks

14th double indirection 15th triple

Page 15: Chapter 11:  File System Implementation

11.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Index: how large can a file be?Index: how large can a file be?

Example 12 direct-block

references one single-indirection

reference one double-indirection

reference one triple-indirection

reference How large can a file be? Assume

block-size of 4096 bytes

an indirection-block (a block used to hold pointers to data-blocks) can hold 1,260 entries (26 bits each).

Page 16: Chapter 11:  File System Implementation

11.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Free-Space ManagementFree-Space Management When it is time to request a block

Must have a list of “available” or “free” blocks

Unix uses a bit vector (n blocks)

Example:

block size = 212 bytes

disk size = 230 bytes (1 gigabyte)

n = 230/212 = 218 bits (or 32K bytes)

0 1 2 n-1

bit[i] = 0 block[i] free

1 block[i] occupied

Page 17: Chapter 11:  File System Implementation

11.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Bit map requires extra spaceBit map requires extra space

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: write ahead

Set bit[i] = 1 in disk Allocate block[i] Set bit[i] = 1 in memory

Disk BV ↔ Memory BV

Page 18: Chapter 11:  File System Implementation

11.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Linked Free Space List on DiskLinked Free Space List on Disk

Could implement free-block list with a linked-list implementation

Traversal expensive

Often just need the first one

Page 19: Chapter 11:  File System Implementation

11.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Other free-list approachesOther free-list approaches

Grouping

Just keep track of the first free block

It will have a list of n free blocks

The last one in the list will have another list of free blocks

Can acquire large numbers of blocks quickly

Counting

Exploits fact that usually several contiguous blocks are allocated or freed

Keep a free-block list

Each entry points to a free block and indicates the number of free contiguous blocks

Grouping

Counting

Page 20: Chapter 11:  File System Implementation

11.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

A few final issuesA few final issues

Efficiency: buffering and caching

Recovering from failures

NFS

Efficiency

Recovery

Networked File System

Page 21: Chapter 11:  File System Implementation

11.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Efficiency and PerformanceEfficiency and Performance

Disk cache (buffer cache) – main memory can act as cache for disk (much like hi-speed cache does for memory)

Would this be useful to a Web Server?

Can piggy-back off of demand paging system by using memory-mapped IO for file access

Unified virtual memory

Can lead to double caching …

Page 22: Chapter 11:  File System Implementation

11.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Unified Buffer CacheUnified Buffer Cache

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

Page 23: Chapter 11:  File System Implementation

11.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

RecoveryRecovery

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

fsckBackup

Restore

Page 24: Chapter 11:  File System Implementation

11.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Log Structured File SystemsLog Structured File Systems

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

Journaling

Similar to DB techniques covered in synchronization chapter

Example of Log-Based File Systems

Linux ext3

Windows NTFS

Easy to recover from failuresSimply •Redo completed transactions•Undo uncompleted transactions

Easy to recover from failuresSimply •Redo completed transactions•Undo uncompleted transactions

Page 25: Chapter 11:  File System Implementation

11.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

The Sun Network File System (NFS)The Sun Network File System (NFS)

Ability to mount a remote file-system into a local file-system

NFS instructions and protocols carried over TCP/IP (UDP)

Server serving up a shared FS must maintain an export list

Page 26: Chapter 11:  File System Implementation

11.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

NFS ProtocolNFS Protocol File-system appears local Commands are interpreted and sent as Remote Procedure Calls to

remote system

The same Virtual File System (VFS) layer that allows interfacing with different file-system implementations is used for NFS

Page 27: Chapter 11:  File System Implementation

End of Chapter 11End of Chapter 11