Article Preview
Top1. Introduction
Cloud computing is becoming an emerging era that provides significant computational assets via network using the pay-as-you-go model during the last decade. It has reshaped all computing models, such as grid computing, parallel computing, and distributed computing, by providing many services through the internet(Panda et al.,2017). Cloud computing has unique features such as on-demand any time self-service, rapid elasticity, and resource pooling pooling (Mell et al, 2011), which draws many people and businesses to hire cloud offerings to run their applications without knowing much about the underlying infrastructure. They can also build their computing platforms on virtual machines provided by the cloud.
In Cloud computing, infrastructure as a Service (IaaS) plays as the foundation block for Software as Service(SaaS) and Platform as Service(PaaS)(Bhardwaj et al.,2010). Amazon EC2, Digital Ocean, Microsoft Azure is the major IaaS providers. These service providers have different categories of the virtual machine, characterized based on configuration, price model, and QoS, from which clients can select as per their requirements. On the other hand, IaaS provider's context, a clients' request for service is periodic, and it is impossible to predict the type and no of VMs' instance. Therefore, it is challenging for a service provider to satisfy clients' requests with its resources while maintaining promised QoS. A simple solution of this problem is that the service provider must buy resources in advance, but it is not cost-efficient (Brietland et al.,2011). Another way is Cloud Federation (Toosi et al.,2011), in which the service provider can borrow resources from another service provider. In cloud computing, task Scheduling is a crucial activity responsible for the task and suitable resource (Mao et al.,2015). It needs to find optimized results (Ullman.,1975).
Figure 1 represents the cloud computing model for task scheduling. There are five critical elements in this model (Kumar et al.,2019).
- 1)
Task request handler (TRH) - After submitting the user's task request, TRH handles these requests and decides whether to accept or reject them. It forward selected requests to the controller node.
- 2)
Controller node(resource manager)- Resource manager(RM) handles all incoming and outgoing tasks from other units like TRH, scheduler, and resource monitoring unit as shown in figure 1.RM acts like resource broker. It sends all jobs to the task queue for further processing.
- 3)
Mapped matrices- Tasks are analyzed based on priority, deadline, required CPU power and memory, and the number of resources needed. Then they are submitted to mapped matrices (MM), and so based on this information; MM can find suitable resources and satisfy the user's QoS constraints.
- 4)
Scheduler- Task scheduler maps tasks with the best resource among a pool of available resources and optimizes QoS parameters using a scheduling algorithm. In this paper, Salp Swarm Algorithm (SSA) is used for scheduling.
- 5)
Resource monitoring Unit (RMU): RMU monitors all information related to virtual machines (VMs). After a time interval, it monitors the status of VMs, whether they are over-utilized or under-utilized, and transfers tasks from over-utilized VM to under-utilized VM.