You are on page 1of 23

Distributed Operating

System
What is a Distributed Operating System ?
Distributed Operating System

A Distributed Operating System is the one that runs


on multiple, autonomous CPUs which provides its
users an illusion of an ordinary Centralized
Operating System that runs on a Virtual
Uniprocessor.

“If you can tell which computer you are using, you are
not using a distributed operating system.” -
Tanenbaum
Distributed Operating System

§ Runs on a cluster of machines


§ Users get the feel of a single processor - virtual
uniprocessor
§ Transparency is the driving force.
§ Requires:
 A single global IPC mechanism
A global protection mechanism
Identical process management and system calls at all nodes
Common file system at all nodes
How is it different ?

The Distributed Operating System is unique and


resides on different CPUs.
User processes can run on any of the CPUs as
allocated by the Distributed Operating System.
Data can be resident on any machine that is the part
of the Distributed System.
All multi-machine systems are not Distributed
Systems.
Distributed OS vs. Network OS.

ü User is not aware of the üUser is aware of the


multiple CPUs. existence of multiple CPUs.
ü Each machine runs a part üEach machine has its own
of the Distributed
Operating System. private Operating System.
ü The system is fault- üThe system is not fault-
tolerant. tolerant.
Why Distributed Operating Systems ?

Provides Transparency.

Reliability and Availability.

Price/Performance.

Resource Sharing

Simplicity of Software.

Scalability
Transparency

Transparency Description

Access Hide differences in data representation and how a resource is accessed

Location Users are not aware of the positioning of the resources in the system

Migration Resources can move without changing names

Relocation Hide that a resource may be moved to another location while in use

Replication Users should not be aware of multiple copies of resource

Concurrency Hide that a resource may be shared by several competitive users

Failure Hide the failure and recovery of a resource

Persistence Hide whether a (software) resource is in memory or on disk


Reliability

§ Fault Avoidance

§ Fault Tolerance

§ Fault Detection & Recovery


Scalability

Avoid centralized entities



Avoid centralized algorithms

Perform most operations on client workstations

Distributed Operating System Models

 Minicomputer Model
ØIt consists of a few minicomputers each with
multiple users.
ØSimple outgrowth of the Central Time-Sharing
Systems.
ØEach user is locally logged-on to one machine and
remotely logged-on to other machines.
Ø(Logged-in Users / Available CPUs) < 1
Distributed Operating System Models

 Workstation Model
ØEach user has his personal workstation and nearly all
work is done on the workstation.
ØEach user is locally logged-on to one machine and
remotely logged-on to other machines.
ØIt supports single, global file-system that provides
location-independent data access.
Ø(Logged-in Users / Available CPUs) ~ 1
Distributed Operating System Models

 Processor Pool Model


ØWhen an user needs to perform computation, a


processor is allocated from the processor pool to the
user task.
ØTerminals are diskless terminals and Pool of backend
processors handle processing
Ø(Logged-in Users / Available CPUs) > 1
Distributed Operating System Models

 Client-server Model

ØUser has local workstation


Ø
ØPowerful workstations serve as servers
(file, print, DB servers)

Problems with Distributed Operating System

Communication Protocol Overhead.


Lack of Simplicity.
High requirement of the degree of fault tolerance.
Lack of global state information (e.g. No global
Process Tables).
Atomic Transactions.
Process and Data Migration (e.g. During Load
Balancing and Paging respectively).
Design Issues

Communication Primitives
Naming and Protection
Resource Management
Fault-Tolerance
Services
Communication Primitives

Remote Procedure Call


Parameter Passing: Passing reference parameters over


the network is not easy. A unique system wide pointer for
each object is needed to access it remotely.

Parameter Representation: Incompatible representation
of data across network.

Client-Server Binding: Sometimes it is important to
know the details of the servers while handling RPC calls.
Naming and Protection

Naming is required for Object Recognition.


 Naming as Mapping
 Problem of mapping between two domains.
Name Servers

Maintain a table or
database of the name-to
object mapping.
Services, processes, etc
need to register with the
underlying naming
system.
Resource Management

 Managing resources without having accurate global


state information is difficult.
Distributed OS do not have tables that provide up-to-
date status information of all the resources being
managed.
Considerations:

§ Processor Allocation
§ Scheduling
§ Load balancing
§ Distributed Deadlock Detection
Fault Tolerance

A fault tolerant system is the one that can continue


functioning, perhaps in a degraded form, even if
something goes wrong.

Two radically different approaches:
§ Redundancy Techniques- create multiple copies of a process
and messages sent to a process
§ Atomic Transactions- property to run-to completion or do
nothing
Services

In a Distributed Operating system, it is useful to have user


level server processes to provide functions that have been


traditionally provided by the operating system leading to
the microkernel approach of the operating system design.

Some of them are:


§ File Service.
§ Print Service.
§ Process Service.
§ Terminal Service.
§ Mail service.
Comparison of some Distributed Operating
Systems
 Thank You

You might also like