Syllabus
Introduction to distributed computing systems (DCS), DCS design goals, Fundamental issues and challenges, System architecture, Model of distributed computations, Distributed and Centralized architecture. Distributed Coordination: Temporal ordering of events, Lamport’s logical clocks, Vector clocks; Ordering of messages, Process synchronization, Global states and snapshot recording algorithms. Modelling of distributed real-time systems. Basics of real time systems: Functional, Temporal and Dependability requirements. Real time communication, Requirements of real time communication system, Flow Control-Explicit and Implicit, Thrashing, Inter-process communication: Message passing communication, Remote procedure call, Group communication, Deadlocks in distributed systems, Load scheduling and balancing techniques, Consistency Models, Fault Tolerance. Introduction to Distributed System Models, High-Performance Computing, Grid Computing, Cloud Computing, Many-core Computing, Many-Task Computing, Data-Intensive Computing, GPU architectures, Parallel architectures, and Multithreaded programming. Usage of tools for parallel and distributed programming