Distributed Scheduling (Chapter 11)

advertisement

Distributed Scheduling
1
 Motivation
 System performance can potentially be improved by appropriately
transferring the load from heavily loaded computers to idle or lightly
loaded computers.
 Load
 Resource (CPU) queue lengths are good indicators of load because
they correlate well with the task response time.
 Measuring queue length is very straight forward and requires minimal
processing.
 Simply using CURRENT queue length as a load indicator can result in a node
accepting tasks while other tasks it accepted earlier are still in transit.
 CPU utilization another indicator of load.
 Involves background task that can require more processing.
2
 Load distribution algorithms
 Static
 Dynamic
 Load balancing
 Load sharing
 Preemptive and non-preemptive transfers.
3
 Static process scheduling
 Except for some very special cases, scheduling to optimize tasks span
are NP-complete
 Algorithms attempt to approximate to obtain near optimal solution to
the problem
4
 Dynamic load sharing and load balancing
 The assumption of prior knowledge of processes is not realistic for
most distributed applications
 Without knowledge of computational requirements we must rely on a
decentralized dynamic process assignment
 Performance goals are:
 Maximum utilization of system
 Fairness to processes
 Improved throughput and computation time (or meeting real-time deadline)
 Load balancing is a stronger requirement than load sharing
 It achieves close to equal workload for each processor
 It has the effect of reducing the average turnaround time of the processes
5
Real-time scheduling
 Operating system must ensure that certain actions are taken within
some specified time
 Hard real-time
 System is correct if every single task is guaranteed to meet its deadline
 Soft real-time
 System is working if not too many deadlines are missed
 The goal of real-time scheduling is to find a feasible schedule to meet
all deadlines
6
 Rate monotonic scheduling
 Simplest type of real-time scheduling
 Very popular and effective
 Assumptions:
 Tasks are periodic
 No communication is needed between tasks
 Task priorities are static
 Tasks with short periods have less time to complete before their
deadline than tasks with longer deadlines
 High priority is assigned to tasks with small periods than tasks with
large periods
 Can achieve 69% CPU utilization given enough unique priority levels
7
 Load distributing algorithms
 Transfer policy
 Use of a threshold.
8
 Selection policy
 Selects a task for transfer.
 The overhead incurred in the transfer of the task should be compensated for
by the reduction in the response time.
 Tasks that will take longer to execute are better able to absorb the task
transfer overhead.
 A small size task carries less overhead and is therefore less expensive to
transfer.
 Location-dependent calls should be minimal.
 Another approach is to transfer a task only if its response time will be
improved upon transfer.
 An approach is to only select newly arrived tasks for transfer.
9
 Location policy
 To find a suitable node to share load.
 Polling.
- Use of threshold.
 Broadcast a query.
 Random
- Uses no state information.
- Can transfer to a heavily loaded CPU.
- Can limit the number of times a task can be transferred.
- Possible instability.
10
 Information policy
 When, where and how information is to be collected.
 Demand-driven.
 Sender initiated.
 Receiver initiated.
 symmetrically initiated.
 Periodic.
 State-change-driven.
11
 Sender-initiated algorithms
 Load distributing activity initiated by an overloaded node attempting to send a
task to an under-loaded node.
 Could cause system instability.
 Receiver-initiated algorithms
 Load distributing activity initiated by an under-loaded node attempting to obtain
a task from an overloaded node.
 Can not cause system instability.
 Most transfers are preemptive.
 Symmetrically initiated algorithms
 At low system loads, sender-initiated component is more successful in finding
under-loaded nodes.
 At high system loads, the receiver-initiated component is more successful in
finding overloaded nodes.
12
 Adaptive, symmetrically initiated algorithm
 Utilizes the information gathered during polling to classify the nodes in the
system as either sender/overloaded, receiver/under-loaded, or OK.
 Sender-initiation deactivated at high system loads.
 Uses sender-initiated load sharing at low system loads, receiver-initiated load
sharing at high loads, and symmetrically initiated load sharing at moderate
loads, the stable symmetrically initiated algorithm achieves improved
performance over a wide range of system loads while preserving system
stability.
13
 Performance of load sharing algorithms
 Average response time of tasks vs. system load
 Assuming homogenous system load – all nodes have the same long-term
task arrival rate
 Even a very elementary load distribution scheme provides substantial
performance improvement over a system that does not use load
distribution.
 Elementary load distribution algorithm such as the sender-initiated algorithm
using random location policy
 COM + does not provide any load-balancing, J2EE and CORBA provide it
through third party tools from IBM, BAE, etc.
14
 Comparison: Receiver-initiated load sharing vs. Sender-initiated
 At light to moderate system loads:
 Sender-initiated algorithm performs marginally better
 At high system loads:
 Receiver-initiated algorithm performs substantially better
 Receiver-initiated algorithm maintains system stability
 It’s polls generally find busy nodes, while sender-initiated polls waste
resources and are ineffective
15
 Comparison: Symmetrically initiated load sharing
 Takes advantage of the sender-initiated load sharing at low system loads
 Receiver-initiated load sharing at high system loads
 And both policies at moderate loads
 Performance
 Matches or is better than the sender-initiated policy
 Better than the receiver-initiated policy at low to moderate loads
 Still suffers from instability at high system loads
- Due to the ineffective polling of the sender-initiated component of the algorithm
16
 Comparison: Stable symmetrically initiated load sharing
 Approaches the optimal load-sharing
 Performance due to knowledge of the system due to polling
 However requires expensive preemptive task transfers
Selection of a suitable load sharing algorithm
17
Task Migration
 Receiver-initiated transfers require preemptive task transfers
 Preemptive task transfers must not disrupt service to users
 Task placement vs. task migration
 Task migration must save and transfer:
 Task state
 Register
 Stack
 Virtual memory address space
 Files and file/device descriptors
 Buffered messages
 Location transparency required
18
19
Download