Monday | Tuesday | Wednesday | Thursday | Friday |
Dec 29 | Dec 30 | Dec 31 | Jan 1 | Jan 2 Introduction to UNIX System Calls PREP: Read The Evolution of the Unix Time-Sharing System. SG: chapter 1
|
Jan 5
| Jan 6 Introduction to UNIX System Calls (2) PREP: Read xv6 chapter 0, pipe man page, Interrupted Primitives.
| Jan 7 Other OS Abstractions: Threads, Address Spaces, Filesystem, Devices (illustrations)
| Jan 8
| Jan 9 PC Architecture (slides) PREP: read IA-32 guide, do homework.
|
Jan 12
| Jan 13 x86 Instruction Set, GCC Calling Conventions
| Jan 14 Makar Sakranti
| Jan 15
| Jan 16 Physical Memory Map, I/O, Segmentation [lecture held on Wed 15/01] OUT: Lab 1: Hello, Alice H
|
Jan 19
| Jan 20 Segmentation, Trap Handling PREP: do practice questions>
| Jan 21 Traps, Trap Handlers
| Jan 22
| Jan 23 Kernel data structures, Memory Management OUT: Lab 2: Shell DUE: Lab 1
|
Jan 26
| Jan 27 Segmentation Review, Paging Intro (diagrams) PREP: read xv6 chapter 2, optionally read 80386 chapter 3
| Jan 28 Paging (MMU) PREP: do homework (l10-hw3-pointers.c)
| Jan 29
| Jan 30 Process Address Spaces using Paging PREP: Read xv6 chapter 1, Process Anatomy; SG: 3.1-3.3
|
Feb 2
| Feb 3 TLBs, Large Pages, Boot sector
| Feb 4 Loading the kernel, Initializing the page table
| Feb 5
| Feb 6 Setting up page tables for user processes
|
Feb 9
| Feb 10 Processes in Action DUE: Lab 2
| Feb 11 Process Structure, Switching
| Feb 12
| Feb 13 Process kstack, scheduler, fork, context-switch, PCB, trap entry and return PREP: Read xv6 chapter 1
|
Feb 16
| Feb 17 Minor1 Tests
| Feb 18 Creating the first process PREP: Read xv6 chapter 5 through section "Code: Scheduling" with proc.c, setjmp.S, and sys_fork (in sysproc.c) SG: chapter 5
| Feb 19
| Feb 20 Midterm Presentations
|
Feb 23
| Feb 24 Handling User Pointers, Concurrency (x86 IDT details) PREP: Read xv6 chapter 3, do homework
| Feb 25 Locking PREP: Read xv6 chapter 4 with spinlock.c and skim mp.c Recursive vs. Non-Recursive Locks OUT: Lab 3: Preemption/SPSC Queue
| Feb 26
| Feb 27 Fine-grained locking and its challenges
|
Mar 2
| Mar 3 Mid-sem break
| Mar 4 Mid-sem break
| Mar 5
| Mar 6 Mid-sem break
|
Mar 9
| Mar 10 Locking variations
| Mar 11 Condition variables
| Mar 12
| Mar 13 Multiple producer, multiple consumer queue; semaphores; monitors
|
Mar 16
| Mar 17 Transactions (lock-free primitives), read-write locks
| Mar 18 Synchronization in xv6: acquire/release, sleep/wakeup, exit/wait PREP: Read rest of xv6 chapter 5; read remainder of proc.c and sys_wait, sys_exit, sys_kill. SG: chapters 6, 7
| Mar 19
| Mar 20 Minor2 Tests
|
Mar 23
| Mar 24 More synchronization in xv6: kill, IDE device driver; demand paging
| Mar 25 Demand paging and replacement (slides) [lecture held on Sat 29/03] SG: chapter 9
| Mar 26
| Mar 27 Page Replacement, Thrashing (slides) [lecture held on Mon 01/04] PREP: do practice questions
|
Mar 30
| Mar 31 Storage devices, Filesystem interfaces [lecture held on Thu 03/04]
| Apr 1 Filesystem Implementation [lecture held on Fri 04/04] PREP: xv6 book chapter 6 and chapter 7 SG: chapters 12, 13 OUT: Lab 4: User programs DUE: Lab 3
| Apr 2
| Apr 3 Good Friday
|
Apr 6
| Apr 7 Filesystem Operations
PREP: do practice questions
| Apr 8 Crash Recovery and Logging
| Apr 9
| Apr 10 Logging in ext3 PREP: Read Journaling the Linux ext2fs Filesystem
|
Apr 13
| Apr 14 Protection and Security OUT: Lab 5: Virtual Memory DUE: Lab 4
| Apr 15 Scheduling Policies
| Apr 16
| Apr 17 Multi-processor coordination: lock free PREP: optionally read Read-Copy-Update, Address Space Using RCU Trees
|
Apr 20
| Apr 21 Microkernels, Exokernels, Multikernels, do homework
| Apr 22 Virtualization, Cloud Computing, Technology trends
| Apr 23
| Apr 24
|
Apr 27
| Apr 28
| Apr 29
| Apr 30
| May 1 DUE: Lab 5
|