0% found this document useful (0 votes)
44 views3 pages

Distributed Systems Course Outline

This 3-credit course introduces students to distributed systems, their construction, and issues in building reliable distributed systems. Students will learn about communication in distributed systems, clock synchronization, consistency and replication methods, and fault tolerance. The course covers topics like architectures, processes, communication, naming, synchronization, consistency/replication, and fault tolerance. Students will be assessed through assignments, group work/presentations, and a final exam. The textbook is Distributed Systems by Tanenbaum and van Steen.

Uploaded by

hak adv
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views3 pages

Distributed Systems Course Outline

This 3-credit course introduces students to distributed systems, their construction, and issues in building reliable distributed systems. Students will learn about communication in distributed systems, clock synchronization, consistency and replication methods, and fault tolerance. The course covers topics like architectures, processes, communication, naming, synchronization, consistency/replication, and fault tolerance. Students will be assessed through assignments, group work/presentations, and a final exam. The textbook is Distributed Systems by Tanenbaum and van Steen.

Uploaded by

hak adv
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Admas University

School of Postgraduate Studies


Course Outline

Course Title: Distributed Systems


Course Code: CS 625
Credit hour: 3
Prerequisites: None
Course Description
This Course is intended to introduce to students the current developments in distributed s ystems,
their construction, issues that are involved in building reliable distributed systems, and possible
applications of distributed systems.
Learning Outcomes
At the end of this course, students will be able to
 Understand issues in developing distributed systems
 Explain
- how communication is handled in distributed systems
 Realize issues and difficulties in clock synchronization over several machines
 Learn the different methods that are used in handling consistency and replication and
how fault tolerant systems are built
Course Content
1. Introduction
 Introduction and Definition
 Goals of a Distributed System
 Types of Distributed System
2. Architectures
 Architectural Styles
 System Architecture
3. Processes
 Thread and their implementation
 Anatomy of clients

1
 Servers and Design Issues
 Code Migration
4. Communication
 Network Protocols and Standards
 Remote Procedure Call
 Message-Oriented Communication
 Stream-Oriented communication
 Multicast communication
5. Naming
 Names, Identifiers, and Addresses
 Flat Naming
 Structured Naming
 Attribute-Based Naming
6. Synchronization
 Clock Synchronization
 Logical Clocks
 Mutual Exclusion
 Election algorithms
7. Consistency and Replication
 Reasons for Replication
 Data-Centric Consistency Models
 Client-Centric Consistency Models
 Replica Management
 Consistency Protocols
8. Fault Tolerance
 Introduction to Fault Tolerance
 Process Resilience
 Reliable Client-Server Communication
 Reliable Group Communication
 Distributed Commit
 Recovery
2
Teaching Strategy
This course will be offered through lectures, presentations, class discussions, laboratory
reports and group work.

Method of Assessment
 Assignment…………………………………………. 20%
 Group work and presentation……………………. 30%
 Final Exam………………………………………… 50%

Teaching Support and Inputs for each content


Textbook:
 S. Tanenbaum and Maarten van Steen, Distributed Systems, Principles and Paradigms,
Prentice Hall, 2nd edition, 2006.

Reading Materials
 G. Coulouris, J. Dollimore, and T. Kindberg, Distributed Systems, Concepts and Design,
Addison Wesley, 4th edition, 2005.
 S. Tannenbaum, Computer Networks, Prentice Hall, 4th edition, 2003.
 S. Mullender, Distributed Systems, 2nd edition, Addison-Wesley, 199

Common questions

Powered by AI

Naming conventions in distributed systems provide a framework for identifying resources and services, influencing accessibility and interaction. Flat naming provides simplicity, structured naming supports hierarchical organization enhancing scalability, and attribute-based naming aids in dynamic resource discovery and matching user criteria .

The main types of consistency models are data-centric and client-centric. Data-centric models, such as sequential and causal consistency, focus on preserving a global order of updates, fitting well with applications needing strong consistency, like financial transactions. Client-centric models, such as eventual consistency, allow temporary inconsistencies, suitable for applications where availability and partition tolerance are prioritized, like social media feeds .

Communication methods in distributed systems ensure reliability and efficiency through various protocols like Remote Procedure Call (RPC), message-oriented communication, and multicast communication. These protocols standardize how data is transmitted to ensure accuracy and synchronization. However, they face challenges like network latency, packet loss, and maintaining consistency across distributed components .

Mutual exclusion is necessary in distributed processes to prevent concurrent access to shared resources that could cause conflicts or inconsistencies. Common algorithms like Ricart-Agrawala and token-based schemes help in managing exclusive access efficiently across a distributed network by coordinating request and release of locks .

Distributed systems handle code migration through techniques like mobile agents, remote execution, and dynamic linking. Benefits include load balancing, improved resource utilization, and enhanced flexibility in deploying applications across diverse environments to optimize performance .

Clock synchronization is crucial in distributed systems to ensure coordinated actions across different machines, apparent in timestamping events and maintaining consistency. It is achieved through algorithms such as Network Time Protocol (NTP) for real-time synchronization and logical clocks for event ordering without requiring tight synchronicity .

Architectural styles in distributed systems dictate the structure and interaction modes among components, influencing scalability, reliability, and maintenance. For instance, a client-server architecture simplifies resource sharing but can introduce bottlenecks, while a peer-to-peer architecture offers robustness and fault tolerance but can complicate coordination .

Fault tolerance enhances system reliability by ensuring continued operation despite component failures. Methods like process resilience, utilizing redundant systems and failover strategies, and reliable communication protocols, like distributed commit and recovery mechanisms, enable systems to autonomously recover from faults .

Implementing election algorithms in distributed systems presents challenges like network partitioning, ensuring leader uniqueness, and dealing with node failures. These are addressed by algorithms such as the Bully and Ring algorithms, which use timeouts, message checks, and peer communication to ensure a single leader even in dynamic or failure-prone environments .

RPC abstracts network communication by allowing function calls to occur over a network as though they are local, simplifying development. Message-oriented communication, on the other hand, focuses on the explicit sending and receiving of messages, providing more control over transmission with increased robustness but requiring more complexity in handling message exchange .

You might also like