Distributed Systems

advertisement
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!
Download