1 / 42

Disk & File System Management

Disk & File System Management. Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection. File System Abstraction. File Concept. Contiguous logical address space Types: Data ( numeric , character , binary ) Program. File Structure.

joshua-gay
Download Presentation

Disk & File System Management

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. Disk & File System Management • Disk Allocation • Free Space Management • Directory Structure • Naming • Disk Scheduling • Protection

  2. File System Abstraction

  3. File Concept • Contiguous logical address space • Types: • Data (numeric, character, binary) • Program

  4. File Structure • None - sequence of words, bytes • Simple record structure • Fixed length • Variable length • Complex Structures • Formatted document • Relocatable load file • Can simulate last two with first method by inserting appropriate control characters. • Who decides: • Operating system • Program UNIX approach – no structure

  5. File Attributes • Name – only information kept in human-readable form. • Type – needed for systems that support different types. • Location – pointer to file location on device. • Size – current file size. • Protection – controls who can do reading, writing, executing. • Time, date, and user identification – data for protection, security, and usage monitoring. Where are these information kept? File Header (PCB structure for Files)

  6. File Operations • Create • Write • Read • Reposition within file – file seek • Delete • Truncate • Open(Fi) – search the directory structure on disk for entry Fi, and move the content of entry to memory. • Close (Fi) – move the content of entry Fi in memory to directory structure on disk.

  7. User vs System View • User view • Collection of bytes (UNIX) • Collection of records (IBM) • System View (inside OS) • Collection of blocks • Block is the logical transfer unit • Sector is the physical transfer unit block size >= sector size ie. UNIX block size= 4KB How to translate user to system view? Give me bytes 2-12

  8. File Access Patterns • Sequential Access: Give me next X bytes.. • Random Access: Give me bytes i-j • Content-based Access: Find 100 bytes starting with “xxx” Many file systems do not provide #3 – DBs are built on FS for this purpose

  9. Sequential-access File

  10. Simulation of Sequential Access on a Direct-access File

  11. How are files typically used? • Most files are small (eg. .login, .c) • Large files use most of the disk space • File System needs to be efficient • for small files as many of them • for large files as most of the I/O due to them

  12. Disk Management • Disk drives are addressed as large 1-dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer. • The 1-dimensional array of logical blocks is mapped into the sectors of the disk sequentially. • Sector 0 is the first sector of the first track on the outermost cylinder. • Mapping proceeds in order through that track, then the rest of the tracks in that cylinder, and then through the rest of the cylinders from outermost to innermost.

  13. Common Data Structures • File Header – one for each file • Bitmap to represent free space on disk (one bit per block) • Blocks are numbered in Cylinder major order • Track 0 surface 0 sector 0,1,... Surface 1, sector 0.... • Track 1 surface 1, sector 0... 7 0 1 2 8 9 10 ...

  14. Allocation Methods How disk blocks are allocated for files? • Contiguous allocation • Linked allocation • Indexed allocation

  15. Contiguous Allocation Each file occupies a set of contiguous blocks on the disk. • Simple – only starting location (block #) and length (number of blocks) are required for access. • Search bitmap to locate space for file • Create (allocate max. Size) 11110000010101

  16. Contiguous Allocation of Disk Space • Fast Seq. Access • Easy Random access. • External fragmentation • Files cannot grow.

  17. Extent-Based Systems • Some newer file systems (i.e. Veritas File System) use a modified contiguous allocation scheme. • Extent-based file systems allocate disk blocks in extents. • An extent is a contiguous block of disks. Extents are allocated for files. A file consists of one or more extents.

  18. pointer block = Linked Allocation Each file is a linked list of disk blocks: blocks may be scattered anywhere on the disk.

  19. Linked Allocation

  20. Linked Allocation (Cont.) • Simple – need only starting address • no waste of space for free space management • Can grow files dynamically • Slow sequential access (seek time between blocks) • No random access • Unreliable

  21. File-Allocation Table

  22. Indexed Allocation • Brings all pointers together into the index block. • Logical view. index table

  23. Example of Indexed Allocation

  24. Indexed Allocation (Cont.) • Random access is fast • Easy grow without external fragmentation • Need index table. Overhead of index block. • Hard to grow files bigger than table size • Still lots of seeks

  25. Indexed Allocation – Mapping (Cont.)  outer-index file index table

  26. Combined Scheme: UNIX (4K bytes per block) 10 direct blocks 3 indirect blocks

  27. Free-Space Management • Bit vector (n blocks) 0 1 2 n-1 … 0  block[i] free 1  block[i] occupied bit[i] = 

  28. Free-Space Management (Cont.) • Bit map requires extra space. Example: block size = 212 bytes disk size = 230 bytes (1 gigabyte) n = 230/212 = 218 bits (or 32K bytes) • Easy to get contiguous files • Linked list (free list) • Cannot get contiguous space easily • No waste of space

  29. Free-Space Management (Cont.) • Need to protect: • Pointer to free list • Bit map • Must be kept on disk • Copy in memory and disk may differ. • Cannot allow for block[i] to have a situation where bit[i] = 1 in memory and bit[i] = 0 on disk. • Solution: • Set bit[i] = 1 in disk. • Allocate block[i] • Set bit[i] = 1 in memory

  30. Linked Free Space List on Disk

  31. Directory Structure • A collection of nodes containing information about all files. (Pointers to file headers) File headers Directory Files F 1 F 2 F 3 F 4 F n Both the directory structure and the files reside on disk. Backups of these two structures are kept.

  32. A Typical File-system Organization

  33. Operations Performed on Device Directory • Search for a file • Create a file • Delete a file • List a directory • Rename a file • Traverse the file system

  34. Organize the Directory (Logically) to Obtain • Efficiency – locating a file quickly. • Naming – convenient to users. • Two users can have same name for different files. • The same file can have several different names. • Grouping – logical grouping of files by properties, (e.g., all Java programs, all games, …)

  35. Single-Level Directory • A single directory for all users. Naming problem Grouping problem

  36. Two-Level Directory • Separate directory for each user. • Path name • Can have the same file name for different user • Efficient searching • No grouping capability

  37. Tree-Structured Directories

  38. Tree-Structured Directories (Cont.) • Efficient searching • Grouping Capability • Current directory (working directory) • cd /spell/mail/prog • type list

  39. Tree-Structured Directories (Cont.) • Absolute or relative path name • Creating a new file is done in current directory. • Delete a file rm <file-name> • Creating a new subdirectory is done in current directory. mkdir <dir-name> Example: if in current directory /mail mkdir count mail prog copy prt exp count Deleting “mail”  deleting the entire subtree rooted by “mail”.

  40. Where to put the Current “File Position” Field • Address of the next byte to be read or written • i-node • Process table

  41. Efficiency and Performance • Efficiency dependent on: • disk allocation and directory algorithms • types of data kept in file’s directory entry • Performance • disk cache – separate section of main memory for frequently used blocks • free-behind and read-ahead – techniques to optimize sequential access • improve PC performance by dedicating section of memory as virtual disk, or RAM disk.

More Related