CSC314: Operating Systems 6 credits (40-10-10)

Objectives

To introduce operating systems concepts and show how an operating system may manage computer hardware (processor, memory, I/O devices).

Contents

Introduction; need for and types of OS's; their characteristics and desirable features; brief history of OS; Process management: Notion of a process; the process control block; operations on a process, process hierarchies; Process synchronization primitives; producer-consumer problems; mention of various communication mechanisms; Processor management: high-level scheduler, dispatcher; process scheduling policies; deadlocks, Bankers algorithm; Memory management: need for memory management; virtual memory concept; paged and non-paged allocation (and replacement) policies/strategies; mention of thrashing; Mention of: working set theory; principle of locality; storage hierarchies; need to model process behaviour; Device management: need for device management: interrupts; buffering, spooling, algorithms for I/O requests and handlers; File system management: importance of file system; file structure and organisation; file devices and file descriptors; file protection schemes; Security: motivation for security; mention of protection mechanisms, the notion of capabilities; Dumping and archiving; Other issues: overview of resources and their allocation; mention of subsystems; bootstrapping; Managerial issues: personnel needed; short/long-term load distribution; system security (physical and electronic), reliability and upgrades; Mention of multiprocessor systems, fault-tolerant and real-time systems. LABORATORY: demonstration and implementation of OS concepts on a multi-user, multi-tasking OS (e.g. UNIX);

Prerequisite:

CSC207 or CSC208