Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 6 File Systems. Essential requirements 1. Store very large amount of information 2. Must survive the termination of processes persistent 3. Concurrent.

Similar presentations


Presentation on theme: "Chapter 6 File Systems. Essential requirements 1. Store very large amount of information 2. Must survive the termination of processes persistent 3. Concurrent."— Presentation transcript:

1 Chapter 6 File Systems

2 Essential requirements 1. Store very large amount of information 2. Must survive the termination of processes persistent 3. Concurrent access by multiple processes

3 File names

4 File name issues Length Distinguish between upper and lower case Characters allowed

5 File structure types (keyed)

6 File types 1. Regular files 2. Directories (folders) 3. Special 1. Character special (used for serial I/O: ports, printers, networks, etc.) 2. Block special (used for disks)

7 Regular files ASCII or binary  ASCII is easy to use Record oriented (delimiter)?  Binary is space efficient Fixed or variable length

8 File access 1. Sequential 2. Random seek() and fseek() Binary unbuffered: read(), write() Buffered: fread(), fwrite() ASCII, buffered: fscanf(), fprintf()

9 File attributes

10 File operations Create Delete Open Close Read Write Append Seek Get attributes Set attributes Rename

11 Memory-mapped files Mapping files into process virtual address space

12 Directories (folders) 1. Single level 2. Two level 3. Hierarchical

13 Two level directory systems

14 Hierarchical directory systems

15 Path names We already described file names. How do we specify the “path” to a file i.e., how do we navigate the directory structure? Path names: 1. Absolute  c:\usr\ginger\mailbox\junk.cpp  /usr/ginger/mailbox/junk.cpp 2. Relative (to the current working (default) directory) 1.. = current directory:./hw1/junk.cpp or hw1/junk.cpp 2... = directory above current:../music/mm.mp3

16 Directory operations Create Delete Opendir Closedir Readdir Rename Link Unlink Same or similar so be careful!

17 File system implementation Physical disks  Divided into one or more “partitions” (logical, separate disks).  Each partition can have its own file system.  Sector 0 = MBR (master boot record) List of partitions (start and ends) Indicates boot partition Every partition has a boot block (although it may be empty) Boot steps: 1. boot code in MBR executes 2. reads in boot block code of boot partition and executes it 3. boot block code boots OS code in partition

18 File system layout

19 Implementing files 1. Contiguous allocation 2. Linked list allocation 3. Linked list allocation w/ table in memory 4. I-nodes (index-nodes)

20 Implementing files: contiguous allocation Given 1KB blocks, a 50KB file would be allocated 50 consecutive blocks + simple: all we need to know if the disk address of the first block and the number of blocks (or length of the file) + fast: only 1 seek + one read needed for the entire file + sequential and random access are efficient - fragmentation (holes or compaction) - Must specify the size of the file ahead of time. Excellent for CDs and DVDs.

21 Implementing files: contiguous allocation

22 Implementing files: linked list allocation

23 + no fragmentation - Sequential access is easy but requires multiple seeks and reads. - Random access is slow (basically becomes sequential access).

24 Implementing files: linked list w/ table in memory FAT = file allocation table + random access requires only sequential memory access (which is fast) - Need memory to store the table.  20GB and 1KB blocks requires a table with 20M entries. (20M x 4 bytes-per-entry = 80MB)  Size of table is proportional to disk size.

25 Implementing files: linked list w/ table in memory

26 Implementing files: i-nodes i-node table for a file need only be in memory when the file is open. Size of table is proportional to number of files we allow to be open at any time.

27 Implementing files: i-nodes file (disk)

28 Implementing directories (folders) We need to locate (the first block of) the file! We need to store file attributes (e.g., owner, creation time, etc.). i-nodes

29 Shared files (i.e., files in more than one directory)

30 Disk space management Block size  Page size?  Sector, track, or cylinder size?  What is the average size of a file?  For Unix, 1KB is commonly used. Keeping track of free blocks  Linked list of free block numbers  Bitmap Disk quotas  Limits on disk space usage by users.

31 File system reliability Backups 1. Full 2. Incremental  Backups 1. Physical dump 2. Logical dump Consistency  When the system is not shut down properly.

32 File system performance Caching (FIFO, second chance, LRU, etc.). Block read ahead. Reducing disk arm motion.

33 Example file systems MS-DOS/Windows3.1/Windows95 Windows98 Unix V7

34 MS-DOS/Windows3.1/Windows95 Attributes 1. Read-only 2. Hidden 3. System file 4. Should be archived Each entry is 32 bytes.

35 Windows98 Problem: We outgrew 8.3 file names (in 1988).

36 Windows98 & old MS-DOS file names MS-DOS file name:“THEQUI~1.” Long file name:“The quick brown fox jumps over the lazy dog.” First byte is sequence number & Invalid attr’s 0x0f for all long file entries.

37 Unix V7 file system simple

38 disk addr of file block 0 disk addr of file block 9 disk addrs of file blocks 10-15 disk addrs of file blocks 16-51 disk addrs of file blocks 52…


Download ppt "Chapter 6 File Systems. Essential requirements 1. Store very large amount of information 2. Must survive the termination of processes persistent 3. Concurrent."

Similar presentations


Ads by Google