| Lecture weeks | Lecture Content | Slides | Reading | Additional material and HW |
|---|---|---|---|---|
| 31/07 | Course logistics, Motivation | 1 | C Refresher: (Pointers and command-line args) | HW: List down the OSes you use on a day-to-day basis |
| 04/08 - 09/08 | Introduction, Process, System calls, Process API | 1 2 3 | OSTEP Ch2, Ch4, Ch5 | Linux man pages inline-asm-tutorial |
| 11/08 - 16/08 | Process API, Files, Pipes | 1 2 | OSTEP Ch4, Ch5, Ch39 | Linux man pages code-examples |
| 18/08 - 23/08 | Virtual memory, Address space | 1 2 | OSTEP Ch13,Ch14 | code-examples Man Pages (brk, mmap, mprotect) |
| 25/08 - 31/08 | Resource Multiplexing, Priv. Architecture | 1 2 | OSTEP Ch6 | Intel Software Developer's Manual 3A (Ch 6) |
| 01/09 - 06/09 | OS mode execution, Scheduling | 1 2 | OSTEP Ch6,Ch7 | Intel Software Developer's Manual 3A (Ch 5, Ch7) |
| 08/09 - 13/09 | Scheduling Policy | 1 2 | OSTEP Ch7,Ch8 | OSTEP Ch9 |
| 15/09 - 20/09 | *** Midsem *** | *-*-*-*-*-*-*-*-* | *** Midsem *** | *-*-*-*-*-*-*-*-* |
| 22/09 - 27/09 | Midsem discussion, Address Translation | 1 2 | OSTEP Ch15,Ch16 | |
| 29/09 - 04/10 | *** Midsem Break *** | *-*-*-*-*-*-*-*-* | *** Midsem Break *** | *-*-*-*-*-*-*-*-* |
| 06/10 - 10/10 | Paging, Multi-level paging | 1 2 | OSTEP Ch16,Ch18,Ch19 | Intel Software Developer's Manual 3A (Ch 3, Ch4) |
| 13/10 - 18/10 | Page Fault and Swapping, Threads | 1 2 3 | OSTEP Ch20,Ch21,Ch26,Ch27,Ch28 | code-examples Homework: S2 #12, #13, #15 |
| 20/10 - 25/10 | Concurrency, Locks | 1 2 | OSTEP Ch26,Ch27,Ch28 | Man Pages (clone, pthread_*) Homework: slide#9,#12 |
| 27/10 - 01/11 | Locks, Semaphores, Concurrency Bugs | 1 2 3 | OSTEP Ch26,Ch27,Ch28, Ch31, Ch32 | Homework: Efficient producer-consumer |
| 03/11 - 08/11 | Concurrency Bugs, Filesystems | 1 2 | OSTEP Ch32, Ch40, Ch41 | Homework: examine file/dir inodes using `stat' system call |
| 10/11 - 15/11 | Filesystem, Caching and Consistency | 1 2 | OSTEP Ch 40, Ch41, Ch42 | Homework: Analyze consistency issues when creating a file |