CSC 213, Fall 2006 : Schedule
[ skip links | calendar | week 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ]

Schedule for CSC 213

This schedule is tentative and will change as the semester progresses.  Check this page frequently for updates.

Assignments are due at the start of class.

Discussion questions are due by email at 5 p.m. the day before class.

Week   Date Topic Reading Assignments
0 Fri 8/25 Introduction: What is this course about? Nutt, Preface: To the Student,
p. v-viii
 
LAB 0: Getting to know you
1 Mon 8/28 Computers & software; OS strategies Nutt 1.1-1.3, p. 1-39
send question | read questions
Lab 0 due
Tue 8/29 LAB 1: Review of C; Quicksort and order statistics See the lab exercise  
Wed 8/30 Abstract machines, resources, processes, & threads Nutt 2.1-2.3, p. 42-58
send question | read questions
 
Fri 9/1 Writing concurrent programs; fork & exec Nutt 2.4-2.6, p. 58-74
send question | read questions
Lab 1 due
2 Mon 9/4 OS organization Nutt 3.1-3.4, p. 89-110
send question | read questions
 
Tue 9/5 LAB 2: A simple shell The lab assignment!
Nutt Lab 2.1, p. 76-82
 
Wed 9/6 Historical papers: focus on OS organization
Dijkstra: The Structure of the 'THE'-Multiprogramming System
Ritchie and Thompson:
The UNIX Time-Sharing System
Two papers on eReserve
send question | read questions
 
Fri 9/8 Hardware overview Nutt 4.1-4.6, p. 115-139
send question | read questions
Lab 2(a) due
3 Mon 9/11 Device management Nutt 5.1-5.6, p. 152-188
send question | read questions
Lab 2(b) due
Tue 9/12 LAB 3: Device management  
Wed 9/13 Implementing processes Nutt 6.1-6.4, p. 197-216
send question | read questions
 
Fri 9/15 Threads & resources Nutt 6.5-6.9, p. 216-229
send question | read questions
Lab 3 due
4 Mon 9/18 Scheduling mechanisms & strategies Nutt 7.1-7.3, p. 251-264
send question | read questions
 
Tue 9/19 LAB 4: Signals & timers Nutt Lab 6.1, p. 232-236
signal-1.c
 
Wed 9/20 Scheduling strategies (cont.) & implementation Nutt 7.4-7.7, p. 264-280
send question | read questions
 
Fri 9/22 Basic synchronization principles Nutt 8.1-8.4, p. 290-321
send question | read questions
Lab 4(a) due
5 Mon 9/25 Mechanisms for synchronization Review Nutt 8.1-8.4
send question | read questions
Lab 4(b) due
Tue 9/26 LAB 5: Writing & comparing scheduling algorithms Lab 7.1 (Nutt, p. 283-289)
scheduler_fcfs.c
scheduler_simulation.c
 
Wed 9/27 Deadlock: background, models, and prevention  Nutt 9.1, p. 335-337 only
Nutt 10.1 - 10.2, p. 374-388

send question  | read questions
 
Fri 9/29 Deadlock: avoidance, detection & recovery Nutt 10.4-10.6, p. 389-410
send question | read questions
Lab 5(a) due
6 Mon 10/2 Programming with shared memory and System V semaphores manpages:
mmap, svipc (focus on semaphore sets), semget, semctl, semop, ipcs, ipcrm
send question | read questions
Lab 5(b) due
Tue 10/3 LAB 6: The bounded buffer problem Review handouts: bounded-buffer-*.c
 
Wed 10/4 Review/pause for breath
Exam 1 distributed
Review your notes!  
You may submit questions you wish to discuss.
send question
 | read questions
Exam 1 distributed
Fri 10/6 CLASS CANCELLED: Ms. Davis away; time to work on Exam 1Exam 1 due
SUNDAY 9 p.m.
7 Mon 10/9 High-level synchronization & IPC Nutt 9.1-9.4, p. 335-359
send question | read questions

Tue 10/10 LAB 7: Pipes in C fork-2.c through fork-6.c in An Introduction to Concurrency in Unix-based [GNU] C Through Annotated Examples Lab 6 due
Wed 10/11 Memory management: requirements, address space, & allocation Nutt 11.1-11.3, p. 414-429
send question
read questions
 
