CSL373 / CSL633 : Operating Systems : Schedule

Sem II, 2013-14

Links to notes etc. on future days are tentative only. They are here only to give you an idea what the future will bring.
SG refers to the book by Silberschatz and Galvin
Dec 30Dec 31Jan 1Jan 2
Introduction to UNIX System Calls
PREP: Read The Evolution of the Unix Time-Sharing System.
SG: chapter 1
OUT: Lab 1: Initializing PC Hardware
Jan 3
Introduction to UNIX System Calls (2)
PREP: Read xv6 chapter 0, pipe man page, Interrupted Primitives.
Jan 6
Jan 7
Other OS Abstractions: Threads, Address Spaces, Filesystem, Devices (illustrations)
PREP: do homework.
Jan 8
Jan 9
PC Architecture (slides)
PREP: read IA-32 guide
Jan 10
x86 Instruction Set, GCC Calling Conventions
Jan 13
Jan 14
Physical Memory Map, I/O, Segmentation [lecture held on Wed 15/01]
Jan 15
Jan 16
Segmentation, Trap Handling
PREP: do homework
Jan 17
Traps, Trap Handlers
Jan 20
Jan 21
Kernel data structures, Memory Management
Jan 22
Jan 23
Segmentation Review, Paging Intro (diagrams)
PREP: read xv6 chapter 2, optionally read 80386 chapter 3, do homework (l10-hw3-pointers.c)
Jan 24
Paging (MMU)
Jan 27
Jan 28
Process Address Spaces using Paging
PREP: Read xv6 chapter 1, Process Anatomy;
SG: 3.1-3.3
Jan 29
Jan 30
TLBs, Large Pages, Boot sector
Jan 31
Loading the kernel, Initializing the page table
Feb 3
Feb 4
Setting up page tables for user processes
DUE: Lab 1
Feb 5
Feb 6
Minor Test 1
Feb 7
Minor Test 1
Feb 10
Feb 11
Processes in Action
OUT: Lab 2: Implementing User Processes
Feb 12
Feb 13
Process Structure, Switching
Feb 14
Process kstack, scheduler, fork, context-switch, PCB, trap entry and return
PREP: Read xv6 chapter 1, do homework
Feb 17
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
Handling User Pointers, Concurrency (x86 IDT details)
PREP: Read xv6 chapter 3, do homework
Feb 21
Midterm Presentations
Feb 24
Feb 25
PREP: Read xv6 chapter 4 with spinlock.c and skim mp.c
Recursive vs. Non-Recursive Locks
Feb 26
Feb 27
Mid-sem break
Feb 28
Mid-sem break
Mar 3
Mar 4
Mid-sem break
Mar 5
Mar 6
Mid-sem break
Mar 7
Mid-sem break
DUE: Lab 2
Mar 10
Mar 11
No lecture
Mar 12
Mar 13
Fine-grained locking and its challenges
Mar 14
Locking variations
Mar 17
Mar 18
Condition variables
Mar 19
Mar 20
Multiple producer, multiple consumer queue; semaphores; monitors
Mar 21
Transactions (lock-free primitives), read-write locks
Mar 24
Mar 25
Minor Test 2
Mar 26
Mar 27
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 28
More synchronization in xv6: kill, IDE device driver; demand paging
Mar 31
Apr 1
Demand paging and replacement (slides)
[lecture held on Sat 29/03]
SG: chapter 9
Apr 2
Apr 3
Page Replacement, Thrashing (slides)
[lecture held on Mon 01/04]
PREP: do homework
Apr 4
Storage devices, Filesystem interfaces
[lecture held on Thu 03/04]
Apr 7
Apr 8
Filesystem Implementation
[lecture held on Fri 04/04]
PREP: xv6 book chapter 6 and chapter 7
SG: chapters 12, 13
Apr 9
Apr 10
Voting day
Apr 11
Filesystem Operations

PREP: do homework
Apr 14
Apr 15
Crash Recovery and Logging
Apr 16
Apr 17
Logging in ext3
PREP: Read Journaling the Linux ext2fs Filesystem
Apr 18
Good Friday
Apr 21
Apr 22
Protection and Security
Apr 23
Apr 24
Scheduling Policies
Apr 25
Multi-processor coordination: lock free
PREP: optionally read Read-Copy-Update, Address Space Using RCU Trees
Apr 28
Apr 29
Microkernels, Exokernels, Multikernels
Apr 30
May 1
Virtualization, Cloud Computing, Technology trends
May 2
Many course materials derived from 6.828 by Frans Kaashoek and others at MIT; some derived from John Ousterhout's cs140 course materials at Stanford