chapter 6 file systems file systems
play

Chapter 6: File Systems File systems n Files n Directories & - PowerPoint PPT Presentation

Chapter 6: File Systems File systems n Files n Directories & naming n File system implementation n Example file systems Chapter 6 CS 1550, cs.pitt.edu 2 (originaly modified by Ethan Long-term information storage n Must store large amounts


  1. Chapter 6: File Systems

  2. File systems n Files n Directories & naming n File system implementation n Example file systems Chapter 6 CS 1550, cs.pitt.edu 2 (originaly modified by Ethan

  3. Long-term information storage n Must store large amounts of data n Gigabytes -> terabytes -> petabytes n Stored information must survive the termination of the process using it n Lifetime can be seconds to years n Must have some way of finding it! n Multiple processes must be able to access the information concurrently Chapter 6 CS 1550, cs.pitt.edu 3 (originaly modified by Ethan

  4. Naming files n Important to be able to find files after they’re created n Every file has at least one name n Name can be n Human-accessible: “foo.c”, “my photo”, “Go Panthers!”, “Go Banana Slugs!” n Machine-usable: 4502, 33481 n Case may or may not matter n Depends on the file system n Name may include information about the file’s contents n Certainly does for the user (the name should make it easy to figure out what’s in it!) n Computer may use part of the name to determine the file type Chapter 6 CS 1550, cs.pitt.edu 4 (originaly modified by Ethan

  5. Typical file extensions Chapter 6 CS 1550, cs.pitt.edu 5 (originaly modified by Ethan

  6. File structures 1 record 1 byte 12A 101 111 sab wm cm avg ejw sab elm br Sequence of bytes Sequence of records S02 F01 W02 Tree Chapter 6 CS 1550, cs.pitt.edu 6 (originaly modified by Ethan

  7. File types Executable file Archive Chapter 6 CS 1550, cs.pitt.edu 7 (originaly modified by Ethan

  8. Accessing a file n Sequential access n Read all bytes/records from the beginning n Cannot jump around n May rewind or back up, however n Convenient when medium was magnetic tape n Often useful when whole file is needed n Random access n Bytes (or records) read in any order n Essential for database systems n Read can be … n Move file marker (seek), then read or … n Read and then move file marker Chapter 6 CS 1550, cs.pitt.edu 8 (originaly modified by Ethan

  9. File attributes Chapter 6 CS 1550, cs.pitt.edu 9 (originaly modified by Ethan

  10. File operations n Create: make a new file n Append: like write, but only at the end of the file n Delete: remove an existing file n Seek: move the “current” pointer elsewhere in the file n Open: prepare a file to be accessed n Get attributes: retrieve attribute information n Close: indicate that a file is no longer being accessed n Set attributes: modify attribute information n Read: get data from a file n Rename: change a file’s n Write: put data to a file name Chapter 6 CS 1550, cs.pitt.edu 10 (originaly modified by Ethan

  11. Using file system calls Chapter 6 CS 1550, cs.pitt.edu 11 (originaly modified by Ethan

  12. Using file system calls, continued Chapter 6 CS 1550, cs.pitt.edu 12 (originaly modified by Ethan

  13. Memory-mapped files Program Program text text abc Data Data xyz Before mapping After mapping n Segmented process before mapping files into its address space n Process after mapping n Existing file abc into one segment n Creating new segment for xyz Chapter 6 CS 1550, cs.pitt.edu 13 (originaly modified by Ethan

  14. More on memory-mapped files n Memory-mapped files are a convenient abstraction n Example: string search in a large file can be done just as with memory! n Let the OS do the buffering (reads & writes) in the virtual memory system n Some issues come up… n How long is the file? n Easy if read-only n Difficult if writes allowed: what if a write is past the end of file? n What happens if the file is shared: when do changes appear to other processes? n When are writes flushed out to disk? n Clearly, easier to memory map read-only files… Chapter 6 CS 1550, cs.pitt.edu 14 (originaly modified by Ethan

  15. Directories n Naming is nice, but limited n Humans like to group things together for convenience n File systems allow this to be done with directories (sometimes called folders ) n Grouping makes it easier to n Find files in the first place: remember the enclosing directories for the file n Locate related files (or just determine which files are related) Chapter 6 CS 1550, cs.pitt.edu 15 (originaly modified by Ethan

  16. Single-level directory systems Root directory A A B C foo bar baz blah n One directory in the file system n Example directory n Contains 4 files ( foo , bar , baz , blah ) n owned by 3 different people: A, B, and C (owners shown in red) n Problem: what if user B wants to create a file called foo ? Chapter 6 CS 1550, cs.pitt.edu 16 (originaly modified by Ethan

  17. Two-level directory system Root directory A B C A A B B C C C foo bar foo baz bar foo blah n Solves naming problem: each user has her own directory n Multiple users can use the same file name n By default, users access files in their own directories n Extension: allow users to access files in others’ directories Chapter 6 CS 1550, cs.pitt.edu 17 (originaly modified by Ethan

  18. Hierarchical directory system Root directory A B C B B C C C A A A foo Papers bar foo blah Papers foo Photos A A A B B os.tex sunset Family foo.tex foo.ps A A A sunset kids Mom Chapter 6 CS 1550, cs.pitt.edu 18 (originaly modified by Ethan

  19. Unix directory tree Chapter 6 CS 1550, cs.pitt.edu 19 (originaly modified by Ethan

  20. Operations on directories n Create: make a new n Readdir: read a directory directory entry n Delete: remove a directory n Rename: change the name (usually must be empty) of a directory n Similar to renaming a file n Opendir: open a directory to n Link: create a new entry in allow searching it a directory to link to an n Closedir: close a directory existing file (done searching) n Unlink: remove an entry in a directory n Remove the file if this is the last link to this file Chapter 6 CS 1550, cs.pitt.edu 20 (originaly modified by Ethan

  21. File system implementation issues n How are disks divided up into file systems? n How does the file system allocate blocks to files? n How does the file system manage free space? n How are directories handled? n How can the file system improve… n Performance? n Reliability? Chapter 6 CS 1550, cs.pitt.edu 21 (originaly modified by Ethan

  22. Carving up the disk Entire disk Partition table Master Partition 1 Partition 2 Partition 3 Partition 4 boot record Boot Super Free space Index Files & directories block block management nodes Chapter 6 CS 1550, cs.pitt.edu 22 (originaly modified by Ethan

  23. Contiguous allocation for file blocks A B C D E F A Free C Free E F n Contiguous allocation requires all blocks of a file to be consecutive on disk n Problem: deleting files leaves “holes” n Similar to memory allocation issues n Compacting the disk can be a very slow procedure… Chapter 6 CS 1550, cs.pitt.edu 23 (originaly modified by Ethan

  24. Contiguous allocation 0 1 2 3 Data in each file is stored in n consecutive blocks on disk Simple & efficient indexing n n Starting location (block #) on disk ( start ) 4 5 6 7 n Length of the file in blocks ( length ) Random access well-supported n Difficult to grow files n 8 9 10 11 n Must pre-allocate all needed space n Wasteful of storage if file isn’t using all of the space Logical to physical mapping is easy n blocknum = (pos / 1024) + start; Start=5 offset_in_block = pos % Length=2902 1024; Chapter 6 CS 1550, cs.pitt.edu 24 (originaly modified by Ethan

  25. Linked allocation 0 1 2 3 n File is a linked list of disk 4 6 blocks n Blocks may be scattered around the disk drive 4 5 6 7 n Block contains both pointer x x to next block and data n Files may be as long as needed 8 9 10 11 n New blocks are allocated as 0 needed n Linked into list of blocks in file Start=9 Start=3 n Removed from list (bitmap) End=4 End=6 of free blocks Length=2902 Length=1500 Chapter 6 CS 1550, cs.pitt.edu 25 (originaly modified by Ethan

  26. Finding blocks with linked allocation n Directory structure is simple n Starting address looked up from directory n Directory only keeps track of first block (not others) n No wasted space - all blocks can be used n Random access is difficult: must always start at first block! n Logical to physical mapping is done by block = start; offset_in_block = pos % 1020; for (j = 0; j < pos / 1020; j++) { block = block->next; } n Assumes that next pointer is stored at end of block n May require a long time for seek to random location in file Chapter 6 CS 1550, cs.pitt.edu 26 (originaly modified by Ethan

  27. Linked allocation using a RAM-based table 0 4 n Links on disk are slow 1 -1 n Keep linked list in memory 2 -1 3 -2 n Advantage: faster 4 -2 n Disadvantages 5 -1 n Have to copy it to disk at 6 3 B some point 7 -1 n Have to keep in-memory and 8 -1 on-disk copy consistent 9 0 A 10 -1 11 -1 12 -1 13 -1 14 -1 15 -1 Chapter 6 CS 1550, cs.pitt.edu 27 (originaly modified by Ethan

  28. Using a block index for allocation n Store file block addresses in Name index size an array grades 4 4802 n Array itself is stored in a disk block 0 1 2 3 n Directory has a pointer to this disk block n Non-existent blocks indicated 6 by -1 4 5 6 7 9 n Random access easy 7 n Limit on file size? 0 8 8 9 10 11 Chapter 6 CS 1550, cs.pitt.edu 28 (originaly modified by Ethan

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend