-
Notifications
You must be signed in to change notification settings - Fork 1
/
M3_Review-Chapter12
277 lines (235 loc) · 11.1 KB
/
M3_Review-Chapter12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
# CSC360
Operating Systems
Midterm #3 review.
File System Implementation - Chapter 12
Slides: Implementation
File System Structure:
LAYERED SYSTEM:
Application Programs
|
|
V
logical file system
|
|
V
file-organization module
|
|
V
basic file system
|
|
V
I/O control
|
|
V
devices
□ to improve I/O efficiency, I/O transfers between memory and disk are performed in units of blocks.
□ each block can has one or more sectors
□ usual size is 512 bytes
□ File Systems: provide efficient and convenient access to the disk by allowing data to be stored, located, and
retrieved easily.
□ I/O control level consists of device drivers and interrupt handlers to transfer information between the main memory
and the disk system
□ The basic file system needs only to issue generic commands to hte appropriate device drivers to read and write physical
blocks on the disk.
File System Organization:
□ Sectors: eg. 512 bytes
□ Block
□ data blocks
□ control blocks
□ Boot control Block (per volume):
□ contains information needed by the system to boot an operating system from that volume
□ Volume control block (per volume):
□ contains wolume (or partition) details such as the number of blocks in the partition, the size of blocks,
a free=block count and free-block pointers, a free-FCB count and FCB pointers
□ EG "super block" in linux. "master file table" in windows.
□ boot, partition, (root) directory, file control blocks.
□ Access Blocks
□ logical block address
□ physical block address: disk geometry
□ Typical file-control block
file permissions
file dates (create, access, write)
file owner, group, ACL
file size
file data blocks or pointers to file data blocks
File-System implementation:
□ consists of 3 layers.
1) file-system interface, based on the open(), read(), write(), close() calls on file descriptors.
2) Virtual File System layer
□ OO design
□ same API to different file systems.
□ serves 2 important functions:
1) It seperates file-system-generic operations from their implementation by defining a clean VFS
interface. Several implementations for the VFS interface may coexist on the sam emachine, allowing
transparent access to different types of file systems mounted locally..
2) It provides a mechanism for uniquely representing a file through a network. The VFS is based on a
file representation structure, called a vnode, that contains a numerical designator for a
network-wide unique file.
□ UNIX inodes are unique within only a single file system.)
□ kernel maintains one vnode structure for each active node (file or derectory)
3) layer implementing the file-system type or the remote-file-system protocol
VFS architecture:
□ 4 main objects:
1) inode object: represents an individual file
2) file object: represents an open file
3) superblock object: represents an entire file system
4) dentry object: represents an individual directory entry
Directory implementation:
Directory Table:
□ Linear list:
□ simplest method, linear list of names with pounters to data blocks
□ advantage: simple to program
□ disadvantage: time-consuming to execute
□ Hash Table:
□ linear list with hash data structure
□ advantage: decreases directory search time
□ disadvantage:
□ collisions - situations where two file names hash to the same location
□ fixed size
Directory Entry:
EG. UNIX (inode, name")
Allocation Methods:
Contiguous Allocation
□ Each file occupies a set of contiguous blocks on the disk
Advantages
□ simple - only requre
- starting location (block #)
- length (number of blocks)
Difficulties:
□ Finding space for a new file
□ first fit, best fit
□ external fragmentation
□ file size is unkown while created
Disadvantages:
□ Wastefule of space (dynamic storage-allocation problem)
□ Files cannot grow (difficult to expand)
Modified Contiguous Allocation:
Extent-Based Systems:
□ Many newer file systems use a modifed allocation scheme
□ extent-based file systems allocate disk blocks in extents
□ an extent is a contiguous block of disks
□ A file consists of one or more extents
□ design:
□ initially, a contiguous chunk of space is allocated
□ if not enough, another chunk (called extent) is added
□ the location of a file's blocks is recorded as a location and a block,
plus a link to the first block of the next extent.
Linked Allocation:
□ Each file is a linked list of disk blocks: blocks may be scattered anywhere on disk
□ advantages:
□ Simple need only starting address
□ free-space management systems no waste of space
□ easy to expand
□ disadvantages:
□ Space reqyre for the pointers
□ unit of cluster (multiple blocks)
- one pointer for multiple blocks
- fast disk access time
- internal fragementation
□ slow access to block i
□ low reliability due to crash
□ no direct random access
EG. File Allocation Table
FDT - File directory Table:
□ first block address
FAT - File allocation Table:
□ linked list of addresses
□ can be cached
□ random access
Indexed Allocation:
□ brings all pounters per file together ino the index block
□ advantages:
□ solves external fragmentation
□ no size-declaration problem
□ support direct access
□ easy to expand
□ disadvantages:
□ internal fragmentation
□ greater pointer overhead than linked allocation
□ Limited by the size of the index block
Indirect Index:
□ contains 12 direct indexes
□ 1 single indirect:
□ index points to anothe index table
□ 1 double indirect:
□ index points to another index table, which points to another index table
□ 1 triple indirect:
□ index points to another index table, which points to another index table, which points to another index table
□ 4kb block
Slides: More implementation
Free-Space Management:
□ Keeps track of free blocks
□ Bitmap:
□ 1 bit indicates whether a block is free or not
□ Linked-List:
□ links together all the free disk blocks
□ "one big file"
□ cannot get contiguous space easily
□ no waste of space
□ Grouping: List of free blocks
□ counting: contiguoys blocks
Efficiency and Performance:
□ Efficiency dependent on:
□ disk allocation and directory algorithms
□ types of data kept in file's directory entry
□ 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
□ buffer vs page cache
□ unified buffer cache: uses the same page cache to cache both memory-mapped pages and ordinary file
system I/O
□ Page cache
□ A page cache caches pages rather than disk blocks using virtual memory techniques
□ Memory-mapped I/O uses a page cache
Consistency Check:
□ Inconsistency
□ between files and their meta-information
□ due to hardware/software failure
□ Consistency Check:
□ fsck: file systems consistency check
□ super block consistency
□ wrong counters
□ inode consistency
□ unreferenced inodes, missing free blocks, bad free blocks
Backup and Restore:
□ Backup to another storage device:
□ eg. magnetic optical etc
□ Full Backup
□ incremental backup:
□ last backup time
□ last modify time
□ Recover lost file or disk by restoring data from backup
Log-structured file system
□ 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
□ 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, transaction is removed from the log.
□ If the file system crashes, all remaining transactions in the log must still be performed.
□ file system retains consistency
SunOS NFS
□ An implementation and a specification of a software system for accesssing remote files across LANs
□ Access remote file system
□ A remote directory is mounted over a local file system directory
□ the mounted directory looks like an integral subtree of the local filesystem.
□ Specification of the remote directory for the mount operation is nontransparent; the host name of
the remote directory must be provided.
□ files in the remote directory can be accessed transparently.
□ independance is achieved through the use of RPC/XDR protocols used between to implementation-independent
interfaces.
□ Mount Protocol:
□ Establishes intial logical connection between server and client
□ Mount operation includes name of remote directory to be mounted and name of server machine storing it
□ Request is mapped to corresonding 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 permitted to mount them
□ Server returns a file handle - key for further accesses
□ file handle - a file-system identifier, and an inode number to identify the mounted dir within the
exported file system
□ only changes client side. server side is unchanged