1 / 60

File Systems

File Systems. Thomas Plagemann University of Oslo (includes slides from: Carsten Griwodz , P ål Halvorsen, Kai Li, Andrew Tanenbaum , Maarten van Steen). Todays Plan. Long-term Information Storage. Must store large amounts of data

borna
Download Presentation

File Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. File Systems Thomas Plagemann University of Oslo (includes slides from: CarstenGriwodz, Pål Halvorsen, Kai Li, Andrew Tanenbaum, Maarten van Steen)

  2. Todays Plan

  3. 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

  4. Physical reality Block oriented Physical sector numbers No protection among users of the system Data might be corrupted if machine crashes File system abstraction Byte oriented Named files Users protected from each other Robust to machine failures Why Files?

  5. File Naming Typical file extensions.

  6. File Structure • Three kinds of files • byte sequence • record sequence • tree

  7. File Types (a) An executable file (b) An archive

  8. 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

  9. File Attributes Possible file attributes

  10. Create Delete Open Close Read Write Append Seek Get attributes Set Attributes Rename File Operations

  11. An Example Program Using File System Calls (1/2)

  12. An Example Program Using File System Calls (2/2)

  13. DirectoriesSingle-Level Directory Systems • A single level directory system • contains 4 files • owned by 3 different people, A, B, and C

  14. Two-level Directory Systems Letters indicate owners of the directories and files

  15. Hierarchical Directory Systems A hierarchical directory system

  16. Path Names A UNIX directory tree

  17. Create Delete Opendir Closedir Readdir Rename Link Unlink Directory Operations

  18. Nowweareopeningthebox Inodes Bit map FS layout

  19. File System Components User • Disk management • Arrange collection of disk blocks into files • Naming • User gives file name, not track or sector number, to locate data • Security • Keep information secure • Reliability/durability • When system crashes, lose stuff in memory, but want files to be durable File Naming File access Disk management Disk drivers

  20. File System Implementation A possible file system layout

  21. 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

  22. Implementing Files (2) Storing a file as a linked list of disk blocks

  23. Implementing Files (3) Linked list allocation using a file allocation table in RAM

  24. Approach A section of disk for each partition is reserved One entry for each block A file is a linked list of blocks A directory entry points to the 1st block of the file Pros Simple Cons Always go to FAT Wasting space File Allocation Table (FAT) 0 foo 217 217 619 399 EOF 619 399 FAT

  25. Implementing Files (4) An example i-node

  26. 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

  27. Implementing Directories (2) • Two ways of handling long file names in directory • (a) In-line • (b) In a heap

  28. The UNIX V7 File System (1) A UNIX V7 directory entry

  29. The UNIX V7 File System (2) A UNIX i-node

  30. The UNIX V7 File System (3) The steps in looking up /usr/ast/mbox

  31. Shared Files (1) File system containing a shared file

  32. Shared Files (2) (a) Situation prior to linking (b) After the link is created (c)After the original owner removes the file

  33. Block Size

  34. 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

  35. Disk Space Management (2) (a) Storing the free list on a linked list (b) A bit map

  36. Disk Space Management (3) (a) Almost-full block of pointers to free disk blocks in RAM - three blocks of pointers on disk (b) Result of freeing a 3-block file (c) Alternative strategy for handling 3 free blocks - shaded entries are pointers to free disk blocks

  37. Disk Space Management (4) Quotas for keeping track of each user’s disk use

  38. How many FSs do we have on one PC?

  39. Virtual File System

  40. Creating a VFS • Boot time of OS: register root FS with VFS • Mounting of others FSs (boot time or later): register with VFS • Registering: provide function pointers to the FS specific calls

  41. Using a FS via VFS • Open(“/usr/include/unistd.h”, O_RDONLY)

  42. VFS Structure

  43. Network File System (NFS)

  44. NFS Architecture

  45. A Look into Linux-like “Mechanics”

  46. File System Data Structures Process control block Open file table (systemwide) File descriptors (Metadata) File system info File descriptors Directories Open file pointer array . . . File data

  47. File name lookup and authenticate Copy the file descriptors into the in memory data structure, if it is not in yet Create an entry in the open file table (system wide) if there isn’t one Create an entry in PCB Link up the data structures Return a pointer to user Open File fd = open( FileName, access) PCB Allocate & link up data structures Open file table File name lookup & authenticate Metadata File system on disk

  48. Open open(name, mode) Operating System • sys_open() vn_open(): • Check if valid call • Allocate file descriptor • If file exists, open for read. Otherwise, create a new file.Must get directory i-node. May require disk I/O. • Set access rights, flags and pointer to v-node • Return index to file descriptor table fd

  49. From User to System View • What happens if user wants to read 10 bytes from a file starting at byte 2? • seek byte 2 • fetch the block • read 10 bytes • What happens if user wants to write 10 bytes to a file starting at byte 2? • seek byte 2 • fetch the block • write 10 bytes • write out the block

  50. Read Block read( fd, userBuf, size ) PCB Find open file descriptor Open file table read( fileDesc, userBuf, size ) Logical  phyiscal Metadata read( device, phyBlock, size ) Get physical block to sysBuf copy to userBuf Buffer cache Disk device driver

More Related