Distributed computing Link
Description
In the last few decades, we have experienced an unprecedented growth in the area of distributed systems and networks. Distributed computing now encompasses many of the activities occurring in today’s computer and communications world. Indeed, distributed computing appears in quite diverse application areas: Typical examples are parallel computers or the Internet. More recent application examples of distributed systems include peer-to-peer systems, cloud, sensor networks, or multi-core architectures. Distributed computing is, then, essential in modern computing and communications systems.
This course introduces principles of distributed computing, highlighting common themes and techniques. In particular, we study some of the fundamental issues underlying the design of distributed systems. Topics covered include software architecture, process management, communication, coordination, locality, fault tolerance, synchronizations, and parallelism.
Course Objective
The participants must at the end of the course be able to:
define and describe fundamental concepts of and techniques in distributed computing.
apply distributed systems techniques and analyze distributed systems according to desired qualities (such as performance, reliability, or availability).
compare and distinguish concepts of and techniques in distributed systems with respect to their ability to fulfill desired qualities.
construct designs distributed systems according to desired qualities by choosing among introduced concepts and techniques.
Textbooks
- Title: Distributed Systems: Principles and Paradigms, second edition, by Andrew S. Tanenbaum, Maarten ven Steen, Prentice-Hall, 2007.
Evaluation Method
Exercises/Labs (40%), Class activities (10%), final examination (50%)
Schedule
Lecture #
Lectures
Homework
Ex/Lab
Reading
Introduction to Distributed Computing
(pdf)
Chapter 1
Architectures for Distributed Systems
Chapter 2
JESSICA: Java-Enabled Single-System-Image Computing Architecture, JPDC 2000
Architectures for Distributed Systems (Cont.)
(pdf)
HW1
Distributed Process Management I (pdf)
HW2
Chapter 3:
Heterogeneous Process Migration
Communication (pdf)
Chapter 4
Naming (pdf)
Chapter 5
Synchronization (pdf)
Chapter 6
Synchronization (Cont.)(pdf)
HW3
Replications and Consistency (pdf)
Chapter 7
Replications and Consistency (Cont.) (pdf)
Fault Tolerance in Distributed Systems (pdf)
Fault Tolerance in Distributed Systems (Cont.) (pdf)
HW4
Chapter 8
Final Examination
Research Paper Topics and useful references