Course Overview
Distributed Systems IT332
2
Course Description
The
course introduces the main principles underlying
distributed systems: processes, communication, naming,
synchronization, consistency, fault tolerance, and security.
Students will be familiar with some of the main paradigms in
distributed systems: object-based systems, file systems, webbased and coordination-based systems.
On the completion of the unit, students will understand the
fundamentals of distributed computing and be able to design
and develop distributed systems and applications.
3
Target Audience and Prerequisites
Prerequisites:
IT224 Computer Network
IT311 Web Applications
Students should have a basic knowledge of computer systems
and object-oriented programming.
Target Audience:
Seniors
4
Text Books
The primary textbooks for this course are:
Andrew S. Tannenbaum and Maarten Van Steen, Distributed
Systems: Principles and Paradigms, 2nd E, Pearson, 2007.
Reference Book:
Tom white, Hadoop: The Definitive Guide, 2nd E, O’Reilly
Media, 2011
5
Blog
It332ksu.wordpress.com
6
Why Distributed Systems?
Many systems that we use on a daily basis are distributed
World wide web, Google
Amazon.com
Peer-to-peer file sharing systems
Useful to understand how such real-world systems work
Course covers basic principles for designing distributed systems
7
Definition of Distributed Systems
A distributed system:
Multiple connected CPUs working together
A collection of independent computers that appears to its users
as a single coherent system
8
Requirements
This requires:
A way for processes on different machines to exchange
information (Process and Communication).
A way for process to access other entities (Naming).
A way for processes to cooperate, synchronize with one another
and agree on shared values (Synchronization).
A way to enhance reliability and improve performance
(Consistency and Replication).
A way to recover from partial failures (Fault Tolerance).
9
Syllabus
Introduction
Synchronization
Consistency and Replication
•Outlining the characteristics of
distributed systems and the challenges
that must be addressed in their design.
•Describe and analyze how multiple
machines and services should
cooperate and synchronize to correctly
solve a problem.
•Identify how replication of resources
improve performance in distributed
systems, and explain algorithms to
maintain consistent copies of replicas.
Architecture
Naming
Fault Tolerance
•Tells how the
various software components are to
be organized and how they should
interact
•Identify why entities and resources in
distributed systems should be named,
and examine the naming conventions
and name-resolution mechanisms
•Explain how a distributed system can
be made fault tolerant.
Process
Communication
Distributed File Systems
•Identify how processes are internally
organized, configure clients and servers
and what is meant by code migration
•Explain and contrast the
communication mechanisms between
processes and systems.
•Explain distributed file systems as a
paradigm for general-purpose
distributed systems, analyze its various
aspects and architectures, and contrast
against parallel file systems.
10
CLOs: Course Learning Outcomes
Explain what a distributed system is, and what the desired
properties of such systems are.
Apply the basic theoretical concepts of distributed systems.
Design and implement simple distributed system.
Examine how modern distributed systems meet the demands
of contemporary distributed applications.
11
Teaching Team
Mashael Al-Duwais
• Office #6T73
• Email: malduwais@KSU.EDU.SA
Asma Almutairy
• Office #6S6
• Email: asmaalmutairi@KSU.EDU.SA
12
Assessment
Activity
Weight
Final Exam
40
Midterm Exams (2)
30
Lecture Quiz
6
Lab:
24
Lab Quiz
6
Tutorial & Lab evaluation
3
Case study
5
Programing assignments
10
13
Exam Dates
Exam
Date
Mid 1
Wednesday 11/5/1435
Mid 2
Wednesday 23/6/1435
Final Exams
Wednesday 22/7/1435
14
Policy
Attendance
Making up Exams and Assignments
Attendance at all lectures and labs is required.
You should attend with your original section
If you miss a lecture or lab, it is your responsibility to catch up on the topics that you
missed but you can’t be evaluated for the lab session.
If you miss an exam, you should IMMEDIATELY contact the makeup exam committee
no later than 7 days after the exam
Academic Integrity
Each assignment must be the sole work of the student turning it in.
Assignment will be closely monitored, and students may be asked to explain any
suspicious similarities with any piece of code available.
If a case observed both students will got a Zero
15
Next Lecture
We will discuss the trends, goals, and different types of
distributed systems
Questions?
Thanks!