0% found this document useful (0 votes)
24 views

Scheduling and Load Balancing

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Scheduling and Load Balancing

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Scheduling and Load Balancing

1. Scheduling in Distributed Systems:

Scheduling:

Scheduling in parallel and distributed systems refers to the process of allocating resources
(processors, memory, network bandwidth) to tasks in order to optimize the execution time
of parallel programs.

It plays a crucial role in achieving high performance and efficiency in these systems, as it
ensures that tasks are assigned to the most suitable resources and that they are executed in
an efficient and timely manner.

Techniques used for scheduling the processes:

The techniques that are used for scheduling the processes in distributed systems are as
follows:

• Task Assignment Approach: In the Task Assignment Approach, the user-submitted


process is composed of multiple related tasks which are scheduled to appropriate
nodes in a system to improve the performance of a system as a whole.
• Load Balancing Approach: In the Load Balancing Approach, as the name implies, the
workload is balanced among the nodes of the system.
• Load Sharing Approach: In the Load Sharing Approach, it is assured that no node
would be idle while processes are waiting for their processing.

Characteristics of a Good Scheduling Algorithm:

• The scheduling algorithms that require prior knowledge about the properties and
resource requirements of a process submitted by a user put a burden on the user.
Hence, a good scheduling algorithm does not require prior specification regarding the
usersubmitted process.
• A good scheduling algorithm must exhibit the dynamic scheduling of processes as the
initial allocation of the process to a system might need to be changed with time to
balance the load of the system.
• The algorithm must be flexible enough to process migration decisions when there is
a change in the system load.
• The algorithm must possess stability so that processors can be utilized optimally. It is
possible only when thrashing overhead gets minimized and there should no wastage
of time in process migration.
• An algorithm with quick decision making is preferable such as heuristic methods that
take less time due to less computational work give near-optimal results in comparison
to an exhaustive search that provides an optimal solution but takes more time.
• A good scheduling algorithm gives balanced system performance by maintaining
minimum global state information as global state information (CPU load) is directly
proportional to overhead. So, with the increase in global state information overhead
also increases.
2. Load Balancing in Distributed Systems:
• The Load Balancing approach refers to the division of load among the processing
elements of a distributed system.
• The excess load of one processing element is distributed to other processing elements
that have less load according to the defined limits.
• The load is maintained at each processing element in such a manner that neither it
gets overloaded nor idle during the execution of a program to maximize the system
throughput which is the ultimate goal of distributed systems.
• This approach makes all processing elements equally busy thus speeding up the entire
task leads to the completion of the task by all processors approximately at the same
time.

Types of Load Balancing Algorithms:

i. Static Load Balancing Algorithm:


In the Static Load Balancing Algorithm, while distributing load the current state of the system
is not taken into account. These algorithms are simpler in comparison to dynamic load
balancing algorithms. Types of Static Load Balancing Algorithms are as follows:

• Deterministic: In Deterministic Algorithms, the properties of nodes and processes are


taken into account for the allocation of processes to nodes. Because of the
deterministic characteristic of the algorithm, it is difficult to optimize to give better
results and also costs more to implement.
• Probabilistic: In Probabilistic Algorithms, Statistical attributes of the system are taken
into account such as several nodes, topology, etc. to make process placement rules. It
does not give better performance.
ii. Dynamic Load Balancing Algorithm:

Dynamic Load Balancing Algorithm takes into account the current load of each node or
computing unit in the system, allowing for faster processing by dynamically redistributing
workloads away from overloaded nodes and toward under loaded nodes.

Dynamic algorithms are significantly more difficult to design, but they can give superior
results, especially when execution durations for distinct jobs vary greatly.

Furthermore, because dedicated nodes for task distribution are not required, a dynamic load
balancing architecture is frequently more modular.

Types of Dynamic Load Balancing Algorithms are as follows:

• Centralized: In Centralized Load Balancing Algorithms, the task of handling requests


for process scheduling is carried out by a centralized server node. The benefit of this
approach is efficiency as all the information is held at a single node but it suffers from
the reliability problem because of the lower fault tolerance. Moreover, there is
another problem with the increasing number of requests.
• Distributed: In Distributed Load Balancing Algorithms, the decision task of assigning
processes is distributed physically to the individual nodes of the system. Unlike
Centralized Load Balancing Algorithms, there is no need to hold state information.
Hence, speed is fast
Types of Distributed Load Balancing Algorithms:

• Cooperative: In Cooperative Load Balancing Algorithms, as the name implies,


scheduling decisions are taken with the cooperation of entities in the system. The
benefit lies in the stability of this approach. The drawback is the complexity involved
which leads to more overhead than Non-cooperative algorithms.
• Non-cooperative: In Non-cooperative Load Balancing Algorithms, scheduling
decisions are taken by the individual entities of the system as they act as autonomous
entities. The benefit is that minor overheads are involved due to the basic nature of
non-cooperation. The drawback is that these algorithms might be less stable than
Cooperative algorithms.

Issues in Designing Load-balancing Algorithms:

Many issues need to be taken into account while designing Load-balancing Algorithms:

• Load Estimation Policies: Determination of a load of a node in a distributed system.


• Process Transfer Policies: Decides for the execution of process: local or remote.
• State Information Exchange: Determination of strategy for exchanging system load
information among the nodes in a distributed system.
• Location Policy: Determining the selection of destination nodes for the migration of
the process.
• Priority Assignment: Determines whether the priority is given to a local or a remote
process on a node for execution.
• Migration limit policy: Determines the limit value for the migration of processes.

You might also like