disk & file system management disk allocation free space management directory structure naming...
TRANSCRIPT
![Page 1: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/1.jpg)
Disk & File System Management
• Disk Allocation• Free Space Management• Directory Structure• Naming• Disk Scheduling• Protection
CSE 331 Operating Systems Design
![Page 2: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/2.jpg)
File System Abstraction
Physical Reality File System Abstraction
Block oriented Byte oriented
Phys. Sector # Named files
No protection User protection
Corruption Robust to machine failures
CSE 331 Operating Systems Design
File System Components
Disk Management –Scheduling, Allocation, Free Space Man.
Naming- Directory Structure (Flat, Hierarchical)
Protection , Authentication, Reliability
![Page 3: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/3.jpg)
File Concept
• Contiguous logical address space• Types:
– Data (numeric, character, binary)– Program
CSE 331 Operating Systems Design
![Page 4: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/4.jpg)
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 structureCSE 331 Operating Systems Design
![Page 5: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/5.jpg)
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)
CSE 331 Operating Systems Design
![Page 6: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/6.jpg)
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.CSE 331 Operating Systems Design
![Page 7: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/7.jpg)
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 sizeie. UNIX block size= 4KB
How to translate user to system view? Give me bytes 2-12
CSE 331 Operating Systems Design
![Page 8: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/8.jpg)
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
CSE 331 Operating Systems Design
![Page 9: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/9.jpg)
Sequential-access File
CSE 331 Operating Systems Design
![Page 10: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/10.jpg)
Simulation of Sequential Access on a Direct-access File
CSE 331 Operating Systems Design
![Page 11: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/11.jpg)
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
CSE 331 Operating Systems Design
![Page 12: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/12.jpg)
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.
CSE 331 Operating Systems Design
![Page 13: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/13.jpg)
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...
CSE 331 Operating Systems Design
7 0 1 2
8 9 10 ...
![Page 14: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/14.jpg)
Allocation Methods
How disk blocks are allocated for files?
• Contiguous allocation
• Linked allocation
• Indexed allocation
CSE 331 Operating Systems Design
![Page 15: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/15.jpg)
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
CSE 331 Operating Systems Design
![Page 16: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/16.jpg)
Contiguous Allocation of Disk Space
CSE 331 Operating Systems Design
Fast Seq. Access
Easy Random access.
–External fragmentation
–Files cannot grow.
![Page 17: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/17.jpg)
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.
CSE 331 Operating Systems Design
![Page 18: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/18.jpg)
Linked AllocationEach file is a linked list of disk blocks: blocks may be scattered anywhere on the disk.
pointerblock =
CSE 331 Operating Systems Design
![Page 19: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/19.jpg)
Linked Allocation
CSE 331 Operating Systems Design
![Page 20: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/20.jpg)
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
CSE 331 Operating Systems Design
![Page 21: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/21.jpg)
File-Allocation Table
CSE 331 Operating Systems Design
![Page 22: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/22.jpg)
Indexed Allocation• Brings all pointers together into the index block.• Logical view.
index table
CSE 331 Operating Systems Design
![Page 23: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/23.jpg)
Example of Indexed Allocation
CSE 331 Operating Systems Design
![Page 24: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/24.jpg)
Indexed Allocation (Cont.)Random access is fastEasy grow without external
fragmentation– Need index table. Overhead of index
block.– Hard to grow files bigger than table
size– Still lots of seeks
CSE 331 Operating Systems Design
![Page 25: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/25.jpg)
Indexed Allocation – Mapping (Cont.)
outer-index
index table file
CSE 331 Operating Systems Design
![Page 26: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/26.jpg)
Combined Scheme: UNIX (4K bytes per block)
CSE 331 Operating Systems Design
10 direct blocks3 indirect blocks
![Page 27: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/27.jpg)
Free-Space Management• Bit vector (n blocks)
…
0 1 2 n-1
bit[i] = 0 block[i] free
1 block[i] occupied
CSE 331 Operating Systems Design
![Page 28: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/28.jpg)
Free-Space Management (Cont.)
• Bit map requires extra space. Example:block size = 212 bytesdisk 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
CSE 331 Operating Systems Design
![Page 29: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/29.jpg)
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
CSE 331 Operating Systems Design
![Page 30: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/30.jpg)
Linked Free Space List on Disk
CSE 331 Operating Systems Design
![Page 31: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/31.jpg)
Directory Structure• A collection of nodes containing information about all files. (Pointers to file headers)
F 1 F 2F 3
F 4
F n
Directory
Files
Both the directory structure and the files reside on disk.Backups of these two structures are kept.
CSE 331 Operating Systems Design
File headers
![Page 32: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/32.jpg)
A Typical File-system Organization
CSE 331 Operating Systems Design
![Page 33: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/33.jpg)
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
CSE 331 Operating Systems Design
![Page 34: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/34.jpg)
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, …)
CSE 331 Operating Systems Design
![Page 35: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/35.jpg)
Single-Level Directory
• A single directory for all users.
Naming problem
Grouping problem
CSE 331 Operating Systems Design
![Page 36: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/36.jpg)
Two-Level Directory• Separate directory for each user.
•Path name•Can have the same file name for different user•Efficient searching•No grouping capability
CSE 331 Operating Systems Design
![Page 37: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/37.jpg)
Tree-Structured Directories
CSE 331 Operating Systems Design
![Page 38: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/38.jpg)
Tree-Structured Directories (Cont.)
• Efficient searching
• Grouping Capability
• Current directory (working directory)– cd /spell/mail/prog– type list
CSE 331 Operating Systems Design
![Page 39: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/39.jpg)
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
prog copy prt exp count
Deleting “mail” deleting the entire subtree rooted by “mail”.CSE 331 Operating Systems Design
![Page 40: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/40.jpg)
Where to put the Current “File Position” Field
CSE 331 Operating Systems Design
• Address of the next byte to be read or written
– i-node– Process table
![Page 41: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/41.jpg)
CSE 331 Operating Systems Design
![Page 42: Disk & File System Management Disk Allocation Free Space Management Directory Structure Naming Disk Scheduling Protection CSE 331 Operating Systems Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/56649f575503460f94c7c9e9/html5/thumbnails/42.jpg)
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.
CSE 331 Operating Systems Design