Skip to content

Latest commit

 

History

History
78 lines (64 loc) · 3.77 KB

01-ds.md

File metadata and controls

78 lines (64 loc) · 3.77 KB

← Return to Index

Distributed Systems

A Distributed System (DS) is a collection of independent computers that appear to its users as a single coherent system.

There are two types of Distributed Systems:

  1. Tightly-coupled — a network of processors that share a single memory address space
  2. Loosely-coupled — processors with their own local memory that work together via a “communication network”

System Models

Minicomputer Model

  • Simple extension of centralised time-sharing systems
  • Few minicomputers interconnected by communication network
  • Each minicomputer has multiple users logged on
  • Model used for remote resource sharing between users
  • e.g. ARPAnet

Workstation Model

  • Several workstations connected by communication network
  • Basic idea is to share processing power
  • User logs onto home workstation and submits jobs for execution, system might transfer one or more processes to other workstations
  • Issues: how to find an idle workstation, how to transfer processes, what happens to a remote process, etc
  • e.g. Xerox PARC, Final Cut Pro render farm

Workstation-server Model

  • Consists of few minicomputers and several workstations
  • Minicomputers are used for providing services
  • For higher reliability and better scalability, multiple servers may be used for a purpose
  • e.g. The V-System

Processor-pool Model

  • Sometimes, user needs no computing power, but once in a while needs a very large amount for a short period of time
  • “Run” server manages and allocates processors to different users
  • No concept of a home machine (i.e. user logs not into one machine but to system as a whole)
  • Offers better utilisation of processing power compared to other models
  • e.g. Amoeba, Plan9, Cambridge DCS

Hybrid Model

  • To combine the advantages of both the Workstation-server and the Processor-pool model, a Hybrid model may be used
  • It is based on the Workstation-server model but with the addition of a pool of processors
  • Very expensive!

Distribution Models

File Model

  • Resources modelled as files
  • Remote resources are accessed simply by accessing files

Remote Procedure Call Model

  • Resource accesses are modelled as function calls
  • Remote resources accessed by calling functions

Distributed Object Model

  • Resources are modelled as objects which are a set of data and functions to be performed on the data
  • Remote resources are accessed as objects

Advantages, Disadvantages & Challenges

Advantages

  • Reliability — only X% degradation if X% of machines go down (i.e. system as a whole does not go down)
  • Incremental Growth — computing power can be added in small increments
  • Sharing — allow many users access to a common database and peripherals
  • Communication — makes human-to-human communication easier
  • Effective Resource Utilisation — spread the workload over the available machines in the most cost-effective way

Disadvantages

  • Software — difficult to develop
  • Networking — can saturate or cause other problems
  • Security — easy access can also apply to secret data

Challenges

  • Heterogeneity — variety in networks, computer hardware, software, OS, programming languages, etc
  • Openness — scalability and extensible can only be achieved through easy-to-use interfaces
  • Transparency — system as a whole should look like a single computer
  • Performance — achieving high performance out of cheap computers
  • Scalability — system needs to work at large scales (e.g. hundreds, thousands, etc.)
  • Failure Handling — the more parts, the more tendency to fail
  • Security — authentication and data concealment
  • Concurrency — programs need to run simultaneously and must not interfere with each other