UNIT-4 Distributed Scheduling

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 51

UNIT-4

Distributed Load Scheduling


&
Dead Lock

The computer system today allows multiple programs to


be loaded into memory and to be executed concurrently
but at one point of time only one program is in execution
or rather at most one instruction is executed on behalf of
the process.
A source program stored on disk is called passive because
it will not demand any resource.
A process is an active entity i.e. program in execution is
called process during execution process demand resource
like CPU , memory , I/O etc. for the execution.

User feels that all of them run simultaneously, however operating system allocates one process at a time.

New Here the operating system


recognizes the process but does not
assign resources to it.
Ready The process is ready and
waiting for the processor for
execution.
Run When a process is selected by
the CPU for execution, it moves to
the run state.
Blocked When a running process
does not have immediate access to a
resource it is said to be in the
blocked state.
Terminated This is the state
reached when the process finishes
execution.

Distributed Scheduling

Distribute Scheduling: As wide area network have high


communication delays, Distribute scheduling is more suitable for
distributed systems based on local area network.
A locally distributed systems consists of a collection of autonomous
computers , connected by local area communication network. Users
submit tasks at their host computers for processing. The need for load
distributing arises in such environment because due to random arrival
of tasks and their random CPU service time requirement there is a
good possibility that several computers are heavily loaded while others
are idle or highly loaded.

Issues in Load Distribution

Task assignment approach


load-balancing approach
load-sharing approach
Classification of load distributing approach

Types of process scheduling techniques


Task assignment approach deals with the assignment of task in
order to minimize inter process communication costs and improve
turnaround time for the complete process, by taking some
constraints into account
In load-balancing approach the process assignment decisions
attempt to equalize the average workload on all the nodes of the
system
In load-sharing approach the process assignment decisions
attempt to keep all the nodes busy if there are sufficient processes
in the system for all the nodes

Task assignment approach


Main assumptions
Processes have been split into tasks
Computation requirement of tasks and speed of processors are
known
Cost of processing tasks on nodes are known
Communication cost between every pair of tasks are known
Resource requirements and available resources on node are known
Reassignment of tasks are not possible
Basic idea: Finding an optimal assignment to achieve goals such as the
following:
Minimization of IPC costs
Quick turnaround time of process
High degree of parallelism
Efficient utilization of resources

Types of Load Distributing Approaches

Static versus Dynamic

Static algorithms use only information about the average behavior


of the system
Static algorithms ignore the current state or load of the nodes in
the system
Dynamic algorithms collect state information and react to system
state if it changed
Static algorithms are much more simpler
Dynamic algorithms are able to give significantly better
performance

Deterministic versus Probabilistic

Deterministic algorithms use the information about the properties


of the nodes and the characteristic of processes to be scheduled
Probabilistic algorithms use information of static attributes of the
system (e.g. number of nodes, processing capability, topology) to
formulate simple process placement rules

Centralized versus Distributed

Centralized approach collects information to server node and


makes assignment decision
Distributed approach contains entities to make decisions on a
predefined set of nodes
Centralized algorithms can make efficient decisions, have lower
fault-tolerance
Distributed algorithms avoid the bottleneck of collecting state
information and react faster

Cooperative versus Non cooperative

In Non cooperative algorithms entities act as autonomous ones and


make scheduling decisions independently from other entities
In Cooperative algorithms distributed entities cooperate with each
other
Cooperative algorithms are more complex and involve larger
overhead
Stability of Cooperative algorithms are better

Components for load distribution algorithm

Load estimation policy


determines how to estimate the workload of a node
Process transfer policy
determines whether to execute a process locally or remote
State information exchange policy
determines how to exchange load information among nodes
Location policy
determines to which node the transferable process should be sent
Priority assignment policy
determines the priority of execution of local and remote processes
Migration limiting policy
determines the total number of times a process can migrate

Load estimation policy for Load Balancing


Algorithm

To balance the workload on all the nodes of the system, it is necessary


to decide how to measure the workload of a particular node
Some measurable parameters (with time and node dependent factor)
can be the following:
Total number of processes on the node
Resource demands of these processes
Instruction mixes of these processes
Architecture and speed of the nodes processor

Process transfer policy


