cs431-cotter1 file systems tanenbaum chapter 4 silberschatz chapters 10, 11, 12
TRANSCRIPT
![Page 1: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/1.jpg)
cs431-cotter 1
File SystemsFile Systems
Tanenbaum Chapter 4
Silberschatz Chapters 10, 11, 12
![Page 2: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/2.jpg)
cs431-cotter 2
Essential requirements for long-term information storage:
• It must be possible to store a very large amount of information.
• The information must survive the termination of the process using it.
• Multiple processes must be able to access the information concurrently.
File Systems
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 3: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/3.jpg)
cs431-cotter 3
File Structure
• None:– File can be a sequence of words or bytes
• Simple record structure:– Lines– Fixed Length– Variable Length
• Complex Structure:– Formatted documents– Relocatable load files
• Who decides?
![Page 4: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/4.jpg)
cs431-cotter 4
Think of a disk as a linear sequence of fixed-size blocks and supporting reading and writing of blocks. Questions that quickly arise:
• How do you find information?• How do you keep one user from reading another’s data?• How do you know which blocks are free?
File Systems
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 5: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/5.jpg)
cs431-cotter 5Figure 4-1. Some typical file extensions.
File Naming
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 6: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/6.jpg)
cs431-cotter 6
File Access Methods
• Sequential Access– Based on a magnetic tape model– read next, write next– reset
• Direct Access– Based on fixed length logical records– read n, write n– position to n– relative or absolute block numbers
![Page 7: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/7.jpg)
cs431-cotter 7
Figure 4-2. Three kinds of files. (a) Byte sequence. (b) Record sequence. (c) Tree.
File Structure
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 8: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/8.jpg)
cs431-cotter 8Figure 4-3. (a) An executable file. (b) An archive.
File Types
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 9: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/9.jpg)
cs431-cotter 9
Figure 4-4a. Some possible file attributes.
File Attributes
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 10: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/10.jpg)
cs431-cotter 10
The most common system calls relating to files:
File Operations
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
• Append• Seek• Get Attributes• Set Attributes• Rename
• Create• Delete• Open • Close• Read• Write
![Page 11: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/11.jpg)
cs431-cotter 11Figure 4-5. A simple program to copy a file.
Example Program Using File System Calls (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
. . .
![Page 12: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/12.jpg)
cs431-cotter 12
Figure 4-5. A simple program to copy a file.
Example Program Using File System Calls (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 13: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/13.jpg)
cs431-cotter 13
Directory Structure
• Collection of nodes containing information on all files
F1F2
F3
F4 F5
![Page 14: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/14.jpg)
cs431-cotter 14
Information in a Device Directory
• File name:• File Type:• Address:• Current Length• Maximum Length• Date Last accessed (for archiving)• Date Last updated (for dumping)• Owner ID• Protection information
![Page 15: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/15.jpg)
cs431-cotter 15
Directory Operations
• Search for a file• Create a file• Delete a file• List a directory• Rename a file• Traverse the file system
![Page 16: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/16.jpg)
cs431-cotter 16
Objectives for a Directory System
• Make it efficient– It should be easy to locate a file quickly
• Make file (and directory) naming convenient– Allow 2 users to have the same name for different files– Allow the same file to have more than 1 name
• Allow logical grouping of files– All word processing files together– All c++ files together– etc.
![Page 17: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/17.jpg)
cs431-cotter 17
Alternative Directory Structures
• Single-Level Directory
• Issues:– Naming– Grouping
cat bo a test data mail cont hex word calc
![Page 18: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/18.jpg)
cs431-cotter 18
Alternative Directory Structures
• Two-Level Directory
User1 User2 User3
![Page 19: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/19.jpg)
cs431-cotter 19
Tree-Structured Directory
![Page 20: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/20.jpg)
cs431-cotter 20
Figure 4-8. A UNIX directory tree.
Path Names
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 21: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/21.jpg)
cs431-cotter 21
File System Structure• A data structure on a disk that holds files• Disk Storage attributes:
– Allows direct access to any given block of information– Supports re-writing in place (copy block, modify,
rewrite)
• Organized in Layers:– Application Programs– Logical file system– file-organization module– basic file system– I/O control– devices
![Page 22: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/22.jpg)
cs431-cotter 22
File System Organization
• Devices– Peripheral equipment- disk drives, tapes, etc.
• I/O Control– device drivers and interrupt handlers– Communicates directly with peripheral devices– Starts and closes out I/O request
• Basic File System– Requires knowledge of physical device (track,
cylinder, head, etc.)– Manages data transfer at block level (buffering,
placement)
![Page 23: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/23.jpg)
cs431-cotter 23
File System Organization• File-organization Module
– Maps logical block structure of file to physical block structure of disk
– Includes free space manager
• Logical file system– Manages file directory information – Provides security, protection
• Applications– Maintains basic data about the file– Allows users to access file information
![Page 24: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/24.jpg)
cs431-cotter 24
File System Structure
• Access to File– file control block (generic)– file descriptor (UNIX)– file handle (Windows)
• File System Requirements– boot mechanism– file system information– file information– file data
![Page 25: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/25.jpg)
cs431-cotter 25
Allocation MethodsContiguous Allocation
• Each file occupies a set of contiguous blocks on the disk.
• Number of blocks needed identified at file creation– May be increased using file extensions
• Advantages:– Simple to implement– Good for random access of data
• Disadvantages– Files cannot grow– Wastes space
![Page 26: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/26.jpg)
cs431-cotter 26
Contiguous Allocation
0 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
FileA
FileB
FileC
FileE
FileD
File Allocation Table
File Name Start Block Length
FileA
FileBFileCFileDFileE
2 39 5
18 830 226 3
FileA
![Page 27: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/27.jpg)
cs431-cotter 27
Allocation MethodsLinked Allocation
• Each file consists of a linked list of disk blocks.
• Advantages:– Simple to use (only need a starting address)– Good use of free space
• Disadvantages:– Random Access is difficult
ptrdata ptrdata ptrdata Nulldata
![Page 28: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/28.jpg)
cs431-cotter 28
Linked Allocation
0 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
FileB File Allocation Table
File Name Start Block End
... ... ...
......FileB 28
...1
![Page 29: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/29.jpg)
cs431-cotter 29
Linked Allocation
0 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
FileB File Allocation Table
File Name Start Block End
... ... ...
......FileB 28
...1
![Page 30: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/30.jpg)
cs431-cotter 30
Allocation MethodsIndexed Allocation
• Collect all block pointers into an index block.
• Advantages:– Random Access is easy– No external fragmentation
• Disadvantages– Overhead of index block
Index Table
![Page 31: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/31.jpg)
cs431-cotter 31
Indexed Allocation
1
83
14
28
0 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
File Allocation Table
File Name Index Block
Jeep 24
![Page 32: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/32.jpg)
cs431-cotter 32
Indexed Allocation
1831428
0 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
File Allocation Table
File Name Index Block
Jeep 24
![Page 33: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/33.jpg)
cs431-cotter 33
UNIX File SystemFile Types
• Regular File
• Directory
• Block-oriented Device
• Character-oriented Device
• Symbolic Link
![Page 34: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/34.jpg)
cs431-cotter 34
UNIX File Ownership
read write execute
owner
group
others
1 0
00
00
1
1
1
(for directories: read, write, search)
-rwx------ 1 rsmith is 785 Feb 11 1994 send_exedrwxr-xr-x 2 rsmith is 512 Apr 16 13:49 sysmon_server
![Page 35: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/35.jpg)
cs431-cotter 35
File Access Model
• open -- read -- write -- close
fdesc = open (*filename, r / w / a / +);n = read (fdesc, buff, 24);n = write (fdesc, buff, 24);lseek (fdesc, 100L, L_SET);
(L_SET, L_CUR, L_END)
close (fdesc);
![Page 36: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/36.jpg)
cs431-cotter 36
Concurrent File Access
• From separate processes– OPEN generates a new file descriptor.– Allows independent access to the same file.– No inherent blocking in access
• From parent / child processes– fork duplicates all active file descriptors. – all processes access a common “current” pointer
• File locking– flock, lockf
![Page 37: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/37.jpg)
cs431-cotter 37
UNIX File Sharing- unrelated processes -
fd flags ptrfd 0
process table entry
fd flags ptrfd 0
process table entry
File Table
file status flagscurrent file offsetv-node ptr
file status flagscurrent file offsetv-node ptr
V-node Table
v-node infoI-node infofile size
![Page 38: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/38.jpg)
cs431-cotter 38
UNIX File Sharing - related processes -
fd flags ptrfd 0
process table entry
fd flags ptrfd 0
process table entryfile status flagscurrent file offsetv-node ptr
File Table
file status flagscurrent file offsetv-node ptr
V-node Table
v-node infoI-node infofile size
![Page 39: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/39.jpg)
cs431-cotter 39
direct blocks
UNIX i-node
modeowners(2)
timestamps(3)size block
count
single indir
triple indir
double indir
data
data
data
![Page 40: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/40.jpg)
cs431-cotter 40
direct blocks
UNIX i-node
modeowners(2)
timestamps(3)size block
count
single indir
triple indir
double indir
data
data
data
data
data::
![Page 41: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/41.jpg)
cs431-cotter 41
direct blocks
UNIX i-node
modeowners(2)
timestamps(3)size block
count
single indir
triple indir
double indir
data
data
data
data
data::
::
::
::
data
data
data
data
![Page 42: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/42.jpg)
cs431-cotter 42
I-node File Sizes
1 KB block 2KB block 4KB block
Direct 12 k bytes 24 k bytes 48 k bytes
Single indirect
256 k bytes 1 M bytes 4 M bytes
Double indirect
64 M bytes 512 M bytes
2 G bytes
Triple indirect
16 G bytes 256 G bytes
2 T bytes
![Page 43: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/43.jpg)
cs431-cotter 43
Figure 4-20. Percentage of files smaller than a given size (in bytes).
Disk Space Management Block Size (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 44: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/44.jpg)
cs431-cotter 44
Disk Drive Layout(simplified)
DiskDrive
partition partition partition
I-list directory blocks and data blocks
I-node I-node I-node I-node
Block Group
Partition Block group Block group Block group
![Page 45: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/45.jpg)
cs431-cotter 45
Sample filesystem: Creating the directory “testdir”
i-nodei-node1267
i-nodei-node2549
i-listdirectoryblock
![Page 46: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/46.jpg)
cs431-cotter 46
i-nodei-node1267
i-nodei-node2549
i-listdirectoryblock
1267 •
Sample filesystem: Creating the directory “testdir”
![Page 47: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/47.jpg)
cs431-cotter 47
i-nodei-node1267
i-nodei-node2549
i-listdirectoryblock
2549 testdir
1267 •
Sample filesystem: Creating the directory “testdir”
![Page 48: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/48.jpg)
cs431-cotter 48
i-nodei-node1267
i-nodei-node2549
i-listdirectoryblock
2549 testdir
1267 •
Sample filesystem: Creating the directory “testdir”
![Page 49: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/49.jpg)
cs431-cotter 49
i-nodei-node1267
i-nodei-node2549
i-listdirectoryblock
directoryblock
2549 •
1267 • •
2549 testdir
1267 •
Sample filesystem: Creating the directory “testdir”
![Page 50: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/50.jpg)
cs431-cotter 50
Sample filesystem after creating the directory “testdir”
i-nodei-node1267
i-nodei-node2549
i-listdirectoryblock
directoryblock
2549 •
1267 • •
2549 testdir
1267 •
![Page 51: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/51.jpg)
cs431-cotter 51
Viewing directory structure
• ls –ai /– 2 .– :– 1730 home
• ls –ai /home– 1730 .– 2 . .– :– 199 rcotter
• ls –ai /home/rcotter– 199 .– 1730 . .– :– 241224 cs431
• ls –ai ~/cs431– 241224 .– 199 . .– :– 245436 exec.cpp
![Page 52: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/52.jpg)
cs431-cotter 52
Shared Files (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Figure 4-16. File system containing a shared file.
ln –s shared_file new_link
![Page 53: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/53.jpg)
cs431-cotter 53
Figure 4-17. (a) Situation prior to linking. (b) After the link is created. (c) After the original owner removes the file.
Shared Files (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 54: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/54.jpg)
cs431-cotter 54
Linux File System Structure• Linux uses a Virtual File System (VFS)
– Defines a file object– Provides an interface to manipulate that object
• Designed around OO principles– File system object– File object– Inode object (index node)
• Primary File System - ext2fs– Supports (or maps) several other systems
(MSDOS, NFS (network drives), VFAT (W95), HPFS (OS/2), etc.
![Page 55: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/55.jpg)
cs431-cotter 55
Virtual Filesystem• A kernel software layer that handles all system calls
related to a standard UNIX filesystem.• Supports:
– Disk-based filesystems• IDE Hard drives (UNIX, LINUX, SMB, etc.)• SCSI Hard drives• floppy drives
– Network filesystems• remotely connected filesystems
– Special filesystems• /proc
![Page 56: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/56.jpg)
cs431-cotter 56
VF Exampleinf = open (“/floppy/test”,
O_RDONLY, 0);
outf = open (“/tmp/test”, O_WRONLY|O_CREATE|O_TRUNC, 0600);
do {
cnt = read(inf, buf, 4096);
write (outf, buf, cnt);
} while (cnt);
close (outf);
close (inf);
ext2 MS-DOS
VFS
cp
![Page 57: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/57.jpg)
cs431-cotter 57
Virtual file system Model
• Superblock object– metadata about a mounted filesystem
• inode object– general information about a specific file
• file object– information about process and open file interaction
• dentry object– directory entry information
![Page 58: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/58.jpg)
cs431-cotter 58
Virtual Filesystem and Processes
disk file
Process 1
Process 2
Process 3
file object
dentryobject
dentryobject
file object
file object
superblock inode object
![Page 59: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/59.jpg)
cs431-cotter 59
Ext2fs History
• Minux
• extfs
• ext2fs - 1994
![Page 60: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/60.jpg)
cs431-cotter 60
Ext2fs Blocks
• 1k default
• 2k, 4k possible
• choice based on file sizes
![Page 61: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/61.jpg)
cs431-cotter 61
Ext2fs Disk Data Structures
• Each Block Group contains:– A copy of the Super Block– A copy of the group of block group descriptors– A data block bitmap (for this group)– An inode bitmap (for this group) – A group of inodes (for this group)– Data blocks
BootBlock
Block Group 0 Block Group N
SuperBlock
GroupDescriptors
Data blockBitmap
InodeBitmap
InodeTable
Data Blocks
![Page 62: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/62.jpg)
cs431-cotter 62
Disk Data Structures
• SuperBlock– Contains metadata about the block group– # free blocks, – # free inodes, – block size, – times (last mount, last write), – check status, – blocks to pre-allocate, – alignments, etc. (~38 items)
![Page 63: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/63.jpg)
cs431-cotter 63
Disk Data Structures
• Block Groups– Block group limited to 8 * block size by data
block bitmap.– 1k block limited to 8,192 blocks or 8 mbytes
per block group. 4k block = 128 mbytes
• Group descriptor - 24 bytes per group– block numbers for bitmaps, start of tables, etc.
![Page 64: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/64.jpg)
cs431-cotter 64
Disk Data Structures
• Inode Table– Inodes - 128 bytes– File type and access rights– owner– length– timestamps (last access, last change, etc.)– hard links counter– pointers to data blocks,– etc.
![Page 65: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/65.jpg)
cs431-cotter 65
Disk Data Structures
• Items cached in memory on filesystem mount– Superblock - always cached– Group descriptor - always cached– Block bitmap - fixed limit - most recent only– Inode bitmap - fixed limit - most recent only– Inode - dynamic– Data block - dynamic
![Page 66: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/66.jpg)
cs431-cotter 66
File Blocks Grouped
• Physically and logically
• Inodes distributed throughout disk
• Data blocks allocated close to inode
• Pre-allocation of free blocks to minimize frag.
![Page 67: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/67.jpg)
cs431-cotter 67
Summary Features
• Fast Symbolic Links
• pre-allocation of data blocks
• file-updating strategy
• immutable files or append only files
![Page 68: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/68.jpg)
cs431-cotter 68
Journal File Systems
• Designed to speed file system recovery from system crashes.
• Traditional systems use an fs recovery tool (e.g. fsck) to verify system integrity
• As file system grows, recovery time grows. • Journal File Systems track changes in meta-data
to allow rapid recovery from crashes
![Page 69: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/69.jpg)
cs431-cotter 69
Journal File System
• Uses a version of a transaction log to track changes to file system directory records.
• If a system crash occurs, the transaction log can be reviewed back to a check point to verify any pending work (either undo or redo).
• For large systems, recovery time goes from hours or days to seconds.
![Page 70: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/70.jpg)
cs431-cotter 70
Journal File System - Examples
• XFS– Commercial port by SGI (IRIX OS)– Based on 64 bit system (ported to 32 bit)– Supports large systems 2TB -> 9 million TB– Uses B+trees for improved performance– Journals file system meta-data – Supports Quotas, ACLs.– Supports filesystem extents (contiguous blocks)
![Page 71: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/71.jpg)
cs431-cotter 71
Journal File System - Examples
• JFS– Commercial Port by IBM. Used in OS/2– 64 bit system ported to 32 bits.– Journal support of meta-data.– System Size 2TB -> 32PB– Built to scale on SMP architectures– Uses B+trees for improved performance– Supports use of extents.
![Page 72: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/72.jpg)
cs431-cotter 72
Journal File System - Examples
• ReiserFS– Designed originally for Linux (32 bit system)– Supports file systems to 2TB -> 16TB– Journal support of meta-data– Btree structure supports large file counts– Supports block packing for small files– No fixed inode allocation - more flexible.
![Page 73: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/73.jpg)
cs431-cotter 73
Journal File System - Examples
• Ext3fs– Simple extension of ext2fs that adds journaling– All virtual file system operations are journaled.– Other limitations of ext2fs remain.
![Page 74: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/74.jpg)
cs431-cotter 74
Journal File System - Examples
• ext4fs– Next generation of file system development, incorporating
improvements and changes to ext3fs.– Journalling filesystem
• Improvements is journal checksumming– Larger file systems – 1 MTB (exabyte)
• Larger files – 16 TB– Delayed block allocation, multi-block allocator
• Allows files to be written as contiguous sequences of blocks: improves read performance of streaming data files.
• Poses the risk of lost data if system crashes before data is written.– Use of extents
• Large (<= 128 MB) contiguous physical blocks.
![Page 75: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/75.jpg)
cs431-cotter 75
Free Space Management• Bit Vector management
• One bit for each block– 0 = free; 1 = occupied
• Use bit manipulation commands to find free block
• Bit vector requires space– block size = 4096 = 2 12
– disk size = 1 gigabyte = 2 30
– bits = 2 (30-12) = 2 18 = 32k bytes
0 1.....11 0
![Page 76: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/76.jpg)
cs431-cotter 76
Free Space Management
• Bit vector (advantages):– Easy to find contiguous blocks
• Bit vector (disadvantages):– Wastes space (bits allocated to unavailable blocks)
• Issues:– Must keep bit vector on disk (reliability)– Must keep bit vector in memory (speed)– cannot allow memory != disk (memory = 1, disk = 0)
![Page 77: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/77.jpg)
cs431-cotter 77
Free Space Management
• Linked List management– Use linked list to identify free space
• Advantages:– no wasted space
• Disadvantages:– harder to identify contiguous space.
• Issues:– Must protect pointer to free list
![Page 78: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/78.jpg)
cs431-cotter 78
Free Space Management
• Grouping of blocks
Bootblock
Filesystem
descriptor
Filedescriptors
![Page 79: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/79.jpg)
cs431-cotter 79
Figure 4-29. (a) I-nodes placed at the start of the disk. (b) Disk divided into cylinder groups, each with its own blocks and i-nodes.
Reducing Disk Arm Motion
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 80: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/80.jpg)
cs431-cotter 80Figure 4-22. (a) Storing the free list on a linked list. (b) A bitmap.
Keeping Track of Free Blocks (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 81: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/81.jpg)
cs431-cotter 81
Figure 4-24. Quotas are kept track of on a per-user basis in a quota table.
Disk Quotas
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 82: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/82.jpg)
cs431-cotter 82
Backups to tape are generally made to handle one of two potential problems:
• Recover from disaster.• Recover from stupidity.
File System Backups (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 83: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/83.jpg)
cs431-cotter 83
Figure 4-25. A file system to be dumped. Squares are directories, circles are files. Shaded items have been modified since last dump. Each directory and file is labeled by its i-node number.
File System Backups (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 84: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/84.jpg)
cs431-cotter 84
Figure 4-26. Bitmaps used by the logical dumping algorithm.
File System Backups (3)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 85: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/85.jpg)
cs431-cotter 85
Figure 4-27. File system states. (a) Consistent. (b) Missing block. (c) Duplicate block in free list. (d) Duplicate data block.
File System Consistency
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 86: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/86.jpg)
cs431-cotter 86
Figure 4-28. The buffer cache data structures.
Caching (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 87: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/87.jpg)
cs431-cotter 87
• Some blocks, such as i-node blocks, are rarely referenced two times within a short interval.
• Consider a modified LRU scheme, taking two factors into account:
•Is the block likely to be needed again soon?•Is the block essential to the consistency of the file system?
Caching (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 88: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/88.jpg)
cs431-cotter 88
Example File Systems
• CD-ROM– ISO 9660– Rock Ridge– Joliet
• MS-DOS
![Page 89: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/89.jpg)
cs431-cotter 89
Figure 4-30. The ISO 9660 directory entry.
The ISO 9660 File System
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 90: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/90.jpg)
cs431-cotter 90
Rock Ridge extension fields:
• PX - POSIX attributes.• PN - Major and minor device numbers.• SL - Symbolic link.• NM - Alternative name.• CL - Child location.• PL - Parent location.• RE - Relocation.• TF - Time stamps.
Rock Ridge Extensions
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 91: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/91.jpg)
cs431-cotter 91
Joliet extension fields:
• Long file names.• Unicode character set.• Directory nesting deeper than eight levels.• Directory names with extensions
Joliet Extensions
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 92: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/92.jpg)
cs431-cotter 92
Figure 4-31. The MS-DOS directory entry.
The MS-DOS File System (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 93: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/93.jpg)
cs431-cotter 93
Figure 4-32. Maximum partition size for different block sizes. The empty boxes represent forbidden combinations.
The MS-DOS File System (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
![Page 94: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/94.jpg)
cs431-cotter 94
Summary
• File Structures
• Directory Structures
• File System Implementation
• File System Management
• Example File Systems
![Page 95: Cs431-cotter1 File Systems Tanenbaum Chapter 4 Silberschatz Chapters 10, 11, 12](https://reader037.vdocuments.net/reader037/viewer/2022103122/56649d015503460f949d3403/html5/thumbnails/95.jpg)
cs431-cotter 95
Questions• Two primary access methods are used to manage files.
Discuss these two methods, including which types of physical devices each is normally associated with.
• What is the difference between a tree structured file directory and an acyclic graph directory? Please give an example Operating System used today that uses each.
• Discuss 3 ways in which files might be allocated to file stores (disks). What are the advantages or disadvantages of each?
• How might a file system manage its free space so that it can easily assign space for a new file when needed? Give at least 2 approaches.
• What can an OS designer to improve the efficiency of a file system? What factors should be considered? How do those affect the efficiency of the system?
• Discuss at least 2 mechanisms that might be used to ensure the recovery of information stored in a file system.