Overview of computer organization. Interrupts. Operating systems objectives and functions. Hardware protection mechanisms, dual mode operation. System calls. The evolution of operating systems. Process representation and control. Uniprocessor scheduling. Process synchronization: critical section problem, synchronization mechanisms, algorithms, language constructs, classical synchronization problems: issues of safety, liveness, and fairness. Deadlocks. Memory management and virtual memory. File management. I/O management and disk scheduling. In laboratory sessions students will study and implement programming projects that illustrate the concepts introduced in the lectures.
Prereq.: CSc 22000 and (CSc 21700 or EE 31100).
3 class hr., 2 lab hr/wk.; 4 cr.