CSC 411 - Operating Systems

Course Syllabus

Schedule

Frequency of Offering: This course is taught once a year.

Notes and Readings

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

Labs and Tests

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

Practice Problems

Problem Set Topic
Set#1 concurrency
Set#2 synchronization
Set#3 pointers
Set#4 pthreads
Set#5 pthreads synchronization

Links

Author's Supplemental Materials