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.cscheduler_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, ipcrmsend 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 1 | Exam 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 |
||
| 9 | Mon | 10/30 | File management continued |
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 |
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