Simple File System Design and Implementation

Simple File System Design and Implementation

This document introduces a simple file system called vsfs as a case study to explain basic on-disk data structures like inodes, bitmaps, directories, and policies for allocation and access. It covers file read/write operations, caching, and trade-offs in file system implementation details.

Google File System (GFS) Design and Architecture

Google File System (GFS) Design and Architecture

This paper presents Google File System, a scalable distributed file system designed for large data-intensive applications on commodity hardware. It discusses assumptions, relaxed consistency models, architecture with a single master and many chunkservers, replication, metadata management, atomic record append, and fault tolerance in GFS.

 IO Devices and Device Drivers

 IO Devices and Device Drivers

This lecture explores integration of IO devices into computer systems, explaining hardware interfaces, classical and modern system architectures, techniques like polling, interrupts, DMA, memory-mapped IO, and the role of device drivers in providing abstraction for generic OS operations over diverse hardware.

 Crash Consistency and Journaling

 Crash Consistency and Journaling

This document explains the crash-consistency problem in file systems and how journaling (write-ahead logging) effectively addresses it by recording transactions in a journal before applying changes to on-disk data. It covers fsck, journaling modes (data vs metadata journaling), recovery, and challenges like block reuse and protocols ensuring atomic updates despite crashes.

Scheduling and Context Switching in xv6

Scheduling and Context Switching in xv6

Lecture on xv6 context switching mechanism including scheduler thread, swtch function for switching contexts, context structure vs trapframe, saving/restoring registers, yield/exit/sleep triggering context switches, allocproc for new processes, and init process creation.