This course covers fundamental principles and theories on distributed and network operating systems, communication models, Client/Server architecture, and Peer-to-Peer paradigms. Group communication, synchronization, threads, processor allocations, fault tolerance, distributed shared memory, and case studies are also introduced.
- Explain the central issues involved in the design of distributed systems.
- Implement distributed algorithms using an appropriate programming language.
- Understand current techniques and tools associated with distributed and network operating systems.
- Apply distributed system concepts to the design of distributed systems.
- Demonstrate expertise in reading peer-reviewed papers in distributed systems and explain them in writing.
- Understand the role of central concepts such as load balancing and synchronization in different types of distributed systems such as database systems and operating systems.