CSE 421/521 - Operating Systems File Systems Fall 2011 • Provides organized and efficient access to data on secondary storage: Lecture - XVIII File Systems 1. Organizing data into files and directories and supporting primitives to manipulate them (create, delete, read, write etc) 2. Improve I/O efficiency between disk and memory (perform I/O in units of blocks rather than bytes) 3. Ensure confidentiality and integrity of data Tevfik Ko ş ar – Contains file structure via a File Control Block (FCB) – Ownership, permissions, location.. University at Buffalo November 3 rd , 2011 1 A Typical File Control Block Directories ! Directories are special files that keep track of other files " the collection of files is systematically organized " first, disks are split into partitions that create logical volumes (can be thought of as “virtual disks”) " second, each partition contains information about the files within " this information is kept in entries in a device directory (or volume table of contents) " the directory is a symbol table that translates file names into their entries in the directory # it has a logical structure # it has an implementation structure (linked list, table, etc.) 4 Directories Directories ! Single-level directory structure ! Two-level directory structure " simplest form of logical organization: one global or root " in multiuser systems, the next step is to give each user their own private directory directory containing all the files " problems " avoids filename confusion " however, still no grouping: not satisfactory for users with many # global namespace: unpractical in multiuser systems files # no systematic organization, no groups or logical categories of files that belong together Single-level directory Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Two-level directory Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Operating Systems Concepts with Java (6th Edition). Operating Systems Concepts with Java (6th Edition). 5 6
Directories Directories ! Tree-structured directory structure ! Tree-structured directory structure " natural extension of the two-level scheme " provides a general hierarchy, in which files can be grouped in natural ways " good match with human cognitive organization: tendency to categorize objects in embedded sets and subsets " navigation through the tree relies on pathnames # absolute pathnames start from the root, example: /jsmith/ academic/teaching/cs446/assignment4/grades # relative pathnames start at from a current working directory , example: assignment4/grades # the current and parent directory are referred to as . and .. Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Operating Systems Concepts with Java (6th Edition). Tree-structured directory 7 8 Directory Implementation Directory Implementation • Linear list of file names with pointer to the data blocks. – simple to program – time-consuming to execute • Hash Table – linear list with hash data structure. – decreases directory search time – collisions – situations where two file names hash to the same location – fixed size Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition). 9 UNIX Directories Example inode listing $ ls -iaR demodir/y • Directory is a special file that contains list of names of 865 . 193 .. 277 a 520 c 491 y files and their inode numbers demodir/a/y: • to see contents of a directory: 277 . 865 .. 402 x $ls -1ia . 9535554 . demodir/c: 9535489 .. 520 . 865 .. 651 d1 247 d2 9535574 .bash_history 9535555 bin demodir/c/d1: 9535584 .emacs.d 651 . 520 .. 402 xlink 9535560 grading 9535803 hw1 demodir/c/d2: 9535571 test 247 . 520 .. 680 xcopy 9535801 .viminfo 11 12
Directories - System View User View vs System View Consider the following directory structure (user view): • user view vs system view of directory tree – representation with “dirlists (directory files)” • The real meaning of “A file is in a directory” – directory has a link to the inode of the file Assume mydir (10), a (20), and b (30) are directories and x (40), y (50), and z (60) are • The real meaning of “A directory contains a files with inode numbers given in parenthesis. The inode number for mydir’s parent subdirectory” directory is 1. – directory has a link to the inode of the subdirectory 1) Please show the system representation (system view) of this directory tree. • The real meaning of “A directory has a parent directory” – “..” entry of the directory has a link to the inode of the parent directory 13 14 Link Counts Change Links • What will be the resulting changes in directory tree? • The kernel records the number of links to any file/ directory. $ cp mydir/x mydir/b • The link count is stored in the inode. $ ln mydir/a/z mydir/b/t • The link count is a member of struct stat returned by $ mv mydir/x mydir/a the stat system call. 15 16 Implementing “pwd” Allocation Methods 1. “.” is 247 • An allocation method refers to how disk blocks are chdir .. allocated for files: 2. 247 is called “d2” • Contiguous allocation “.” is 520 chdir .. • Linked allocation 3. 520 is called “c” “.” is 865 • Indexed allocation chdir .. 4. 865 is called “demodir” “.” is 193 chdir .. 17
Contiguous Allocation Contiguous Allocation of Disk Space • Each file occupies a set of contiguous blocks on the disk • + Simple – only starting location (block #) and length (number of blocks) are required • - Wasteful of space (dynamic storage-allocation problem - fragmentation) • - Files cannot grow Linked Allocation Linked Allocation • Each file is a linked list of disk blocks: blocks may be scattered anywhere on the disk. block = pointer + Simple – need only starting address + Free-space management system – no waste of space + Defragmentation not necessary - No random access - Extra space required for pointers - Reliability: what if a pointer gets corrupted? File-Allocation Table Indexed Allocation • Brings all pointers together into the index block, to allow random access to file blocks . • Logical view. index table + Supports direct access + Prevents external fragmentation - High pointer overhead --> wasted space
Example of Indexed Allocation Free Space Management • Disk space limited • Need to re-use the space from deleted files • To keep track of free disk space, the system maintains a free-space list – Records all free disk blocks • Implemented using – Bit vectors – Linked lists Free-Space Management (Cont.) Free-Space Management (Cont.) • Bit vector ( n blocks) • Linked List Approach – Each block is represented by 1 bit – 1: free, 0: allocated 0 1 2 n-1 … 1 ⇒ block[ i ] free bit[ i ] = 0 ⇒ block[ i ] occupied e.g. 0000111110001000100010000 28 Free-Space Management (Cont.) Free-Space Management (Cont.) • Linked List • Bit map requires extra space – Example: block size = 2 12 bytes disk size = 2 30 bytes (1 gigabyte) n = 2 30 /2 12 = 2 18 bits (or 32K bytes) • Easy to get contiguous files • Linked list (free list) – Cannot get contiguous space easily – requires substantial I/O • Grouping – Modification of free-list – Store addresses of n free blocks in the first free block • Counting – Rather than keeping list of n free addresses: • Keep the address of the first free block • And the number n of free contiguous blocks that follow it 30
Exercise Acknowledgements • “Operating Systems Concepts” book and supplementary material by A. Silberschatz, P . Galvin and G. Gagne • “Operating Systems: Internals and Design Principles” book and supplementary material by W. Stallings • “Modern Operating Systems” book and supplementary material by A. Tanenbaum • R. Doursat and M. Yuksel from UNR 32
Recommend
More recommend