Most of the algorithms use the threshold policy to decide on whether
the node is lightly-loaded or heavily-loaded
Threshold value is a limiting value of the workload of node which can
be determined by
Static policy: predefined threshold value for each node depending
on processing capability
Dynamic policy: threshold value is calculated from average
workload and a predefined constant
Below threshold value node accepts processes to execute, above
threshold value node tries to transfer processes to a lightly-loaded
node
Double threshold policy
When node is in overloaded region new local processes are sent to
run remotely, requests to accept remote processes are rejected
When node is in normal region new local processes run locally,
requests to accept remote processes are rejected
When node is in underloaded region new local processes run
locally, requests to accept remote processes are accepted

Location policy
Threshold method
Policy selects a random node, checks whether the node is able to
receive the process, then transfers the process. If node rejects,
another node is selected randomly. This continues until probe limit
is reached.
Shortest method
Distinct nodes are chosen at random, each is polled to determine
its load. The process is transferred to the node having the
minimum value unless its workload value prohibits to accept the
process.
Simple improvement is to discontinue probing whenever a node with
zero load is encountered

Location policy
Bidding method
Nodes contain managers (to send processes) and contractors (to
receive processes)
Managers broadcast a request for bid, contractors respond with
bids (prices based on capacity of the contractor node) and manager
selects the best offer
Winning contractor is notified and asked whether it accepts the
process for execution or not

Location policy
Pairing
Contrary to the former methods the pairing policy is to reduce the
variance of load only between pairs
Each node asks some randomly chosen node to form a pair with it
If it receives a rejection it randomly selects another node and tries
to pair again
Two nodes that differ greatly in load are temporarily paired with
each other and migration starts
The pair is broken as soon as the migration is over
A node only tries to find a partner if it has at least two processes

State information exchange policy


Dynamic policies require frequent exchange of state information, but
these extra messages arise two opposite impacts:
Increasing the number of messages gives more accurate scheduling
decision
Increasing the number of messages raises the queuing time of
messages
State information policies can be the following:
Periodic broadcast
Broadcast when state changes
On-demand exchange
Exchange by polling

State information exchange policy


Periodic broadcast
Each node broadcasts its state information after the elapse of every
T units of time
Problem: heavy traffic, fruitless messages, poor scalability since
information exchange is too large for networks having many nodes
Broadcast when state changes
Avoids fruitless messages by broadcasting the state only when a
process arrives or departures
Further improvement is to broadcast only when state switches to
another region (double-threshold policy)

State information exchange policy


On-demand exchange
In this method a node broadcast a State-Information-Request
message when its state switches from normal to either underloaded
or overloaded region.
On receiving this message other nodes reply with their own state
information to the requesting node
Further improvement can be that only those nodes reply which are
useful to the requesting node
Exchange by polling
To avoid poor scalability (coming from broadcast messages) the
partner node is searched by polling the other nodes one by one,
until poll limit is reached

Priority assignment policy


Selfish
Local processes are given higher priority than remote processes.
Worst response time performance of the three policies.
Altruistic
Remote processes are given higher priority than local processes.
Best response time performance of the three policies.
Intermediate
When the number of local processes is greater or equal to the
number of remote processes, local processes are given higher
priority than remote processes. Otherwise, remote processes are
given higher priority than local processes.

Migration limiting policy


This policy determines the total number of times a process can migrate
Uncontrolled
A remote process arriving at a node is treated just as a process
originating at a node, so a process may be migrated any
number of times
Controlled
Avoids the instability of the uncontrolled policy
Use a migration count parameter to fix a limit on the number
of time a process can migrate
Irrevocable migration policy: migration count is fixed to 1
For long execution processes migration count must be greater
than 1 to adapt for dynamically changing states

Load-sharing approach
Drawbacks of Load-balancing approach
Load balancing technique with attempting equalizing the workload
on all the nodes is not an appropriate object since big overhead is
generated by gathering exact state information
Load balancing is not achievable since number of processes in a
node is always fluctuating and temporal unbalance among the
nodes exists every moment
Basic ideas for Load-sharing approach
It is necessary and sufficient to prevent nodes from being idle
while some other nodes have more than two processes
Load-sharing is much simpler than load-balancing since it only
attempts to ensure that no node is idle when heavily node exists
Priority assignment policy and migration limiting policy are the
same as that for the load-balancing algorithms

