CS 441/541: Advanced Operating Systems
Catalog Description: Principles of contemporary operating systems for network and distributed computer systems; sequential processes, scheduling, process synchronization, device management, file systems, memory management and protection and security.
Cross Listed: as ECE 541
Type: CS 441 is a Technical Elective for CS majors. CS 541 is available for graduate credit
Total Credits: 3
Course Coordinator: Robert Rinker
Prereq: CS 240
Textbook: Randy Chow and Theodore Johnson, Distributed Operating Systems and Algorithms, Addison Wesley Longman, 1998. ISBN 0-201-49838-3.
Prerequisites by Topic:
- Process management
- Memory management
- Files and files systems
Major Topics Covered
- Distributed systems: definitions and concepts. (2 hours)
- Communication concepts: protocols, RPC, message and stream communication. (6 hours)
- Processes: threads, client-server model, code migration, and scheduling. (6 hours)
- Naming: methods for naming, name resolution, and name spaces. Mobile entities. (4 hours)
- Synchronization : Real clocks, logical clocks, centralized vs distributed mutual exclusion, election algorithms, and transaction-oriented operations (6 hours)
- Consistency and replication: consistency models, distribution protocols, and consistency protocols. (6 hours)
- Fault tolerance: basic concepts – the Byzantine Generals problem and extensions, agreement algorithms, reliable communication concepts, transaction-oriented commit, and recovery schemes. (6 hours)
- Distributed Files systems: NFS, Coda, and object-based systems. (4 hours)
- Be able to describe different protocols and their use
- Understand how communicating processes are modeled, specified and scheduled.
- Understand name space conventions and methods for naming.
- Analyze a system for consistency and replication.
- Understand the issues of clock domains, clock synchronization
- Understand basic concepts of fault tolerance.
- Be able to analyze a system for fault tolerance and specify design changes to increase fault tolerance.
- Understand the architecture and operations of distributed file systems.