You are on page 1of 6

Syllabus  

Blank Homework  
Notes   Labs   Scores   Blank

Lecture Notes
Dr. Tong Lai Yu, March 2010

0. Review and Overview 7. Distributed OS Theories


1. B-Trees 8. Distributed Mutual Exclusions
2. An Introduction to Distributed Systems 9. Agreement Protocols
3. Deadlocks 10. Distributed Scheduling
    
4. Distributed Systems Architecture 11. Distributed Resource Management
5. Processes 12. Recovery and Fault Tolerance
6. Communication 13. Security and Protection
 
Distributed Scheduling
1. Load Balancing

some may be lightly loaded, some moderately loaded, some heavily loaded

Differences between "N-times" faster processor and processor pool of N processors is interesting.
While the arrival rate is N times the individual rate, the service rate is not unless the pool is constantly
maximally busy
but one N-times-faster processor can be much more expensive ( or
non-existent ) than N
slow processor
Let's analyze N isolated systems to see the problem of underutilization in the absence of load balancing --
consider a system of N identical and independent M/M/1 servers:
Probability of at Least One Task waiting,
and At Least One processor Idle

6. Issues in Load Distribution


Load

Resource and CPU queue lengths are good indicators of load.


Artificially increment CPU queue length for transferred jobs on their way.
Set timeouts for such jobs to safeguard against transfer failures.
Little correlation between queue length and CPU utilization for interactive jobs: use utilization instead.
Monitoring CPU utilization is expensive
Modeling -- Poisson Process, Markov process, M/M/1 queue, M/M/N

Classification of Algorithms
Static --
decisions hard-wired into algorithm using prior knowledge of system
Dynamic -- use state information to make decisions.
Adaptive -- special case of dynamic algorithms; dynamically change parameters of the algorithm

Load Sharing vs. Load Balancing

Load Sharing -- reduce the likelihood of unshared state by transferring tasks to lightly loaded nodes
Load Balancing -- try to make each load have approximately same load

Preemptive vs. Nonpreemptive

Preemptive transfers -- transfer of a task that is partially executed,


expensive due to collection of task's state
Nonpreemptive transfers -- only transfer tasks that have not begun execution.

Components of Load Distribution

Transfer policy -- threshold based, determine if a process should be executed remotely or locally
Selection policy -- which task should be picked, overhead in transfer of selected task should be offset by
reduction in its response time
Location policy -- which node to be sent, possibly use polling to find suitable node
Information policy -- when should the information of other nodes
should be collected; demand-driven, or
periodic, or state-change-driven

Demand-driven:
nodes gather information about other nodes
sender initiated
receiver initiated
symmetrically initiated
Periodic :
nodes exchange information periodically
State-change-driven :
nodes disseminate information when their state changes
Stability -- queueing-theoretic, or algorithmic perspective

Sender Initiated Algorithms

overloaded node-- when a new task makes the queue length ≥ threshold T
underloaded node -- if accepting a task still maintains queue lenght < threshold T
overloaded node attempts to send task to underloaded node
only newly arrived tasks considered for transfers
location policies:
random -- no information about other nodes
threshold -- polling to determine if its a receiver ( underloaded )
shortest -- a # of nodes are polled at random to determine their
queue length
information policy: demand-driven
stability: polling increases activites; render the system unstable at high load

Receiver Initiated Algorithms

initiated by underloaded nodes


underloaded node tries to obtain task from overloaded node
initiate search for sender either on a task departure or after a predetermined period
information policy: demand-driven
stability: remain stable at high and low loads
disadvantage: most tasks transfer are preemptive

Symmetrically Initiated Algorithms

senders search for receivers --good in low load situations; but


high polling overhead in high load situations
receivers search for senders --
useful in high load situations,
preemptive task transfer facility is necessary
Stable Symmetrically Initiated Algorithms

use the information gathered during polling to classify


nodes in system as either Sender/overload,
Receiver/underload,
or OK

41. Comparisons

Anything better than no load distribution


Receiver better than sender under high load

RAND -- Sender initiated algorithm with random location policy

SEND -- Sender initiated with threshold policy


Comparing with Symmetrically Initiated Load Sharing

better than sender-initiated


but unstable at high-load

Comparing with Stable Symmetrically Initiated Algorithms

ADSYM ( stable SYM ) very good


Performance under Hetergeneous Workloads

some nodes generate load while others generate nothing


system load = 0.85
nodes shown originate none of the system workload, while the
remaining nodes originate all of the system
workload

RECV very unstable (random probes unlikely to find work)


SEND also unstable, can't get rid of load fast enough
ADSYM very good

You might also like