Load Balancing
Load balancing is an art or a way of distributing load units (jobs or tasks) across a set of processors that are connected to a network and may be distributed across the globe. Depending on the threshold value or hold the excess load from a process is migrated to other processors. The term threshold load is defined as the amount of load to a processor so that any load may not come further to that processors.
In every system, there is always a possibility that some nodes are heavily loaded while some are having fewer loads. In such a case, processors in a system can be identified according to their present load. Based on this, they are termed as heavily loaded processors where enough jobs are waiting for execution, lightly loaded processors where fewer jobs are waiting and idle processors which have no job to execute. The basic aim is to make every processor equally busy and to finish the works approximately at the same time.
In the load balancing operation, we have three rules: location rule, distribution rule and selection rule. The selection rule will work either in pre-emptive or in a non-pre-emptive way. The newly generated process is always picked up the non pre-emptive rule while the running process may be picked by the pre-emptive rule.
Benefits of Load Balancing:
In every system, there is always a possibility that some nodes are heavily loaded while some are having fewer loads. In such a case, processors in a system can be identified according to their present load. Based on this, they are termed as heavily loaded processors where enough jobs are waiting for execution, lightly loaded processors where fewer jobs are waiting and idle processors which have no job to execute. The basic aim is to make every processor equally busy and to finish the works approximately at the same time.
In the load balancing operation, we have three rules: location rule, distribution rule and selection rule. The selection rule will work either in pre-emptive or in a non-pre-emptive way. The newly generated process is always picked up the non pre-emptive rule while the running process may be picked by the pre-emptive rule.
Benefits of Load Balancing:
- Load balancing improves the performance of each node and hence the overall system performance.
- It reduces the job idle time.
- Here, small jobs do not suffer from long starvation.
- It makes maximum utilization of resources.
- Response time becomes shorter.
- It gives higher throughput.
- It gives higher reliability.
- It has a low cost but high gain.
- It gives extensibility and incremental growth.
The taxonomy for the load balancing is shown below:
1) Static Load Balancing
In static load balancing (SLB) procedure, the process is assigned to the processors at the compile time depending on the performance of the nodes. After the assignment of processes, no change or reassignment is possible at the runtime. The total number of jobs in each node is fixed in SLB algorithm. The information about the node is not collected by a static algorithm. The assignment job is done to the processing noded on the basis of following factors.
- Incoming Time
- The extent of resource needed.
- Mean execution time.
- Inter-process communication
2) Dynamic Load Balancing
In the static load balancing, too much information about the system and jobs must be known before the execution. This particular information may not be available in advance. An in-depth and thorough study of the system state and the job associated is a quite tedious approach. To remove all the above ambiguity dynamic load balancing (DLB) algorithm came into existence.
The assignment of jobs is done at runtime. In DLB, jobs are reassigned at the runtime depending upon the situation i.e, the load will be transferred from heavily loaded noded to lightly loaded nodes. In this case, communication overhead occurs and becomes more when the number of processors increases.