21
CS454/654 Distributed Systems M. Tamer Özsu DC 3350 [email protected]

CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654Distributed Systems

M. Tamer ÖzsuDC 3350

[email protected]

Page 2: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-2

Course ObjectiveThis course provides an introduction to the fundamentals of distributed computer systems, assuming the availability of facilities for data transmission.The structure of distributed systems using multiple levels of software is emphasized. Specific topics include:

distributed algorithms distributed file systemsdistributed databases, security and protection distributed services such as the world-wide web, and examples of research and commercial distributed systems

Page 3: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-3

Course ModulesModule 1: Fundamental Architectures and Models of Distributed Systems Module 2: Brief Overview of Computer Networks Module 3: Distributed Objects and Remote InvocationModule 4: Distributed NamingModule 5: Distributed File SystemsModule 6: Synchronization Module 7: Data Replication Module 8: Fault ToleranceModule 9: Security

Page 4: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-4

Course Information

Intended Audience:CS 454 is a course for CS major students and is normally completed in the fourth year.

Related Courses:Prerequisites: CS 354 (CS 350)and fourth-year standing in a CS major program.Antirequisites: CS 436, E&CE 454.CS 456 is not a prerequisite but provides information about the underlying facilities assumed in this course.

Page 5: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-5

Course InformationLectures:

TR 8:30-9:30 & 11:30-12:50 in MC 4042

Office Hours:T 10:00-11:15 in DC 3350

Assignments:3 assignments, a combination of answering questions and implementation work.

Exams:A Midterm and a FinalMidterm scheduled for 23 June, 7:00-9:00 PM in MC 2034 & 2035

Page 6: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-6

Course DocumentsTextbook:

A.S. Tanenbaum and M. van Steen, Distributed Systems: Principles and Paradigms, Prentice-Hall, 2002.

Other References:G. Colouris, J. Dollimore, and T. Kindberg, Distributed Systems: Concepts and Design, 3rd edition, Addison-Wesley, 2001.M.L. Liu, Distributed Computing – Principles and Applications, Addison-Wesley, 2004.J. Kurose and K. Ross, Computer Networking: A Top-Down Approach Featuring the Internet, Addison-Wesley, 2001

Course Home Page:http://db.uwaterloo.ca/~tozsu/courses/cs454Home page will include all the slides used in the course.Slides will also be available for purchase as course notes.

Course Newsgroup:uw.cs.cs454

Page 7: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-7

Administravia

GradingCS 454 CS 654

Assignments 30% 22% (Assignments 2&3 only)Midterm 30% 20%Final 40% 40%Project 18%

Assignments 1& 3 are 8%, 2 is 14% (programming)Students have to pass the exams to obtain a passing grade in the course.

AnnouncementsIn class, on the course Web page, and on the newsgroup; material will also be available electronically

CollaborationCollaborate on assignments, but do not merely copy.

Page 8: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-8

What’s a Distributed System?

Example: a network of workstations allocated to usersa pool of processors in the machine room allocated dynamicallya single file system (all users access files with the same path name)user command executed in the best place (user workstation, a workstation belonging to someone else, or on an unassigned processor in the machine room)

A distributed system is a collection of independent computersthat appear to the users of the system as a single computer

Page 9: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-9

Why Distributed?Economics Microprocessors offer a better price/

performance than mainframes

Speed A distributed system may have more total computing power than a mainframe

Inherent distribution Some applications involve spatially separated machines

Reliability If one machine crashes, the system as a whole can still survive

Incremental growth Computing power can be added in smallincrements

Page 10: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-10

Primary Features

Multiple computersConcurrent executionIndependent operation and failures

CommunicationsAbility to communicateNo tight synchronization (no global clock)

“Virtual” ComputerTransparency

Page 11: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-11

Types of TransparencyAccess local and remote resources are accessed using identical

operations

Location resources are accessed without knowledge of their location

Concurrency several processes operate concurrently using shared resources without interference between them

Replication multiple instances of resources appeare as a single instance

