Ds
Ds
(Program Elective I)
L T P C
2 0 2 3
The course is designed to provide an understanding of the principles on which the Internet and
other distributed systems are based, their architecture, algorithms and how they meet the demands
of contemporary distributed applications.
Course Objectives:
Understand foundations of Distributed Systems.
Introduce inter process communication in Distributed Systems.
Introduce the idea of peer-to-peer services and file system.
Understand in detail about Distributed Transaction management
Design and develop large scale distributed systems.
UNIT I 8L
Characterization of Distributed Systems: Examples of Distributed Systems, Trends in
Distributed Systems, Focus on resource sharing, Challenges.
System models: Physical models, Architectural models, Fundamental models
Case study: World Wide Web.
Learning Outcomes:
After completion of this unit, the student will be able to
demonstrate knowledge of the basic elements and concepts related to distributed system
technologies(L2)
analyse the challenges of distributed systems. (L4)
UNIT II 8L
Inter process Communication: The API for internet protocols, External data representation and
marshalling, Multicast communication, Network virtualization: Overlay networks.
Case study: MPI
Remote Invocation: Request-reply protocols, Remote procedure call, Remote method invocation.
Case study: Java RMI
Learning Outcomes:
After completion of this unit, the student will be able to
outline the communication aspects of middleware. (L2)
examine how RPC and RMI takes place in distributed system. (L4)
UNIT III 8L
Peer-to-peer Systems: Introduction, Napster and its legacy, Peer-to-peer middleware, Routing
overlays. Overlay case studies: Pastry, Tapestry
Distributed File Systems: Introduction, File service architecture, Case study: Sun Network File
System
Name Services: Introduction, Name services and the Domain Name System, Directory services
Learning Outcomes:
After completion of this unit, the student will be able to
identify the need of peer-peer systems and its applications. (L3)
demonstrate knowledge of details the main underlying components of distributed file
systems.
explain the issues related to name services and name spacing. (L2)
UNIT IV 8L
Time and Global states: Introduction, Clocks, events and process state, synchronizing physical
clocks, Logical time and logical clocks, Global states,
Coordination and Agreement: Introduction, Distributed mutual exclusion, Elections,
Coordination and agreement in group communication.
Learning Outcomes:
After completion of this unit, the student will be able to
classify the physical clocks and logical clocks(L4)
analyse the need of mutual exclusion. (L4)
outline the election algorithms. (L2)
UNIT V 10 L
Transactions and Concurrency Control: Introduction, Transactions, Nested transactions, Locks,
Optimistic concurrency control, Timestamp ordering,
Distributed Transactions: Introduction, Flat and nested distributed transaction, Atomic Commit
protocols, Concurrency control in distributed transactions. Distributed deadlocks, Transaction
recovery
Learning Outcomes:
After completion of this unit, the student will be able to
analyse the atomic commit protocols and deadlocks. (L4)
make use and apply important methods in distributed systems to support deadlocks and
transaction recovery (L3)
Text Book(s):
1. George Coulouris, Jean Dollimore and Tim Kindberg, “Distributed Systems Concepts and
Design”, 5/e, Pearson Education, 2012.
References
1. Pradeep K Sinha, “Distributed Operating Systems: Concepts and Design”, Prentice Hall of India,
2007.
2. Tanenbaum A.S., Van Steen M., “Distributed Systems: Principles and Paradigms”, Pearson
Education, 2007.
3. Liu M.L., “Distributed Computing, Principles and Applications”, Pearson Education, 2004.
4. Nancy A Lynch, “Distributed Algorithms”, Morgan Kaufman Publishers, USA, 2003.
Course Outcomes:
After completion of this course, the student will be able to
discuss trends in Distributed Systems. (L6)
apply remote method invocation and objects. (L3)
design Distributed Transaction management. (L6).
demonstrate experience in building large-scale distributed applications(L2)