This course constitutes the second level in the operating systems course sequence198:416 -- 198:519. While 198:416 takes a descriptive approach to convey a thorough understanding of the various operating system tasks and their interactions, this course stresses advanced concepts in operating system design including interactions with networking, and evaluation of design options for the implementation of those concepts. Its principal purpose is to present the concepts and the algorithms for providing distributed services in a computer system. Thus, the course is intended for computer science students.
Operating system basics, process management, synchronization, memory management. Interprocess communication, pipes, sockets. Network protocols, RPC, broadcast protocols, client-server architectures. Current trends in operating system design and case studies.
Assignments, midterm, final, and programming assignments.