Failure the concealment of faults from users

Mobility the movement of resources and clients within a system (also called migration transparency)

Performance the system can be reconfigured to improve performance

Scaling the system and applications can expand in scale without change to the system structure or the application algorithms

Page 12: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-12

Typical Layering in DSs

Applications, services

Computer and network hardware

Platform

Middleware

Operating system

Page 13: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-13

Example – Internet (Portion of it)

intranet

ISP

desktop computer:

backbone

satellite link

server:network link:

From Coulouris, Dollimore and Kindberg, Distributed Systems: Concepts and Design, 3rd ed. © Addison-Wesley Publishers 2000

Page 14: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-14

Example – An Intranet

the rest of

email server

Web server

Desktopcomputers

File server

router/firewall

print and other servers

other servers

print

Local areanetwork

email server

the Internet

From Coulouris, Dollimore and Kindberg, Distributed Systems: Concepts and Design, 3rd ed. © Addison-Wesley Publishers 2000

Page 15: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-15

Example – Mobile Environment

From Coulouris, Dollimore and Kindberg, Distributed Systems: Concepts and Design, 3rd ed. © Addison-Wesley Publishers 2000

Laptop

Mobile

PrinterCamera

Internet

Host intranet Home intranetWAP Wireless LAN

phone

gateway

Host site

Page 16: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-16

Example - Web

Internet

BrowsersWeb servers

www.google.com

www.cdk3.net

www.w3c.org

Protocols

Activity.html

http://www.w3c.org/Protocols/Activity.html

http://www.google.comlsearch?q=kindberg

http://www.cdk3.net/

File system ofwww.w3c.org

From Coulouris, Dollimore and Kindberg, Distributed Systems: Concepts and Design, 3rd ed. © Addison-Wesley Publishers 2000

Page 17: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-17

Challenges (I)Heterogeneity

NetworksHardwareOSProgramming LanguagesImplementations

OpennessCan you extend and re-implement the system?Public and published interfacesUniform communication mechanism

Page 18: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-18

Challenges (II)Scalability

Can the system behave properly if the number of users and components increase?

Scale-up: increase the number of “users” while keeping the system performance unaffectedSpeed-up: improvement in the system performance as system resources are increased

ImpedimentsCentralized data

A single fileCentralized services

A single serverCentralized algorithms

Algorithms that “know it all”

Page 19: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-19

Challenges (III)

Failure handlingPartial failures

Can non-failed components continue operation?Can the failed components easily recover?

Failure detectionFailure maskingFailure toleranceRecoveryAn important technique is replication

Why does the space shuttle has 3 on-board computers?

Page 20: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-20

Challenges (IV)Concurrency

Multiple “clients” sharing a resource ⇒ how to you maintain integrity of the resource and proper operation (without interference) of these clients?Example: bank account

Assume your account has a balance of $100You are depositing from an ATM a cheque for $50 into that accountSomeone else is withdrawing from the same account $30 using another ATM but at the same time What should the final balance of the account be?

$120$70$150

Page 21: CS454/654 Distributed Systemstozsu/courses/cs454/notes/0... · 2015-01-01 · CS454/654 0-4 Course Information QIntended Audience: OCS 454 is a course for CS major students and is

CS454/654 0-21

Challenges (V)

TransparencyNot easy to maintainExample:

EMP(ENO,ENAME,TITLE,LOC)PROJECT(PNO,PNAME,LOC)PAY(TITLE,SAL)ASG(ENO,PNO,DUR)

SELECT ENAME,SALFROM EMP,ASG,PAYWHERE DUR > 12AND EMP.ENO = ASG.ENOAND PAY.TITLE = EMP.TITLE

Paris projectsParis employeesParis assignmentsBoston employees

Montreal projectsParis projectsNew York projects

with budget > 200000Montreal employeesMontreal assignments

Boston

CommunicationNetwork

Montreal

Paris

NewYork

Boston projectsBoston employeesBoston assignments

Boston projectsNew York employeesNew York projectsNew York assignments

Tokyo