![Page 1: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/1.jpg)
Chapter 11: Implementing File Chapter 11: Implementing File SystemsSystems
11.1 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 2: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/2.jpg)
Chapter 11: File System ImplementationChapter 11: File System Implementation
� File-System Structure
� File-System Implementation
� Directory Implementation
� Allocation Methods
� Free-Space Management
11.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Free-Space Management
� Efficiency and Performance
� Recovery
� Log-Structured File Systems
� NFS
� Example: WAFL File System
![Page 3: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/3.jpg)
FileFile--System StructureSystem Structure
� File structure
� Logical storage unit
� Collection of related information
� File system resides on secondary storage
11.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� File system resides on secondary storage (disks)
� File system organized into layers
� File control block – storage structure consisting of information about a file
![Page 4: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/4.jpg)
Layered File SystemLayered File System
Logical File System
Application Programs
File-Organization Module
Given a symbolic file name, use directory to providevalues needed by FOM
Transform logical address to
write(data_file, item)
file name
information of data_file
11.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
File-Organization Module
Basic File System
I/O Control
Devices
physical block address
Numeric disk address
Driver: hardware instructions
2144th block
driver 1, cylinder 73,surface 2, sector 10
![Page 5: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/5.jpg)
OnOn--Disk and InDisk and In--MemoryMemory
� On-disk : � boot control block (per volume), volume control block
(per volume), directory structure (per file system) , A per file FCB (inode )
� Volume control block (superblocks in UFS, Master File Table in NTFS ): # of blocks, size of the blocks,
11.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
File Table in NTFS ): # of blocks, size of the blocks, free-block count and pointers, and free FCB count and pointers.
� In-memory : in-memory mount table (mounted), in-memory directory structure (recently accessed), system-wide open-file table (FCB for each open file), per-process open-file table
![Page 6: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/6.jpg)
A Typical File Control BlockA Typical File Control Block
11.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 7: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/7.jpg)
InIn--Memory File System StructuresMemory File System Structures
11.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 8: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/8.jpg)
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
11.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
�VFS allows the same system call interface (the API) to be used for different types of file systems.
�The API is to the VFS interface, rather than any specific type of file system.
![Page 9: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/9.jpg)
Schematic View of Virtual File SystemSchematic View of Virtual File System
11.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 10: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/10.jpg)
Directory ImplementationDirectory Implementation
� Linear list of file names with pointer to the data blocks� simple to program� time-consuming to execute
� Hash Table – linear list with hash data structure
11.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Hash Table – linear list with hash data structure� f(file name) = pointer of the list� decreases directory search time�� collisionscollisions – situations where two file names hash to the
same location� fixed size
� Advanced structures: B-tree, …
![Page 11: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/11.jpg)
Allocation MethodsAllocation Methods
� An allocation method refers to how disk blocks are allocated for files:
� Contiguous allocation
11.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Linked allocation
� Indexed allocation
![Page 12: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/12.jpg)
Contiguous AllocationContiguous Allocation
☺: 1. Reduce seek time for contiguous access
2. Access is easy
3. Support both sequential and direct access
�: 1. dynamic allocation problem
11.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
– first-fit, best-fit, worst-fit
2. external fragmentation
– compaction (expensive)
3. file cannot grow
4. size estimation (for extension later)
– declaration and pre-allocation (inefficient usage of space)
![Page 13: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/13.jpg)
Contiguous Allocation of Disk SpaceContiguous Allocation of Disk Space
11.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 14: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/14.jpg)
ExtentExtent--Based SystemsBased Systems
� Many newer file systems (I.e. Veritas File System) use a modified contiguous allocation scheme
� Extent-based file systems allocate disk blocks
11.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Extent-based file systems allocate disk blocks in extents
� An extent is a contiguous block of disks� Extents are allocated for file allocation� A file consists of one or more extents.
![Page 15: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/15.jpg)
Linked AllocationLinked Allocation
� Each file is a linked list of disk blocks: blocks may be scattered anywhere on the disk.
pointerblock =
11.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
pointerblock =
![Page 16: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/16.jpg)
Linked Allocation Linked Allocation
� Each file is a linked list of disk blocks: blocks may be scattered anywhere on the disk
☺: 1. Simple – need only starting address
2. FreeFree--space managementspace management system – no waste of space
11.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
3. No external fragmentation
4. Easy to create a file (no allocation problem)
�: 1. only better for sequentially accesssequentially access
2. pointers require spacepointers require space
3. reliability (damaged pointers)
![Page 17: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/17.jpg)
Linked AllocationLinked Allocation
11.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 18: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/18.jpg)
FileFile--Allocation TableAllocation Table
the simple but efficient methodthe simple but efficient method
an variation used by DOS and OS/2
11.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
one entry for each disk block, indexed by block number
the table is used as a linked listlinked list
![Page 19: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/19.jpg)
File Allocation Table
0 (3)1 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 157 14 12 1 -1
9 121 7 14
11.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
0 (3)1 2 3
4 5 6 (4)7
8 (1)9 10 11
(2)12 13 (5)14 15
directoryfile startjeep 9
![Page 20: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/20.jpg)
Indexed AllocationIndexed Allocation
� Bring all the pointers together into one location: the index block (one for each file)
☺: 1. Direct access
2. No external fragmentation
2. Easy to create a file (no allocation problem)
11.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
3. Support both sequential and direct access
�: 1. Space for index blocks
2. How large the index block should be ?
– linked scheme
– multilevel index
– combined scheme (BSD UNIX)
![Page 21: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/21.jpg)
Example of Indexed AllocationExample of Indexed Allocation
11.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 22: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/22.jpg)
Linked Scheme
φφφφ
directoryfile first index block
jeep 19
next
data block
data block
next
data blocknext
data block
11.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
data block
data block
data block
data block
data block
data block
data block
data block
data block
19 24 8
![Page 23: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/23.jpg)
Multilevel Scheme
(two-level)
directoryfile first index block
jeep 16
1924
16
19data block
ata block
data block
24data block
data block
11.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
248-1-1-1
data block
data block
8data block
data block
data block
![Page 24: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/24.jpg)
Combined Scheme: UNIX (4K bytes per block)Combined Scheme: UNIX (4K bytes per block)
11.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 25: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/25.jpg)
FreeFree--Space ManagementSpace Management
� Bit vector (n blocks)
…
0 1 2 n-1
bit[i] =
67
8 0 ⇒ block[i] free
⇒
11.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
bit[i] =
67
8
1 ⇒ block[i] occupied
Block number calculation
(number of bits per word) *(number of 0-value words) +offset of first 1 bit
![Page 26: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/26.jpg)
FreeFree--Space Management (Cont.)Space Management (Cont.)
� Bit map requires extra space
� Example:
block size = 212 bytes
disk size = 230 bytes (1 gigabyte)
n = 230/212 = 218 bits (or 32K bytes)
11.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
n = 2 /2 = 2 bits (or 32K bytes)
� Easy to get contiguous files
� Linked list (free list)
� Cannot get contiguous space easily
� No waste of space
� Grouping
� Counting
![Page 27: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/27.jpg)
FreeFree--Space Management (1)Space Management (1)� free-space list: used to keep track of free disk space
� bit vector (bit map)one bit for a block (1: free, 0: allocated)
☺: easy to get contiguous files
� linked list: each free block points to the next�: not easy to traverse the list (infrequent action)
11.27 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
�: not easy to traverse the list (infrequent action)
☺: No waste of space
� grouping:– first: store n free blocks;
– n -th free block: store another n free blocks
☺: find a large number of free blocks quickly
� counting: several contiguous blocks may be allocated or free simultaneously
– a list of (first + no. of free blocks)
![Page 28: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/28.jpg)
FreeFree--Space Management (Cont.)Space Management (Cont.)
� Need to protect:
� Pointer to free list
� Bit map
�Must be kept on disk
�Copy in memory and disk may differ
11.28 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
�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:
�Set bit[i] = 1 in disk
�Allocate block[i]
�Set bit[i] = 1 in memory
![Page 29: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/29.jpg)
0 1 2 3
4 5 6 7
8 9 10 11
free-list head
Bit Map/Linked List/Grouping/Counting
grouping (n=3)
1 2,3,7
7 8,9,12
11.29 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
12 13 14 15
16 17 18 19
20 21 22 23
bit map: 011100011100101111100000
counting: (1,3), (7, 3), (12, 1), (14, 5)counting: (1,3), (7, 3), (12, 1), (14, 5)
7 8,9,12
12 14,15,16
16 17,18,-1
![Page 30: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/30.jpg)
Efficiency and PerformanceEfficiency and Performance
� Efficiency dependent on:
� disk allocation and directory algorithms
� types of data kept in file’s directory entry
�Last write (access) date
� Performance
11.30 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Performance
� disk cache – separate section of main memory for frequently used blocks
� free-behind and read-ahead – techniques to optimize sequential access
� improve PC performance by dedicating section of memory as virtual disk, or RAM disk
![Page 31: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/31.jpg)
Page CachePage Cache
� A page cache caches pages rather than disk blocks using virtual memory techniques
� Memory-mapped I/O uses a page cache
11.31 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Routine I/O through the file system uses the buffer (disk) cache
� This leads to the following figure
![Page 32: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/32.jpg)
I/O Without a Unified Buffer CacheI/O Without a Unified Buffer Cache
11.32 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 33: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/33.jpg)
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.33 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 34: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/34.jpg)
I/O Using a Unified Buffer CacheI/O Using a Unified Buffer Cache
11.34 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 35: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/35.jpg)
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
11.35 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
from disk to another storage device (floppy disk, magnetic tape, other magnetic disk, optical)
� Recover lost file or disk by restoring data from backup
![Page 36: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/36.jpg)
Log Structured File SystemsLog Structured File Systems
� Log structured (or journaling) file systems record each update to the file system as a transaction
� All transactions are written to a log
� A transaction is considered committed once it is written to the log
11.36 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� However, the file system may not yet be updated
� The transactions in the log are asynchronously written to the file system
� When the file system is modified, the transaction is removed from the log
� If the file system crashes, all remaining transactions in the log must still be performed
![Page 37: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/37.jpg)
The Sun Network File System (NFS)The Sun Network File System (NFS)
� An implementation and a specification of a software system for accessing remote files across LANs (or WANs)
� The implementation is part of the Solaris
11.37 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� The implementation is part of the Solaris and SunOS operating systems running on Sun workstations using an unreliable datagram protocol (UDP/IP protocol and Ethernet
![Page 38: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/38.jpg)
NFS (Cont.)NFS (Cont.)� Interconnected workstations viewed as a set of independent
machines with independent file systems, which allows sharing among these file systems in a transparent manner
� A remote directory is mounted over a local file system directory
� The mounted directory looks like an integral subtree of the local file system, replacing the subtree descending from the local directory
11.38 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
from the local directory
� Specification of the remote directory for the mount operation is nontransparent; the host name of the remote directory has to be provided
� Files in the remote directory can then be accessed in a transparent manner
� Subject to access-rights accreditation, potentially any file system (or directory within a file system), can be mounted remotely on top of any local directory
![Page 39: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/39.jpg)
NFS (Cont.)NFS (Cont.)
� NFS is designed to operate in a heterogeneous environment of different machines, operating systems, and network architectures; the NFS specifications independent of these media
� This independence is achieved through the use of RPC primitives built on top of an External Data
11.39 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
primitives built on top of an External Data Representation (XDR) protocol used between two implementation-independent interfaces
� The NFS specification distinguishes between the services provided by a mount mechanism and the actual remote-file-access services
![Page 40: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/40.jpg)
Three Independent File SystemsThree Independent File Systems
11.40 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 41: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/41.jpg)
Mounting in NFS Mounting in NFS
11.41 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Mounts Cascading mountsMount S1:/usr/sharedover U:/usr/local Mount S2:/usr/dir2
over U:/usr/local/dir1
![Page 42: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/42.jpg)
NFS Mount ProtocolNFS Mount Protocol
� Establishes initial logical connection between server and client
� Mount operation includes name of remote directory to be mounted and name of server machine storing it
� Mount request is mapped to corresponding RPC and forwarded to mount server running on server machine
� Export list – specifies local file systems that server exports for mounting, along with names of machines that are permitted to
11.42 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
mounting, along with names of machines that are permitted to mount them
� Following a mount request that conforms to its export list, the server returns a file handle—a key for further accesses
� File handle – a file-system identifier, and an inode number to identify the mounted directory within the exported file system
� The mount operation changes only the user’s view and does not affect the server side
![Page 43: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/43.jpg)
NFS ProtocolNFS Protocol� Provides a set of remote procedure calls for remote file
operations. The procedures support the following operations:
� searching for a file within a directory
� reading a set of directory entries
� manipulating links and directories
� accessing file attributes
11.43 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� accessing file attributes
� reading and writing files
� NFS servers are stateless ; each request has to provide a full set of arguments
� Modified data must be committed to the server’s disk before results are returned to the client (lose advantages of caching)
� The NFS protocol does not provide concurrency-control mechanisms
![Page 44: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/44.jpg)
Three Major Layers of NFS Three Major Layers of NFS Architecture Architecture
� UNIX file-system interface (based on the open, read, write , and close calls, and file descriptors )
� Virtual File System (VFS) layer – distinguishes local files from remote ones, and local files are further distinguished according to their file-system types
11.44 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� The VFS activates file-system-specific operations to handle local requests according to their file-system types
� Calls the NFS protocol procedures for remote requests
� NFS service layer – bottom layer of the architecture
� Implements the NFS protocol
![Page 45: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/45.jpg)
Schematic View of NFS Architecture Schematic View of NFS Architecture
11.45 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 46: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/46.jpg)
NFS PathNFS Path--Name TranslationName Translation
� Performed by breaking the path into component names and performing a separate NFS lookup call for every pair of component name and directory vnode
� To make lookup faster, a directory name lookup
11.46 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� To make lookup faster, a directory name lookup cache on the client’s side holds the vnodes for remote directory names
![Page 47: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/47.jpg)
NFS Remote OperationsNFS Remote Operations
� Nearly one-to-one correspondence between regular UNIX system calls and the NFS protocol RPCs (except opening and closing files)
� NFS adheres to the remote-service paradigm, but employs buffering and caching techniques for the sake of performance
� File-blocks cache – when a file is opened, the kernel checks with the remote server whether to fetch or revalidate the cached attributes
� Cached file blocks are used only if the corresponding cached
11.47 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Cached file blocks are used only if the corresponding cached attributes are up to date
� File-attribute cache – the attribute cache is updated whenever new attributes arrive from the server
� Clients do not free delayed-write blocks until the server confirms that the data have been written to disk
![Page 48: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/48.jpg)
Example: WAFL File SystemExample: WAFL File System
� Used on Network Appliance “Filers” – distributed file system appliances
� “Write-anywhere file layout”
� Serves up NFS, CIFS, http, ftp
� Random I/O optimized, write optimized
11.48 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Random I/O optimized, write optimized
� NVRAM for write caching
� Similar to Berkeley Fast File System, with extensive modifications
![Page 49: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/49.jpg)
The WAFL File LayoutThe WAFL File Layout
11.49 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 50: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/50.jpg)
Snapshots in WAFLSnapshots in WAFL
11.50 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 51: Chapter 11: Implementing File Systemshscc.cs.nthu.edu.tw/~os/lecture_note/CH11.pdfVFS allows the same system call interface Operating System Concepts 11.8 Silberschatz, Galvin and](https://reader036.vdocument.in/reader036/viewer/2022062603/5f02f6817e708231d406dff1/html5/thumbnails/51.jpg)
End of Chapter 11End of Chapter 11
11.51 Silberschatz, Galvin and Gagne ©2005Operating System Concepts