Operating Systems Lectures
by Sorav Bansal
Course webpage (current): www.cse.iitd.ernet.in/~sbansal/os
Course webpage during 2014 (when these lectures were recorded): www.cse.iitd.ernet.in/~sbansal/os/previous_years/2014
- 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 table 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: Transactions and lock-free primitives, Read/write locks
- Lecture 27: Synchronization in xv6: acquire/release, sleep/wakeup, exit/wait
- Lecture 28: More sychronization in xv6: kill, IDE device driver; Introduction to Demand Paging
- Lecture 29: Demand Paging; Introduction to Page Replacement
- Lecture 30: Page Replacement, Thrashing
- Lecture 31: Storage devices, Filesystem interfaces
- Lecture 32: Filesystem Implementation
- Lecture 33: Filesystem Operations
- Lecture 34: Crash 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
HoH Lab help sessions
Practice Questions (incomplete)
Links