610 likes | 755 Vues
File Systems. 6.1 Files 6.2 Directories 6.3 File system implementation 6.4 Example file systems. Chapter 6. Long-term Information Storage. Must store large amounts of data Information stored must survive the termination of the process using it
E N D
File Systems 6.1 Files 6.2 Directories 6.3 File system implementation 6.4 Example file systems Chapter 6
Long-term Information Storage • Must store large amounts of data • Information stored must survive the termination of the process using it • Multiple processes must be able to access the information concurrently. In short:
Long-term Information Storage Files: Good! No Files: Bad!
File Naming Typical file extensions.
File Structure • Three kinds of files • byte sequence • record sequence • tree
File Types: Text and Binary (a) An executable file (b) An archive
File Access • Sequential access • read all bytes/records from the beginning • cannot jump around, could rewind or back up • convenient when medium was mag tape • Random access • bytes/records read in any order • essential for data base systems • read can be … • move file marker (seek), then read or … • read and then move file marker
File Attributes Possible file attributes
Example Assume all counters are currently 0. Consider the case when pages 0,2,4, and 5 are referenced between last interrupt.
Create Delete Open Close Read Write Append Seek Get attributes Set Attributes Rename File Operations
-rwxr-xr-x 1 dickens spcprj 20580000 Nov 16 2003 BM.Contention.Big • -rw-r--r-- 1 dickens spcprj 5832 Nov 14 2003 LR.Contention.Low • -rwxr-xr-x 1 dickens spcprj 5180000 Nov 14 2003 bitmap.contention.1 • -rwxr-xr-x 1 dickens spcprj 12434 Nov 14 2003 Companion.4 • -rw-r--r-- 1 dickens spcprj 2767 Nov 14 2003 temp.Swap • -rw-r--r-- 1 dickens spcp 2767 Nov 14 2003 temp • -rwxr-xr-x 1 dickens spc 16969 Nov 14 2003 ind_calc • -rw-r--r-- 1 dickens spcprj 1217 Nov 14 2003 Temp_File.contention
Memory Mapped Files • Use system calls like: • map (filename, starting address, size); • unmap (filename, starting address, size) ; • Implemented through paging mechanism. • Advantages of this: ?
DirectoriesSingle-Level Directory Systems • A single level directory system • contains 4 files • owned by 3 different people, A, B, and C
Two-level Directory Systems Letters indicate owners of the directories and files
Hierarchical Directory Systems A hierarchical directory system
Path Names A UNIX directory tree
Path Names To Open dict path is: /usr/jim/dict.
Create Delete Opendir Closedir Readdir Rename Link Unlink Directory Operations
File System Implementation A possible file system layout
Implementing Files (1) (a) Contiguous allocation of disk space for 7 files (b) State of the disk after files D and E have been removed
Implementing Files (2) Storing a file as a linked list of disk blocks
Implementing Files (3) Linked list allocation using a file allocation table in RAM
Entry 4 bytes. Blocks 1K. 20 Million Entries == 80 MB for table.
Implementing Files (4) An example i-node
An example i-node Double Indirection Triple Indirection Disk block containing addresses of disk blocks containing addresses
Implementing Directories (1) (a) A simple directory fixed size entries disk addresses and attributes in directory entry (b) Directory in which each entry just refers to an i-node
Implementing Directories (2) • Two ways of handling long file names in directory • (a) In-line • (b) In a heap
Shared Files (1) File system containing a shared file
Shared Files (1) Cyclic Family Tree
Links (a) Situation prior to linking (b) After the link is created (c) After the original owner removes the file
Symbolic Links • Provide the path name of the target file in the linked file
Disk Space Management (1) • Dark line (left hand scale) gives data rate of a disk • Dotted line (right hand scale) gives disk space efficiency • All files 2KB Block size
Disk Space Management (2) (a) Storing the free list on a linked list (b) A bit map
Consistency Issues • File system can become inconsistent if there is a system crash and recent changes have not all been written to disk. • Consider: • inode cached • New block allocated to file • Block filled, written to disk • Free list updated and written to disk • System crash • Now block not on either free list or listed as part of a file
Consider: • inode cached • Free list cached • Block 10 deleted from file A. Cached inode updated. • Block 10 now on free list and allocated to file B. • File B closed, inode written to disk. • System crash. • Now block 10 listed as belonging to two files.
File System Consistency • Build two tables, each of which counts number of blocks. • Table 1: Number of times block is in a file. • Table 2: Number of times block is in the free list. • Read all inodes. • Increment tables.
File System Reliability (3) • File system states (a) consistent (b) missing block (c) duplicate block in free list (d) duplicate data block
Figure b- missing block. • Adds it back to the free list. • Figure c- block listed twice in free list • Rebuilds the free list. • Figure d- Same block belongs to two or more files. • Make copy and insert in one of the files.
File System Performance (1) The block cache data structures
Problem with LRU • If frequently used block is inode or directory block, may want to write it out. • Modify LRU to account for importance of block. • Unix: synch() • MS-DOS: Write-through cache
Most systems write critical blocks to disk immediately (but not necessarily non-critical blocks). • If system crashes, file system likely intact (but users may become unglued). • Unix: System call sync that causes all modified blocks to be written to disk. • An update daemon is running in the background and alternates between sleeping and calling synch. Generally every 30 seconds. • MS-DOS: Write-through cache. Every change is written through to disk.
File System Performance (2) • I-nodes placed at the start of the disk • Disk divided into cylinder groups • each with its own blocks and i-nodes
CP/M • 8080 Chip • Max 64K RAM • 720K Floppy. • Size of entire OS: 3584 bytes. • Shell: 2K bytes.
The CP/M File System (1) Memory layout of CP/M
Directory • One directory • Entries 32 bytes (fixed). • After booting, reads in directory and computes free list. • Does not save free list. • Provides 38 systems calls, 17 File system related. • File blocks are 1K.
The CP/M File System (2) The CP/M directory entry format
MS-DOS • Added hierarchical directory structure. • Use fixed 32-byte directory entry • Added attributes: read-only, archived, hidden, system. • Time field: seconds (5 bits), minutes (6 bits), hours (5 bits). • Date: day (5 bits), month (4 bits), year (7 bits– only good to 2107).