Course Schedule
CSC 213 Operating Systems and Parallel Algorithms Fall 2008

Note: Exercises are shown in the assignment column on the day they are due (not the day assigned).

Week Day Date Topic Reading Assignment
0 Fri 8/29 Introduction; What is this course all about? Nutt Preface: To the Student, pp. v-viii
Lab 0: Getting to Know You
1 Mon 9/1 Computers and Software; OS Strategies; Makefiles Nutt 1.1-1.3, pp. 1-39 Lab 0 due
Tue 9/2 Lab 1: Review of C
Wed 9/3 Abstract machines; Resources; Processes and Threads Nutt 2.1-2.3, pp. 42-58 SigBits signup due, Ex. 1.6
Fri 9/5 Concurrent programs; fork and exec Nutt 2.4-2.5, pp. 58-73 Lab 1 Due
2 Mon 9/8 OS Organization Nutt 3.1-3.4, pp. 89-110
Tue 9/9 Lab 2: A Simple Shell
Wed 9/10 Hardware overview (architecture, devices, and interrupts) Nutt 4.1-4.6, pp. 115-139 Ex 3.3
Fri 9.12 Device Management (I/O system, design, class characteristics) Nutt 5.1-5.6, pp. 152-188 Lab 2(A) due
3 Mon 9/15 Implementing processes Nutt 6.1-6.4, pp. 197-216 Lab 2(B) due, Exercise 5.3
Tue 9/16 Lab 3: I/O Buffering
Wed 9/17 Threads and resources Nutt 6.5-6.9, pp. 216-229 Exercise 6.4
Fri 9/19 Scheduling mechanisms and strategies Nutt 7.1-7.3, pp. 251-264 Lab 3(A) due
4 Mon 9/22 Scheduling strategies (cont) and implementations Nutt 7.4-7.7, pp. 264-280 Lab 3(B) due
Tue 9/23 Lab 4: Signals & Timers
Wed 9/24 Basic synchronization principles Nutt 8.1-8.2, pp. 290-306
Fri 9/26 Semaphores; Synchronization patterns Nutt 8.3-8.5, pp. 306-321 Lab 4(A) due; Ex. 7.11
5 Mon 9/29 Synchronization patterns (cont) Nutt 9.1, pp. 335-343 Lab 4(B) due
Tue 9/30 Lab 5: Scheduling Algorithms
Wed 10/1 Synchronization and Inter-Process Communication Nutt 9.2-9.4, pp. 344-359
Fri 10/3 Exam 1
6 Mon 10/6 Semaphores and Shared Memory in C man pages for mmap(2), svipc(7), semget(2), semctl(2), semop(2), ipcs(8), ipcrm(8)
Tue 10/7 Lab 6: Bounded Buffers Lab 5 due
Wed 10/8 Deadlock background and prevention Nutt 10.1-10.3, pp. 374-388
Fri 10/10 Deadlock avoidance, detection, and recovery Nutt 10.4-10.6, p. 389-410
7 Mon 10/13 Memory management; abstraction and allocation Nutt 11.1-11.3, pp. 414-436 Lab 6 due
Tue 10/14 Lab 7: Pipes in C fork-2.c through fork-6.c in Intro. to to Concurrency in Unix-based [GNU] C Through Annotated Examples
Wed 10/15 Memory management: binding, swapping, and virtual memory Nutt 11.4-11.6, pp. 436-450
Fri 10/17 Virtual memory: address translation and paging Nutt 12.1-12.4, pp. 460-482 Lab 7(a) due
Enjoy Fall Break!
8 Mon 10/27 Virtual memory: paging algorithms and segmentation Nutt, 12.4-12.8, pp. 473-504
Tue 10/28 Lab 8: Locality Lab 7(b) due
Wed 10/29 Networks Nutt 15.1-15.8, pp. 615-652 Exercise 12.18 due
Fri 10/31 Networks (cont); Sockets Broadwell, An Introduction to Sockets in C Through Annotated Examples Prog. 1-4, pp. 1-18
9 Mon 11/3 Parallel Computation Foster 1.0-1.5 Lab 8(a,b) due
Tue 11/4 Lab 9: Sockets for Web Client & Server
Wed 11/5 Designing parallel algorithms: method Foster 2.0-2.5
Fri 11/7 Designing parallel algorithms: case studies Foster 2.6-2.9 Lab 9(a,b) due
10 Mon 11/10 Evaluating parallel algorithms Foster 3.0-3.4 Lab 9(c) due
Tue 11/11 Lab 10: Ping Pong (Message Timing) Foster 3.5-3.6
Wed 11/12 Exam 2 Review / Pause for Breath
Fri 11/14 Exam 2
11 Mon 11/17 File management; POSIX Threads; Images Nutt 13.1-13.3, pp. 525-544
Tue 11/18 Lab 11: Thread Synchronization POSIX Threads Programming 3-5 (1-2 optional) Lab 10 due
Wed 11/19 File management (cont.) Nutt 13.4-13.8, pp. 544-558
Fri 11/21 Protection and Security: authentication Nutt, 14.1-14.2, pp. 568-588 Lab 11(a) due
12 Mon 11/24 Protection and security: authorization and cryptography Nutt 14.3-14.5, pp. 588-612
Tue 11/25 Lab 11 continued
Wed 11/26 Distributed computation Nutt 17.1-17.3, pp. 696-714 Lab 11(b) due, Best paper vote
Fri 11/26 Thanksgiving Break
13 Mon 12/1 RPC; Distributed process management Nutt 17.4-17.6, pp. 714-727
Tue 12/2 Lab 12: Sensor Network
Wed 12/3 Parallel computing: Interconnects and I/O Foster 3.7-3.8
Fri 12/5 OS design strategies Nutt 19.1-19.7, pp. 772-802 Lab 12(a) due
14 Mon 12/8 OS Best Paper TBD (your vote)
Jerod Weinman
Created 1 Aug 2008