Frequency of Offering: This course is taught once a year.
| Topic | Relates to Book (read by) |
| course intro, C/C++ intro | n/a |
| resources and abstractions | 1.1 (Wed 8/29) |
| OS types and history | 1.2 (Thur 8/30) |
| files | 2.1-2.2 (Mon 9/3) |
| processes | 2.3 (Wed 9/5) |
| concurrent processes | 2.4-2.5 |
| OS architecture 101 | 3.1-3.2 (Thur 9.6) |
| Components Overview | 3.2-3.4, 4.6 and handouts |
| I/O devices and interrupts | 4.4-4.5 and 5.1 (Thur 9/13) |
| device management | 5.2-5.4 (Mon 9/17), 5.5 and handouts |
| process management | 6.1-6.9 [esp. pp. 220-227] (Mon 9/24 and Wed 9/26) |
| scheduler | 7.1-7.4 (Thur 9/27), 7.5-7.7 (Mon 10/1) |
| synchronization | 8.1 (Mon 10/1), 8.3 [esp. pp. 306-310 and 316-318] (Wed 10/3 and Thur 10/4) |
| Concurrent Programming | 8 |
| Controlling Concurrency | 8, 9 |
| Synchronization Patterns | 8, 9 |
| Concurrency and Java | 8, 9 |
| Concurrency and C/C++ | 8, 9 |
| deadlock | 10 |
| memory management | 11, 12 |
| file management | 13 |
| Item |
Relates to Book |
Due Date |
| Lab#1 | C/C++ | Fri Aug 31 |
| Lab#2 | 2.2 | Fri Sep 7 |
| Lab#3 | 2.3-2.4 | Fri Sep 14 |
| Lab#4 | various | Fri Sep 28 |
| Test#1 | 1-3 and handouts | Fri Sep 28 |
| Lab#5 | 5, 6 |
part one: Fri Oct 5 part two: Fri Oct 12 |
| Test#2 | 4-9 | Wed Oct 31 |
| Lab#6 | pthreads | Fri Nov 9 |
| pthreads project | pthreads | Fri Dec 7 |
| Test#3 | 8-13 | Mon Dec 10 |
| Problem Set | Topic |
| Set#1 | concurrency |
| Set#2 | synchronization |
| Set#3 | pointers |
| Set#4 | pthreads |
| Set#5 | pthreads synchronization |