Download ch11file_system_implementation

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

MTS system architecture wikipedia , lookup

Library (computing) wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

DNIX wikipedia , lookup

System 7 wikipedia , lookup

OS 2200 wikipedia , lookup

RSTS/E wikipedia , lookup

Windows NT startup process wikipedia , lookup

Batch file wikipedia , lookup

Commodore DOS wikipedia , lookup

Burroughs MCP wikipedia , lookup

Spring (operating system) wikipedia , lookup

Paging wikipedia , lookup

VS/9 wikipedia , lookup

CP/M wikipedia , lookup

Unix security wikipedia , lookup

Transcript
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

Idea is that low-level format and layout of
data should not change the way the user
interacts with the file-system
Operating System Concepts – 7th Edition, Jan 1, 2005
11.2
Silberschatz, Galvin and Gagne ©2005
File-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 blocks
Operating System Concepts – 7th Edition, Jan 1, 2005
11.3
Silberschatz, Galvin and Gagne ©2005
Secondary 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
Inode list
Inode list
Super block
Boot block
(stage 2 bootloader)
Super block
----Data blocks----
Master Boot Record
(stage 1 bootloader)
Operating System Concepts –
7th
Edition, Jan 1, 2005
----Data blocks----
Partitions (or volumes)
11.4
Silberschatz, Galvin and Gagne ©2005
Each file represented by…
 File control block (Inode in Unix) – storage structure consisting
of information about a file
 One inode per file
Operating System Concepts – 7th Edition, Jan 1, 2005
11.5
Silberschatz, Galvin and Gagne ©2005
To open a file
 Must locate the Inode (file-control block)
 Then will know where blocks are
Operating System Concepts – 7th Edition, Jan 1, 2005
11.6
Silberschatz, Galvin and Gagne ©2005
Open 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
Operating System Concepts – 7th Edition, Jan 1, 2005
11.7
Silberschatz, Galvin and Gagne ©2005
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.

Same syntax regardless of FS (read(), write(), open(), close())
Operating System Concepts – 7th Edition, Jan 1, 2005
11.8
Silberschatz, Galvin and Gagne ©2005
Directory 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
Operating System Concepts – 7th Edition, Jan 1, 2005
11.9
Silberschatz, Galvin and Gagne ©2005
Allocation 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
Operating System Concepts – 7th Edition, Jan 1, 2005
11.10
Silberschatz, Galvin and Gagne ©2005
Contiguous Allocation
 Simple – only starting location (block #) and length (number
of blocks) are required
 Fragmentation: dynamic storage-allocation problem
Operating System Concepts – 7th Edition, Jan 1, 2005
11.11
Silberschatz, Galvin and Gagne ©2005
Linked 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)
Operating System Concepts – 7th Edition, Jan 1, 2005
11.12
Silberschatz, Galvin and Gagne ©2005
Indexed 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
Operating System Concepts – 7th Edition, Jan 1, 2005
11.13
Silberschatz, Galvin and Gagne ©2005
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
Operating System Concepts – 7th Edition, Jan 1, 2005
11.14
Silberschatz, Galvin and Gagne ©2005
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).
Operating System Concepts – 7th Edition, Jan 1, 2005
11.15
Silberschatz, Galvin and Gagne ©2005
Free-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)
0 1
2
n-1
bit[i] =

…
0  block[i] free
1  block[i] occupied
 Example:
block size = 212 bytes
disk size = 230 bytes (1 gigabyte)
n = 230/212 = 218 bits (or 32K bytes)
Operating System Concepts – 7th Edition, Jan 1, 2005
11.16
Silberschatz, Galvin and Gagne ©2005
Bit 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
Operating System Concepts – 7th Edition, Jan 1, 2005
11.17
Silberschatz, Galvin and Gagne ©2005
Linked Free Space List on Disk
 Could implement free-block
list with a linked-list
implementation
 Traversal expensive

Often just need the first
one
Operating System Concepts – 7th Edition, Jan 1, 2005
11.18
Silberschatz, Galvin and Gagne ©2005
Other 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
Operating System Concepts – 7th Edition, Jan 1, 2005
11.19
Grouping
Counting
Silberschatz, Galvin and Gagne ©2005
A few final issues
 Efficiency: buffering and caching
Efficiency
 Recovering from failures
 NFS
Recovery
Networked
File
System
Operating System Concepts – 7th Edition, Jan 1, 2005
11.20
Silberschatz, Galvin and Gagne ©2005
Efficiency 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 memorymapped IO for file access
 Unified virtual memory
 Can lead to double caching …
Operating System Concepts – 7th Edition, Jan 1, 2005
11.21
Silberschatz, Galvin and Gagne ©2005
Unified Buffer Cache
 A unified buffer cache uses the same page cache to cache both
memory-mapped pages and ordinary file system I/O
Operating System Concepts – 7th Edition, Jan 1, 2005
11.22
Silberschatz, Galvin and Gagne ©2005
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
Backup
fsck
Restore
Operating System Concepts – 7th Edition, Jan 1, 2005
11.23
Silberschatz, Galvin and Gagne ©2005
Log 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 failures
Simply
•Redo completed transactions
•Undo uncompleted transactions
Operating System Concepts – 7th Edition, Jan 1, 2005
11.24
Silberschatz, Galvin and Gagne ©2005
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
bin
/
usr
Remote
files-system
mnt
Operating System Concepts – 7th Edition, Jan 1, 2005
11.25
Silberschatz, Galvin and Gagne ©2005
NFS 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
Operating System Concepts – 7th Edition, Jan 1, 2005
11.26
Silberschatz, Galvin and Gagne ©2005
End of Chapter 11