Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | aubrianna-carrillo |
View: | 27 times |
Download: | 3 times |
Chapter 11: File System Chapter 11: File System ImplementationImplementation
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
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
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
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
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
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
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())
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
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
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
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)
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
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
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).
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
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
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
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
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
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 …
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
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
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
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
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
End of Chapter 11End of Chapter 11