Title: Modern Operating Systems
1Modern Operating Systems
2Lecture 5 Distributed System Design
- Objectives Lecture 5
- To consider distributed system architecture
- To identify basic concepts
- To investigate design goals
3Lecture 5 Distributed System Design
- We have seen that Operating System provides an
environment to execute programs. - What are distributed systems ?
- They could have a distributed OS
- They could have centralised OS with distributed
resources - Or they can have a mixture of both!
4 Lecture 5 Distributed System Design.
CPU
CPU
CPU
CPU
CPU
CPU
Loosely Coupled
Tightly Coupled Systems
Separated but joined by a Network
In same box shared BUS
5Lecture 5 Distributed System Design.
- What are the design goal for a distributed
system? - Economic - Idle workstation CPUs can share
possible heavy workloads! - Reliability - if one of ten workstations crash
only 10 of the system has failed - Resource Share
- Performance
- Incremental growth
6Lecture 5 Distributed System Design.
- Two different types of OS have been developed for
Distributed Systems - Most Common - attach file system from remote
system to a local workstation - Runs totally on the Server side
- Another type of NOS that starts to blur the
boundary between machines - System manages the resources but were the
resources are physically does not matter.
7Lecture 5 Distributed System Design.
- Hybrid Systems
- Uses a fully distributed approach not yet that
common. - CORBA - Common Object Request Broker
Architecture. - COM DCOM NTs Common Object Model.
8Lecture 5 Distributed System Design.
- SOCKETS
- Any form of distributed system relies on the
ability of the different systems to communicate
effectively. - Sockets is a set of facilities to HIDE the
network protocols etc. and offer a uniform
approach to the interworking of two or more
machines.
9Lecture 5 Distributed System Design.
- RPC - Remote Procedure Calls
- Sockets provide a mechanism to transmit data
between machines I.e. across the address space
boundary. - RPC provides the mechanism to use this data in a
form that makes a function call appear
transparent I.e. the application has no idea if
the function being used is local or remote.
10Lecture 5 Distributed System Design.
- Mutual Exclusion
- With Sockets and RPC we can communicate between
machines in a distributed system but what about
unique access to a specific resource when we are
dealing across machine boundaries.
11Lecture 5 Distributed System Design.
- Critical Regions for Process and thread access on
a single machine lead to the concepts of
Semaphores, Critical Regions etc. - These tend to rely on sharing data variables
within the OS and hence do not map to a
distributed system.
12Lecture 5 Distributed System Design.
- Centralised algorithms
- In this design technique the distributed system
has a single process that controls entry to
critical or exclusive resources. - Such systems work until there is a problem with
either a failure or message loss in the
connection philosophy. - Techniques must be available to detect that the
control process is still functioning.
13Lecture 5 Distributed System Design.
- Distributed algorithms
- Various techniques have been developed that take
away the centralised algorithmic control - Most use a variant of a time stamp to work out
who got the request in first and whether to grant
the request. - The disadvantage is that a great deal of message
passing is required to determine what is going
on. - Suitable for small, stable sets of co-operating
processes
14Lecture 5 Distributed System Design.
- DeadLock
- single standalone systems can reach deadlock.
- When looking at a system of co-operating machines
the situation becomes even more complicated as do
the solutions - Prevention and avoidance algorithms associated
with single OS machines are rare in distributed
systems
15Lecture 5 Distributed System Design.
- Prevention and Avoidance
- Such algorithms require advanced knowledge of the
resources required. - Not possible on a co-operative system
- Deadlock detection and recovery
- Requires complex algorithms in eaxh machine
looking at resource utilisation locally, when a
pattern of unison between machines is found
recovery of resource must start.
16Lecture 5 Distributed System Design.
- Distributed Shared Memory
- Current OS designs are allowing memory for a
process on one system to be shared with a process
on another. - Advantage of this is that standalone applications
could be migrated to distributed systems with
minimal effort. - The detail of the run time support structures for
such scheme is complex and CORBA and COM offer
more viable alternatives.
17Lecture 5 Distributed System Design.
- File Systems
- Distributed File Systems will be dealt with in
specific lectures.
18Lecture 5 Distributed System Design.
- Scaling Issues
- Any implementation of a distributed system must
offer scaling not just to small, meduim or large
but to world-wide services. - This tends to rule out all centralised solutions
to problems such as deadlock. - Emphasis must be placed on fully distributed
algorithms to overcome the identified problems
19Lecture 5 Distributed System Design.
- Fault Tolerance
- Since we are dealing with multiple machines and a
communications infrastructure which could be
spread over a large area - System must be prone to more faults than a
standalone machine - These same characteristics can be used to ensure
the system is more fault resistant than any
standalone system but at a price!
20Lecture 5 Distributed System Design.
- Security issues beyond those found on standalone
systems - Authentication of the users and machines that are
part of the system - Protection of the messages that pass arround the
system
21Lecture 5 Distributed System Design.
- Authentication
- One way Authentication
- Two way Authentication
- More details in a later lecture
22Lecture 5 Distributed System Design.
- Cryptography
- Data on the infrastructure is vulnerable to
attack - Masquerading as a legitimate source is a method
of obtaining unauthorised information - Interception and tampering offers a means of
making servers or services perform unauthorised
actions
23Lecture 5 Distributed System Design.
- Design Techniques
- Pre partition
- Design the system with the distributed
architecture already defined - Prone to errors if the architecture has to
altered later - Post partitioning
- Design the system possibly start the
implementation before the manner of the
distributed architecture is defined
24Lecture 5 Distributed System Design.
- Post partition
- Pros
- No constraint on the initial design
- Stand alone design methodologies can be used
- Cons
- Each element of the system once distributed will
need to be able to map all other elements - Leads to the idea of the Virtual Node (ADA)
25Lecture 5 Summary
- Distributed systems are not simply a collection
of standalone systems bolted together. - Specific problems are unique to distributed
design - Design goals need to be carefully examined before
a design can be undertaken