CSL373 / CSL633 : Operating Systems : Schedule

Sem II, 2014-15

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
MondayTuesdayWednesdayThursdayFriday
Dec 29Dec 30Dec 31Jan 1Jan 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
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