Lecture 1 - Introduction to UNIX System Calls - Part 1
Lecture 2 - Introduction to UNIX System Calls - Part 2
Lecture 3 - Threads, Address Spaces, Filesystem Devices
Lecture 4 - PC Architecture
Lecture 5 - x86 Instruction Set, GCC Calling Conventions
Lecture 6 - Physical Memory Map, I/O, Segmentation
Lecture 7 - Segmentation, Trap Handling
Lecture 8 - Traps, Trap Handlers
Lecture 9 - Kernel Data Structures, Memory Management
Lecture 10 - Segmentation Review, Introduction to Paging
Lecture 11 - Paging
Lecture 12 - Process Address Spaces Using Paging
Lecture 13 - Translation Lookaside Buffer, Large Pages, Boot Sector
Lecture 14 - Loading the kernel, Initializing the Page table
Lecture 15 - Setting up page tables for user processes
Lecture 16 - Processes in action
Lecture 17 - Process structure, Context Switching
Lecture 18 - Process Kernel stack, Scheduler, Fork,Context-Switch, Process Control Block, Trap Entry and Return
Lecture 19 - Creating the first process
Lecture 20 - Handling User Pointers, Concurrency
Lecture 21 - Locking
Lecture 22 - Fine-grained Locking and its challenges
Lecture 23 - Locking variations
Lecture 24 - Condition variables
Lecture 25 - Multiple producer, multiple consumer queue; semaphores; monitors
Lecture 26 - Transcations and lock-free primitives read/write locks
Lecture 27 - Synchronization in xv6: acquire/release, sleep/wakeup, exit/wait
Lecture 28 - More synchronization in xv6: kill, IDE device driver; introducion to Demand Paging
Lecture 29 - Demand Paging; Introduction to Page Replacement
Lecture 30 - Page Replacement, Thrashing
Lecture 31 - Storage Devices, Filesystem Intrerfaces
Lecture 32 - File System Implementation
Lecture 33 - File System Operation
Lecture 34 - Cash Recovery and Logging
Lecture 35 - Logging in Linux ext3 filesystem
Lecture 36 - Protection and Security
Lecture 37 - Scheduling Policies
Lecture 38 - Lock-free multiprocessor coordination, Read-Copy-Update
Lecture 39 - Microkernel, Exokernel, Multikernel
Lecture 40 - Virtualization, Cloud Computing, Technology Trends