In this course, one becomes familiar with the main components of operating systems, how to administer these components, and how to write code that interacts with them. Topics include processes; kernels; interrupts; system calls; interprocess communication; shared memory; message passing and ports; context switching; concurrency; threads; synchronization; mutual exclusion; mutex locks, semaphores, and monitors; CPU scheduling; multi-processor scheduling and load balancing; memory management; loading and linking; caching; paging; swapping; virtual memory; mass storage; I/O systems; file system; naming; directories; mounting; distributed file systems; networking; security and protection.
Prerequisites: MTH 4350.
Apply to this course