Load estimation policy for Load-sharing algorithms

Since load-sharing algorithms simply attempt to avoid idle nodes, it is


sufficient to know whether a node is busy or idle
Thus these algorithms normally employ the simplest load estimation
policy of counting the total number of processes
In modern systems where permanent existence of several processes on
an idle node is possible, algorithms measure CPU utilization to
estimate the load of a node

Process transfer policy


Algorithms normally use all-or-nothing strategy
This strategy uses the threshold value of all the nodes fixed to 1
Nodes become receiver node when it has no process, and become
sender node when it has more than 1 process
When CPU utilization is used as the load estimation policy, the
double-threshold policy should be used as the process transfer policy

Location policy
Location policy decides whether the sender node or the receiver node
of the process takes the initiative to search for suitable node in the
system, and this policy can be the following:
Sender-initiated location policy
Sender node decides where to send the process
Heavily loaded nodes search for lightly loaded nodes
Receiver-initiated location policy
Receiver node decides from where to get the process
Lightly loaded nodes search for heavily loaded nodes
Sender-initiated location policy
Node becomes overloaded, it either broadcasts or randomly probes
the other nodes one by one to find a node that is able to receive
remote processes
When broadcasting, suitable node is known as soon as reply
arrives

State information exchange policy


In load-sharing algorithms it is not necessary for the nodes to
periodically exchange state information, but needs to know the state of
other nodes when it is either underloaded or overloaded
Broadcast when state changes
In sender-initiated/receiver-initiated location policy a node
broadcasts State Information Request when it becomes
overloaded/underloaded
It is called broadcast-when-idle policy when receiver-initiated
policy is used with fixed threshold value of 1
Poll when state changes
In large networks polling mechanism is used
Polling mechanism randomly asks different nodes for state
information until find an appropriate one or probe limit is reached
It is called poll-when-idle policy when receiver-initiated policy is
used with fixed threshold value of 1

Classification/Types
of Load Distribution Algorithms

Sender Initiated LD Algorithms


The overloaded node attempts to send tasks to lightly loaded node
Transfer Policy: If new Tasks takes you above threshold, become
sender. If receiving task will not lead to crossing over threshold,
then become receiver
Selection Policy: Newly arrived tasks
Location Policy
Random still better than no sharing. Constrain by limiting
the number of transfers
Threshold chose nodes randomly but poll them before
sending task. Limited no. of polls. If process fails execute
locally.
Shortest Poll all randomly selected nodes and transfer to
least loaded. Doesnt improve much over threshold.
Information Policy

Receiver initiated
Load sharing process initiated by a lightly loaded node
Transfer Policy: Threshold based.
Selection Policy: Can be anything
Location Policy: Receiver selects up to N nodes and polls them,
transferring task from the first sender. If none are found, wait for a
predetermined time, check load and try again
Information Policy

Symmetric Algorithms
Simple idea combine the previous two. One works well at high
loads, the other at low loads.
Above Average Algorithm: Keep load within a range
Transfer Policy: maintain 2 thresholds equidistant from
average. Nodes with load > upper are senders, Nodes with
load < lower are receivers.
Location Policy: Sender Initiated:
Sender broadcasts too high message and sets up too
high alarm
Receiver getting too high message replies with accept,
cancels its too low alarm, starts an awaiting task alarm,
and increments load value
Sender which gets accept message will transfer task as
appropriate. If it gets too low message, it responds with a
too high to the sender.
If no accept has been received within timeout, send out
change average message.

Adaptive Algorithms
Stable Symmetric Algorithm.
Use information gathered during polling to change behaviour.
Start by assuming that everyone is a receiver.
Transfer Policy: Range based with Upper and Lower Threshold
Location Policy: Sender Initiated component polls node at head of
receiver list. Depending on answer, either a task is transferred or
node moved to OK or sender list. Same thing happens at the
receiving end. Receiver initiated component polls senders list in
order, OK list and receivers list in reverse order. Nodes are moved
in and out of lists at sender and receiver.
Selection Policy any, Information Policy Demand driven
At high loads, receiver lists get empty preventing future polling
and deactivating sender component. At low loads, receiver
initiated polling is deactivated, but not before updating receiver
lists.

