Week 31

 This week has been hectic as I am in a totally different continent, fifteen hours ahead of my normal time zone. But I packed accordingly so I’ve been able to keep up on lecture readings and notes.

From this weeks reading, I have learned that a file system is a crucial component of an operating system, responsible for organizing and managing data from a disk. The very simple file system serves as a foundational model to understand core concepts. File systems utilize inodes, or index nodes to store metadata about files, such as permissions, size, and pointers to data blocks. Inodes can employ multi-level indexing, including direct, indirect, and double/triple indirect pointers, to affinity handle files or varying sizes.

Directories are structured as special files containing mappings of human-readable names to inode numbers, allowing the system to locate files through path traversal. Free space is managed using bitmaps (for inodes and data blocks), ensuring efficient allocation and deallocation. Accessing a file involves several steps: opening requiring traversing directory structure to find the inode, while reading/writing involves consulting the inode to locate data blocks. Caching (via a unified page cache) significantly improves performance by reducing disk I/O for frequently accessed data. However, writes often require disk updates for durability, introducing  trade-off between performance and data safety.

The readings highlighted the complexity of file operations, creating or writing a file can involve multiple I/O operations, while reading benefits from caching. modern file systems optimize these processes through techniques like write buffering and pre-allocation.

Comments

Popular posts from this blog

Week 1

Week 4

Week 2