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.

Process System Calls in xv6

Process System Calls in xv6

Lecture on xv6 system call implementation including user library wrapper functions, trap instruction mechanism, fork implementation with allocproc and copyuvm, exit and zombie cleanup, wait for reaping children, and exec for loading executables.

CPU Scheduling Algorithms

CPU Scheduling Algorithms

Comprehensive lecture on CPU scheduling policies including FIFO, SJF, SRTF, Round Robin, Weighted Fair Queueing, Multi-Level Feedback Queue (MLFQ), preemptive vs non-preemptive schedulers, timer interrupts, and multicore scheduling considerations.