Open In App

Resource Management in Distributed System

Last Updated : 25 Jul, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

The responsibility of managing the resources in a distributed system lies with the distributed operating system (DOS). It assigns the resources to the various processes when the job is submitted by the user for processing. Every process must be assigned resources according to various factors and algorithms so that no user feels that his requests are facing starvation.

Resource Management in Distributed Systems

A distributed system uses various approaches for resource management. These techniques can be classified as follows:

Task Assignment Approach

In this approach, when a user submits a process, DOS considered it to be a set of tasks and assigns resources to each task to maximize performance of the system. This approach has a drawback that it cannot assign resources to processes dynamically and thus lacks dynamism but at the same time this approach ensures that:

  • I/O cost is reduced to minimum
  • Less turnaround time
  • Enhances Parallelism
  • Effective resource utilization

Load Balancing Approach

As the name suggests, this approach tries to balance the load among the various resources. In this approach all the submitted processes are distributed among various resources of the system. This approach leads to maximum utilization of resources and throughput is maximized. It uses various types of load balancing algorithms as follows:

Load balancing algorithm in distributed system

  • Static and Dynamic: Static algorithms divide the resources among the processes only at the time when they are submitted to the system. It cannot redistribute the resources to the processes dynamically. In case of dynamic algorithms, the redistribution of resources is done among the processes if new process enters the system. This ensures that the resources are utilised in the real time.
  • Deterministic and probabilistic: Deterministic method works by analysing the properties of nodes and the process characteristics for the allocation of resources to the processes whereas probabilistic method uses static information such as network topology, node capacity to allocate the resources. Deterministic approach is expensive to implement but has a better performance than probabilistic approach.
  • Centralized and Distributed: In centralized approach there is a central node that controls the distribution of resources among the other nodes. In this case, other nodes need to regularly update the central node about the status and other nodes need to replicate the information at their end also so that they can use it. This approach suffers from reliability issues. Replication also leads to increases costs of communication. In distributed approach the whole process is divided among various nodes and they are free to process it according to their own algorithms. Finally the result from all the nodes is combined to produce the final result.
  • Cooperative and Non-cooperative: Cooperative approach works through cooperation between various nodes whereas in non-cooperative approach, nodes can act autonomously irrespective of the influence of the other nodes. Cooperative approach generally leads to high stability at high overhead cost.

Load Sharing Approach

This approach makes use of a router to distribute the load to different servers by acting as a reverse proxy. Various algorithms such as Round Robin, Least Time, Least Connections, etc. are used to distribute the load to different servers. It ensures that the system is utilised to its maximum and no node is idle. It uses various steps to allocate the node to a process. These steps are:

  • First of all it is checked if a node is idle or not.
  • The system may then decide if the work is to be transferred to the nodes that are idle to the nodes that are about to finish processing.
  • Further the choice of node is also dependent upon either the sender or receiver. If sender choses the node for allocation then it is sender initiated but if the receiving node choses where to process the task, then it is called receiver initiated.
  • A node is responsible to communicate its stage whenever it changes. It can be done either by polling or broadcasting.

Desirable Features For Load Balancing Algorithm

There are various factors that should be considered while designing a load balancing algorithm. These are:

  • A good algorithm should work without any prior knowledge of the resource demand of a process which will prevent the communication overheads by the user.
  • It should be able to handle the load dynamically as in real time the processes are always coming to the system. A static approach may not prove useful in real time scenarios.
  • The techniques used for allocating the resource to a process should be efficient and fast so that the processes do not suffer from a long waiting time. One of the approach is to use heuristics.
  • It should work with minimum need to communicate with other nodes to know about their states.
  • It must ensure that real work is being done instead of just switching nodes to prevent processor thrashing.
  • The algorithm should have high reliability and be able to manage the work even if one of the nodes crash or fails.
  • It must ensure that all users’ work is done simultaneously and no user is made to wait for his task to be completed so that process starvation can be prevented.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads