National Institute of Technology Rourkela

राष्ट्रीय प्रौद्योगिकी संस्थान राउरकेला

ଜାତୀୟ ପ୍ରଯୁକ୍ତି ପ୍ରତିଷ୍ଠାନ ରାଉରକେଲା

An Institute of National Importance

Syllabus

Course Details

Subject {L-T-P / C} : CS3006 : Distributed Systems { 3-0-0 / 3}

Subject Nature : Theory

Coordinator : Prof. Bibhudatta Sahoo

Syllabus

Introduction to Distributed systems: Review of Networks, Operating Systems, Concurrent Programming, and Characteristics & Properties of Distributes Systems – Taxonomy - Design goals – Transparency Issues
Distributed Computing Paradigms: Basic Message Passing Model – The Client Server, Message Passing, RPC basics, RPC implementation, RPC communication and issues, Remote Procedure Call Model – RPC in conventional languages and in Java - The Distributed Objects – The Collaborative Application
Inter process communication mechanisms: Communication in Distributed Systems, Socket Programming -Client Server examples, I/O Multiplexing, Inetd Super Server – Secure Sockets – The SSL & the Java Secure Socket Extension
Process models in distributed systems: Processes, Threads - Code Migration Software Agents – CSP Distributed Processes - Naming with Mobile Entities - Unreferenced Objects
Synchronization: Clock Synchronization – Logical clocks – Election Algorithms – Distributed Mutual Exclusion
Consistency and Replication: Motivation, Object Replication, Consistency Models, Distribution Protocols , Consistency Protocols
Fault Tolerance: Failure Models – Process Resilience – Reliable Client Server and Group Communications – Distributed Commit Protocols – Check-pointing and Recovery - Distributed Databases - Distributed Transactions
Distributed File System: File system, DFS- definition, Characteristics, Goals, SUN NFS-NFS Architecture, NFS Implementation, Protocols, The CODA file system-Design Overview, An Example, Design Rational, Implementation, The GOOGLE file system-Definition, Architectures, GFS Architecture

Course Objectives

  • To learn the principles, architectures, algorithms and programming models used in distributed systems.
  • To examine state-of-the-art distributed systems, such as Google File System.
  • To design and implement sample distributed systems
  • Students will gain an understanding of the principles and techniques behind the design of distributed systems, such as locking, concurrency, scheduling, and communication across networks. Second, students will gain practical experience in designing, implementing, and debugging real distributed systems.

Course Outcomes

demonstrate knowledge of the basic elements and concepts related to distributed system technologies <br />demonstrate knowledge of the core architectural aspects of distributed systems <br />design and implement distributed applications <br />demonstrate knowledge of details the main underlying components of distributed systems (such as RPC, file systems) <br />use and apply important methods in distributed systems to support scalability and fault tolerance <br />demonstrate experience in building large-scale distributed applications.

Essential Reading

  • Andrew S. Tannenbaum and Maarten Van Steen, Distributed Systems: Principles and Paradigms, Pearson
  • George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair, Distributed Systems: Concepts and Design, Addison Wesley

Supplementary Reading

  • P. K. Sinha, Distributed Operating Systems: Concepts and Design, IEEE press
  • M. Singhal and N. G. Shivaratri, Advanced Concepts in Operating Systems,, McGraw-Hill