Task Migration
Task Migration refers to the transfer of a task that has already begin
execution by a new location and continuing its execution there to
migrate a partially executed task to a new location , the tasks state
should be made available at the new location. The steps involved in
task migration are:
Task transfer: The transfer of tasks state to the new machine.
Unfreeze: This task is installed at the new machine and is put in the
ready queue., so that it can continue executing.

Issues in Task Migration


In the design of a task migration mechanism, several issues play
important role in determining the efficiency of the mechanism. These
issues include:
State Transparency: There are two issues to be considered
1. The cost to support remote execution which includes delays due to
freezing task.
2.Residual dependencies which refer to the amount of resources
former host of a preempted or migrated task.
Location Transparency: Task migration should hide the location of
tasks just as a distributed file system hides the location of files.
Structure of migration mechanism: Whether to separate policy
making modules from mechanism modules , Deciding whether the
policy and mechanism should reside, policy modules decide whether a
task transfer could occur.

Traffic Shaping
Another method of congestion control is to shape the
traffic before it enters the network.
Traffic shaping controls the rate at which packets are sent
(not just how many). Used in ATM and Integrated Services
networks.
At connection set-up time, the sender and carrier negotiate
a traffic pattern (shape).
Two traffic shaping algorithms are:
Leaky Bucket
Token Bucket

42

The Leaky Bucket Algorithm

The Leaky Bucket Algorithm used to control rate in a


network. It is implemented as a single-server queue with
constant service time. If the bucket (buffer) overflows then
packets are discarded.

43

The Leaky Bucket Algorithm

(a) A leaky bucket with water. (b) a leaky bucket with packets.
44

Leaky Bucket Algorithm, cont.


The leaky bucket enforces a constant output rate (average
rate) regardless of the burstiness of the input. Does nothing
when input is idle.
The host injects one packet per clock tick onto the network.
This results in a uniform flow of packets, smoothing out
bursts and reducing congestion.
When packets are the same size (as in ATM cells), the one
packet per tick is okay. For variable length packets though, it
is better to allow a fixed number of bytes per tick. E.g. 1024
bytes per tick will allow one 1024-byte packet or two 512byte packets or four 256-byte packets on 1 tick.

45

Token Bucket Algorithm


In contrast to the LB, the Token Bucket Algorithm, allows
the output rate to vary, depending on the size of the burst.
In the TB algorithm, the bucket holds tokens. To transmit
a packet, the host must capture and destroy one token.
Tokens are generated by a clock at the rate of one token
every t sec.
Idle hosts can capture and save up tokens (up to the max.
size of the bucket) in order to send larger bursts later.

46

The Token Bucket Algorithm

5-34

(a) Before.

(b) After.
47

Leaky Bucket vs Token Bucket


LB discards packets; TB does not. TB discards tokens.
With TB, a packet can only be transmitted if there are
enough tokens to cover its length in bytes.
LB sends packets at an average rate. TB allows for large
bursts to be sent faster by speeding up the output.
TB allows saving up tokens (permissions) to send large
bursts. LB does not allow saving.

48

DEAD LOCK
A process requests resources; if the resources are not available at that
time, the process enters a wait state. It may happen that waiting
processes will never again change state, because the resources they
have requested are held by other waiting processes. This situation is
called deadlock.

DEADLOCK CHARACTERIZATION
A deadlock situation can arise if the following four conditions
hold simultaneously in a system:
1. Mutual exclusion: At least one resource must be held in a nonsharable mode; that is, only one process at a time can use the resource.
If another process requests that resource, the requesting process must
be delayed until the resource has been released.
2. Hold and wait : There must exist a process that is holding at least
one resource and is waiting to acquire additional resources that are
currently being held by other processes.
3. No preemption : Resources cannot be preempted; that is, a
resource can be released only voluntarily by the process holding it,
after that process, has completed its task.
4. Circular wait: There must exist a set {P0, P1, ..., Pn } of waiting
processes such that P0 is waiting for a resource that is held by P1, P1
is waiting for a resource that is held by P2, ., Pn-1 is waiting for a
resource that is held by Pn, and Pn is waiting for a resource that is held
by P0.

You might also like