Topic 1:  Introduction to Distributed Systems

- readings: CDK, Distributed Systems: Concepts and Designs, Chapter 1

 

Lecture 1

AWOL from first lecture

 

Lecture 2

Went over the course handout.  Gave course overview through a series of pictures.

Distributed System:  a system in which hardware or software components located at networked computers communicate and coordinate their actions only by passing messages.

 

Port: a resource managed by the nucleus of the OS that can be requested by and granted to a (server) process.  To implement operations with TCP and UDP on the Internet Protocol, certain well-known ports are assigned to server processes at system start up.  For example, port 21 is assigned to ftp, 22 to ssh, 23 to telnet, and 80 to http.  There are TCP and UDP numbers, but typically the ftp server requests both TCP port number 21 and UDP port number 21.

Lecture 3

Three significant characteristics of a Distributed System:

1.      Concurrent execution

·        concurrency:  several processes are in between starting and finishing at the same time

·        parallelism:  several processes are executing at the same time

2.      No global clock

·        limits to how closely computers can synchronize their clocks

3.      Independent failures

·        any component of the network can fail and software must deal with this

 

Prime Motivation for Distributed Systems:  resource sharing

·        hardware components:  printers, disks

·        software components:  files, databases, other data objects

·        transient components:  stream of video frames from digital camera, audio connection to a mobile phone 

 

Other Motivations:

·        economic (cheap) – not mentioned in CDK

·        fast: concurrency and scalability

·        reliable:  secure and fault-tolerant

·        extendible: heterogeneity and openness

·        convenient: transparency

 

Challenges for Distributed Systems

1.      Heterogeneity: variety and differences in networks, computer hardware, operating systems, programming languages, and implementations by different developers

2.      Openness: system made extensible by publishing the  specification and documentation for key software interfaces, i.e. made available to software developers.

3.      Security: confidentiality (protection against disclosure to unauthorized individuals), integrity (protection against alteration or corruption), and availability (protection against interference with the means to access the resource).

4.      Scalability: system will remain effective if there is a significant increase in the number of resources and users

5.      Failure Handling:  failure may be partial in a distributed system because some components may fail while others continue processing. 

6.      Concurrency: allowing requests from several clients to be processed such that they are in between starting and finishing at the same time

7.      Transparency:  concealment from the user and application programmer of the separation of components in a distributed system , so that the system is perceived as a whole rather than as a collection of independent components.

 

Tanenbaum’s Types of Transparency

1.      Location Transparency

·        users can not tell where resources such as CPUs, printers, files, and database are located

·         also cannot tell where other users are located

2.      Migration Transparency  (replaced by Mobility Transparency in CDK)

·        resources can be moved from one location to another without their names changing

·        e.g., files or printers moving between servers

3.      Replication Transparency

·        users don’t need to know how many copies of resources are available

·        e.g., files

4.      Concurrency Transparency

·        system ensures resources are accessed in a sequential manner (at some level of detail)

·        users do not have to consider other users

·        a more elaborate scheme than simple file locking

5.      Parallelism Transparency (absorbed into Replication Transparency)

·        computer, runtime system and OS make use of all processors available without explicit coding by user

·        e.g., same executable creates more parallel processes when more processors are available

 

CDK Types of Transparency

1.      Access Transparency:  enables local and remote resources to be accessed using identical operations

2.      Location Transparency:  enables resources to be accessed without knowledge of their (physical) location

a.       Tanenbaum's number 1

b.      Access transparency and location transparency are together referred to as network transparency.

3.      Concurrency Transparency:  enables several processes to operate concurrently using shared resources without interference between them

a.       Tanenbaum's number 4

4.      Replication Transparency: enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers

a.       Tanenbaum's number 3 and 5

5.      Failure Transparency: enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components

6.      Mobility Transparency: allows the movement of resources and clients within a system without affecting the operation of users or programs

a.       Tanenbaum's number 2

7.      Performance Transparency:  allows the system to be reconfigured to improve performance as loads change

8.      Scaling Transparency: Transparency: allows the system and applications to expand in scale without change to the system structure or the application algorithms

 

 

Advantages of Distributed Systems

a) Compared to centralized systems:

b) Compared to isolated PCs:

 

Disadvantages of Distributed Systems

 

Scalability of Distributed Systems

 

Reliability of a Distributed System

 

1. availability

 

2. security

 

3. fault tolerance

-         may want to reject the request that caused crash

-         performance degrades when one crashes or is removed from service

 

 

REMAINING NOTES WERE NOT COVERED IN CLASS

MAY BE USED IN LATER LECTURES

 

Hardware for Distributed Systems

 

a) distributed systems are MIMD, i.e., have multiple instruction streams and multiple data streams

 

b) matrix:

type       |         shared memory?                                 |

of         | Yes = Multiprocessor      |      No = Multicomputer    |

connection | (usually tightly coupled) |  (usually loosely coupled) |

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

bus        |  Sequent , Encore         |  Workstation on a LAN      |

           |  SGI (Grendel)            |  (Linux boxes)             |

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

switched   |   Ultracomputer, RP3      | Hypercube, Transputer      |

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

 

c) tightly coupled hardware

 

d) loosely coupled hardware

 

e) multiprocessor

 

f) multicomputer

 

g) bus system

 

h) switched system

 

i) bus-based multiprocessors

 

Software for Distributed Systems

 

Types of Software for Distributed Systems

a) Network Operating System

 

b) Integrated Distributed System

 

c) Multiprocessor Timesharing System

 

d) Doesn’t make sense:

 

Performance of a Distributed System

o       distribute computations with course-grained parallelism (large computations, low interaction rates, little data)

o       don’t distribute computations with fine-grained parallelism (small computations, interact with one another)

 

Multiprocessor Timesharing Systems

               P1      P2     P2    shared

              cache   cache  cache  memory

                |       |      |      |

       ================================== bus

 

In (shared) main memory:

 

Short-term scheduler’s queue (run queue)

 

Processors: P1, P2, P3

 

Process B blocks (e.g., requires I/O)

 

Features: