180 likes | 253 Views
Explore efficient file system design strategies for improved disk I/O operations, considering infinite resources like CPUs, memory, disk storage, and network bandwidth. Learn about different file system components and their optimization. Design considerations for large and small file systems, memory and disk capacity matching, and resource-efficient approaches are discussed.
E N D
Homework 9 Sarah Diesburg Operating Systems COP 4610
/ Hierarchical Name Space • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 1. Read in the file header for the root directory ‘/’ • Stored at a fixed location on disk
/ Hierarchical Name Space • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 2. Read the first data block for the root directory • Lookup the directory entry for pets pets
/ Hierarchical Name Space • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 3. Read the file header for pets pets pets
/ Hierarchical Name Space • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 4. Read the first data block for the pet directory • Lookup the directory entry for cat.jpg pets pets cat
/ Hierarchical Name Space • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 5. Read the file header for cat.jpg pets cat pets cat
/ Hierarchical Name Space • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 6. Read the data block for cat.jpg pets cat pets cat
Hierarchical Name Space • So how many disk I/Os do we need to resolve the path? • Depends what resolving means • 5 to resolve the path (everything but reading the file) • 6 if resolving includes reading the first file data block
How would you design your file system differently? • If you have infinite number of CPUs? • If you have infinite memory size? • If you have infinite disk storage? • If you have infinite network bandwidth?
File System Components • Disk layout • Naming • Protection • Reliability
Infinite Number of CPUs • Some of you forgot to think about disk seek and data transfer times • These are separate from computational power • Use naming schemes that take a lot of computational power • E.g., relational, contextual, content-based • Hash data block locations • Maybe encryption for extra security
Infinite Memory Size • Load (cache) all file to data mappings into memory on boot • Memory-map files to disk
Infinite Disk Storage • Make extra copies for reliability • Make extra copies for speed • Contiguous or segment-based allocation • No longer need to worry about external fragmentation
Infinite Network Bandwidth • Automatic remote copy (remote RAID 1?) • Store metadata locally (accessed more often), store data remotely (accessed less often)
How would you design a file system • for only large files? • for only small files? • if memory capacity == disk capacity
For large files • Multi-level indexed allocation • Hash allocation – change to one block won’t affect rest
For small files • Indexed allocation • Small segmented allocation
Memory capacity = Disk capacity • Cache all metadata and files as they are being used