Fri 10/13 Memory management: dynamic binding, swapping, virtual memory Nutt 11.4-11.6, p. 426-451
send question | read questions
Lab 7(a) due
  10/16 - 10/20 Have a fabulous fall break!
8 Mon 10/23 Virtual memory: address translation, paging Nutt 12.1-12.3, p. 460-473
send question | read questions
 
Tue 10/24 LAB 8: Expanded shell with I/O redirection See lab Lab 7(b) due
Wed 10/25 Virtual memory: paging algorithms, segmentation; memory-mapped files Nutt 12.4-12.8, p. 473-505
send question | read questions
 
Fri 10/27 File management Nutt 13.1-13.8, p. 514-559
send question | read questions
Lab 8(a) due
9 Mon 10/30

File management continued
Protection & security: the problem

Nutt 14.1
send question | read questions
Lab 8(a) due
Tue 10/31 LAB 9: Memory, files, & protection
Hydra: The Kernel of a Multiprocessor Operating System
Paper on eReserve
send question | read questions
 
Wed 11/1 Protection & security: mechanisms & policies Nutt 14.2-14.5
send question | read questions
 
Fri 11/3 Networks in a nutshell
(Take CSC 364!)
Nutt 15.1-15.8, p. 615-652
send question | read questions
Lab 9(a) due
10 Mon 11/6 Sockets in C

Broadwell, An Introduction to Sockets in C Through Annotated Examples, p. 1-18
send questionread questions

Lab 9(b) due
Tue 11/7 LAB 10: A simple web client & server See lab  
Wed 11/8 Remote files: disks, files Nutt 16.1-16.3, p. 662-686
send question read questions
Exam 2 distributed
Fri 11/10 CLASS CANCELED in honor of Exam 2

11 Mon 11/13 Remote files: caching, directories Nutt 16.2-16.6, p. 686-694
send question read questions
Exam 2 due
SUNDAY 9 PM
Tue 11/14 The Google File System Paper on eReserve
send question read questions
 
Wed 11/15 Parallel computers & computation Ian Foster, Designing & Building Parallel Programs (DBPP), Ch. 1
send question | read questions
 
Fri 11/17 Designing parallel algorithms: Method Ian Foster, Designing & Building Parallel Programs (DBPP), Ch. 2.0-2.5
send question | read questions
First part of Lab 10 due
12 Mon 11/20 Designing parallel algorithms: Case studies Ian Foster, Designing & Building Parallel Programs (DBPP), Ch. 2.6-2.8
send question read questions

Tue 11/21 LAB 11: Parallel algorithms None Rest of Lab 10 due
Wed 11/22 Evaluating parallel algorithms Ian Foster, Designing & Building Parallel Programs (DBPP), Ch. 3.0-3.6
send question read questions
 
  Fri 11/24 Have a terrific Thanksgiving break!
13 Mon 11/27 Classic problems in concurrency None  
Tue 11/28 LAB 12: Classic problems in concurrency Review the lab assignment and consider which problem you would prefer to do. Lab 11 due
Wed 11/29 Parallel Computing: Interconnects and I/O Ian Foster, Designing & Building Parallel Programs (DBPP), Ch. 3.7-3.8
Gara et al., Overview of the BlueGene/L System Architecture
send question | read questions
 
Fri 12/1 Distributed computing: distributed memory, RPC Nutt 17.1-17.3, p. 696-714
send question read questions

14 Mon 12/4 Distributed computing: remote objects, process management Nutt 17.4-17.6, p. 714-727
send question | read questions
Lab 12(a) due
Tue 12/5 LAB 12 continued    
Wed 12/6 Design strategies for operating systems Nutt 19.1-19.6, p. 772-802
send question read questions
 
Fri 12/8 OS organization; course evaluations Lab 12(b) due
5 PM
  Tue 12/12 FINAL EXAM at 2 p.m. Notes for exam
Have a wonderful winter break!


Janet Davis (davisjan@cs.grinnell.edu)

Created August 16, 2006
Last revised December 8, 2006
With thanks to Henry Walker