Department of Computer Science & Engineering

M.Tech. I (CO) Semester - 1

L

T

P

C

CO601 : DISTRIBUTED COMPUTING   

3

0

2

4

COURSE OBJECTIVES
  • To expose students to both the abstraction and details of file systems.
  • To provide students with contemporary knowledge in parallel and distributed computing.
  • To focus on performance and flexibility issues related to systems design decisions.
  • Introduce a variety of methodologies and approaches for reasoning about concurrent and distributed programs.
  • COURSE OUTCOMES
    After successful completion of this course, student will be able to
    • Understand the concepts and issues related to distributed systems.
    • Design and develop the programs for distributed environment.
    • Manage performance, reliability and other issues while designing in distributed environment.
    COURSE CONTENT
    FUNDAMENTALS

    (05 Hours)

    Definitions and Objectives, Issues in Distributed Computing, Distributed Computing Models, Inherent limitations.

    COMUNICATION

    (04 Hours)

    Introduction, Abstraction Layers, RPC Mechanisms, RMI, Naming Service, Message Passing Systems and Models

    DISTRIBUTED PROCESS

    (04 Hours)

    Concurrent programming concept, process migration, communicating sequential processes, Distributed Scheduling – Deadlocks and Dealing with Deadlocks.

    DISTRIBUTED MUTUAL EXCLUSION

    (03 Hours)

    Extending mutual exclusion, Dijkstra’s solutions, Lamport’s DME Ricart and Agarwala’s optimal algorithm for DME.

    SYNCHRONIZATION

    (04 Hours)

    Lamport’s logical clocks and its limitation, Election Algorithms in Ring and broadcast networks.

    AGREEMENT PROTOCOL

    (03 Hours)

    Classification - Byzantine Agreement problem, Consensus problem – Relationships – Applications

    DISTRIBUTED SHARED MEMORY

    (03 Hours)

    Architecture - Design and Implementation Issues - Algorithms for implementation Other approaches.

    DISTRIBUTED FILE SYSTEM

    (06 Hours)

    Features - File Sharing Semantics, File Caching Schemes, File Repli cation, Design principles, Case Studies.

    DISTRIBUTED FAILURE RECOVERY AND FAULT TOLERANCE

    (06 Hours)

    Failure Classifications - Checkpoints, Synchronous and Asynchronous check pointing, Recovery, Commit protocols, Static and dynamic voting protocols.

    DISTRIBUTED DATABASES

    (04 Hours)

    ACID Properties, Concurrency Control, commit protocols: 2PC, 3PC.

    (Total Contact Time: 42 Hours)

    PRACTICALS
    1. Analysis of CPU loads for your machine and identify the state of your machine.
    2. Implement some application using RPC.
    3. Simulate a shared memory region and resolve concurrency conflicts using Dijkstra’s algorithm.
    4. Simulate Lamport’s Bakery Algorithm for distributed mutual exclusion.
    5. Implement a distributed scheduling algorithm for specific application.
    BOOKS RECOMMENDED
    1. Hagit Attiya, Jennifer Welch, "Distributed Computing: Fundamentals, Simulations, and Advanced Topics", 2/E, Jon Wiley & sons, March 2004.
    2. Nancy Lynch, "Distributed Algorithms", Morgan Kaufmann Publication, 1996.
    3. Mukesh Singhal, Niranjan G. Shivaratri (Contributor), "Advanced Concepts in Operating Systems: Distributed, Database, and Multiprocessor Operating Systems", MGH, 1994.
    4. Jim Farley, "Java Distributed Computing",1/E, 1998.
    5. Michael Reilly, "Java Network Programming and Distributed Computing", Addison Wesley, 2002.