ch11file_system_implementation
Download
Report
Transcript ch11file_system_implementation
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