| 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) |
|