1 / 39

Chapter 6 : File Systems

Chapter 6 : File Systems. What is a file system? Objectives & user requirements Characteristics of files & directories File system implementation Directory implementation Free blocks management Increasing file system performance. File System.

erikah
Download Presentation

Chapter 6 : 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. Chapter 6 : File Systems • What is a file system? • Objectives & user requirements • Characteristics of files & directories • File system implementation • Directory implementation • Free blocks management • Increasing file system performance CS19D - Operating Systems

  2. File System • The collection of algorithms and data structures which perform the translation from logical file operations (system calls) to actual physical storage of information CS19D - Operating Systems

  3. Objectives of a File System • Provide storage of data and manipulation • Guarantee consistency of data and minimise errors • Optimise performance (system and user) • Eliminate data loss (data destruction) • Support variety of I/O devices • Provide a standard user interface • Support multiple users CS19D - Operating Systems

  4. User Requirements • Access files using a symbolic name • Capability to create, delete and change files • Controlled access to system and other users’ files • Control own access rights • Capability of restructuring files • Capability to move data between files • Backup and recovery of files CS19D - Operating Systems

  5. Files • Naming • Name formation • Extensions (Some typical extensions are shown below) CS19D - Operating Systems

  6. Files (Cont.) • Structuring • (a) Byte sequence (as in DOS, Windows & UNIX) • (b) Record sequence (as in old systems) • (c) Tree structure (as in some mainframe Oses) CS19D - Operating Systems

  7. Files (Cont.) • File types • Regular (ASCII, binary) • Directories • Character special files • Block special files • File access • Sequential access • Random access CS19D - Operating Systems

  8. Files (Cont.) • File attributes • Read, write, execute, archive, hidden, system etc. • Creation, last access, last modification CS19D - Operating Systems

  9. Files (Cont.) • File operations • Create • Delete • Open • Close • Read • Write • Append • Seek • Get attributes • Set Attributes • Rename CS19D - Operating Systems

  10. Directories • Where to store attributes • In directory entry (DOS, Windows) • In a separate data structure (UNIX) • Path names • Absolute path name • Relative path name • Working (current) directory • Operations • Create, delete, rename, open directory, close directory, read directory, link (mount), unlink CS19D - Operating Systems

  11. Root Directory Disk A / Linked Branch Disk B d3 d1 f4 Working Directory f1 d2 d4 d5 d6 f2 f3 f5 f6 f7 Directories & Files (UNIX) • Working directory : d2 • Absolute path to file f2 : /d1/d2/f2 • Relative path to file f2 : f2 CS19D - Operating Systems

  12. Cylinder Heads Physical Disk Space Management Sector Track • Each plate is composed of sectors or physical blocks which are laid along concentric tracks • Sectors are at least 512 bytes in size • Sectors under the head and accessed without a head movement form a cylinder CS19D - Operating Systems

  13. File System Implementation • Contiguous allocation • Linked list allocation • Linked list allocation using an index (DOS file allocation table - FAT) • i-nodes (UNIX) CS19D - Operating Systems

  14. Contiguous Allocation • The file is stored as a contiguous block of data allocated at file creation (a) Contiguous allocation of disk space for 7 files (b) State of the disk after files D and E have been removed CS19D - Operating Systems

  15. Contiguous Allocation (Cont.) • FAT (file allocation table) contains file name, start block, length • Advantages • Simple to implement (start block & length is enough to define a file) • Fast access as blocks follow each other • Disadvantages • Fragmentation • Re-allocation (compaction) CS19D - Operating Systems

  16. Linked List Allocation • The file is stored as a linked list of blocks CS19D - Operating Systems

  17. Linked List Allocation (Cont.) • Each block contains a pointer to the next block • FAT (file allocation table) contains file name, first block address • Advantages • Fragmentation is eliminated • Block size is not a power of 2 because of pointer space • Disadvantages • Random access is very slow as links have to be followed CS19D - Operating Systems

  18. Disk size 0 FAT (File allocation table) EOF 1 Free 2 3 5 7 1 5 3 Free 4 7 5 File blocks Bad 6 1 7 ….. Free n Linked list allocation using an index (DOS FAT) First block address is in directory entry CS19D - Operating Systems

  19. Linked list allocation using an index (Cont.) • The DOS (Windows) FAT is arranged this way • All block pointers are in FAT so that don’t take up space in actual block • Random access is faster since FAT is always in memory • 16-bit DOS FAT length is (65536+2)*2 = 131076 bytes CS19D - Operating Systems

  20. Problem • 16-bit DOS FAT can only accommodate 65536 pointers (ie., a maximum of 64 MB disk) • How can we handle large disks such as a 4 GB disk? Clustering CS19D - Operating Systems

  21. File mode Number of links UID GID File size Time created Time last accessed Time last modified 10 disk block numbers Double indirect block Single indirect block Indirect blocks Data blocks Triple indirect block i (index)-nodes (UNIX) CS19D - Operating Systems

  22. i-nodes (Cont.) • Assume each block is 1 KB in size and 32 bits (4 bytes) are used as block numbers • Each indirect block holds 256 block numbers • First 10 blocks : file size <= 10 KB • Single indirect : file size <= 256+10 = 266 KB • Double indirect : file size <= 256*256 +266 = 65802 KB = 64.26 MB • Triple indirect : file size <= 256*256*256 + 65802= 16843018 KB = ~16 GB CS19D - Operating Systems

  23. Directory Implementation • DOS (Windows) directory structure • UNIX directory structure CS19D - Operating Systems

  24. 8 bytes 3 1 10 2 2 2 4 File name Ext A Reserved T D P Size Time of creation Date of creation DOS (Windows) Directory Structure (32 bytes) Attributes (A,D,V,S,H,R) Pointer to first data block CS19D - Operating Systems

  25. 2 bytes 14 bytes I-node # File name UNIX Directory Structure (16 bytes) CS19D - Operating Systems

  26. The Windows 98 Directory Structure • Extended MS DOS Directory Entry • An entry for (part of) a long file name CS19D - Operating Systems

  27. The Windows 98 Directory Structure An example of how a long name is stored in Windows 98 CS19D - Operating Systems

  28. i-node 26 of /usr/ast i-node 6 of /usr Root (/) i-node 51 14 81 1 92 1 60 7 9 4 30 6 26 1 45 19 26 6 6 bin src . etc usr stu lib dev .. genc prog .. html ast books mbox . .. . 245 406 132 /usr directory file block 132 Root directory file block 245 /usr/ast directory file block 406 i-node 60 of /usr/ast/mbox Path Name Lookup : /usr/ast/mbox Blocks of file CS19D - Operating Systems

  29. Two ways of handling long file names in a Directory • In-lineIn a heap CS19D - Operating Systems

  30. / d1 d2 f1 f2 f3 Shared Files • File f2 is shared by two paths (users!) and there is one physical copy. • The directories d1 & d2 point to the same i-node with link count equal to 2 • Deletion is done by decrementing the link count. When it reaches zero the file is deleted physically CS19D - Operating Systems

  31. Disk Space Management • 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 CS19D - Operating Systems

  32. How to Keep Track of Free Disk Blocks • Linked list of disk blocks • Bit maps • Indexing as used in DOS FAT CS19D - Operating Systems

  33. Linked List of Disk Blocks • Allocation is simple. • Delete block number from free blocks list CS19D - Operating Systems

  34. Bit Maps • The bit map is implemented by reserving a bit string whose length equals the number of blocks • A ‘1’ may indicate that the block is used and ‘0’ for free blocks • If the disk is nearly full then the bit map method may not be as fast as the linked list method CS19D - Operating Systems

  35. Increasing File System Performance • Disks (floopies, hard disks, CD ROMS) are still slow when compared to the memory • Use of a memory cache may speed the disk transfers between disk and process • Blocks are read into the cache first. Subsequent accesses are through the cache • Blocks are swapped in & out using replacement algorithms such as FIFO, LRU • System crashes may cause data loss if modified blocks are not written back to disk CS19D - Operating Systems

  36. Where to Put the Current “File Position” Field • The file position field is a 16 or 32 bit variable which holds the address of the next byte to be read or written in a file • Put it in the i-node • Put it in process table CS19D - Operating Systems

  37. File Position Field in i-node • If two or more processes share the same file, then they must have a different file position • Since i-node is unique for a file, the file position can not be put in the i-node CS19D - Operating Systems

  38. File Position Field in Process Table • When a process forks, both the parent and the child must have the same file position • Since the parent and the child have different process tables they can not share the same file position • So, we can not put in process table CS19D - Operating Systems

  39. Process tables File positions table i-node of file parent position child Solution • Use an intermediate table for file positions CS19D - Operating Systems

More Related