Structural design aspects of an operating system: process model, inter-process
communication, synchronization mechanisms, resource management, and scheduling.
Protection issues. Implementation issues of modern operating systems. Distributed
operating systems. Deadlock detection, recovery, and avoidance. Case studies.
Project(s).