Task Scheduling Algorithms in Cloud Computing: A Review

: Cloud computing is the requirement based on clients and provides many resources that aim to share it as a service through the internet. For optimal use, Cloud computing resources such as storage, application, and other services need managing and scheduling these services. The principal idea behind the scheduling is to minimize loss time, workload, and maximize throughput. So, the scheduling task is essential to achieve accuracy and correctness on task completion. This paper gives an idea about various task scheduling algorithms in the cloud computing environment used by researchers. Finally, many authors applied different parameters like completion time, throughput, and cost to evaluate the system.


Introduction
Cloud computing is a distributed computing system that offers software, CPU, memory, storage, and other computing resources. It provides on-demand services as a pay-per-use service through the internet. Cloud computing is used to construct and operate the cloud computing environments of virtualizing technologies (Anushree B, 2018; Manju Arora, 2020; Rashid et al., 2018). It allows sharing a single application or physical resource among multiple clients, and load balancing can be handled by virtualization (Hanan M. Shukur, 2020; Rashid et al., 2019). The IT Cloud computing model mainly focuses on the ease and speed of assigning IT resources, freeing end-users from IT infrastructure and location problems (Zeebaree et al., 2015). All of this is presented in a pay-as-you-go manner (Gibet Tani Hicham, 2016; Haji, Zeebaree, et al., 2020; M. A. Sadeeq et al., 2018). Cloud environments provide service providers and internet providers. The service provider is responsible for the software, network, and facilities used to create the service. Simultaneously, internet providers are also called customers or consumers of the Cloud (Abdulazeez et al., 2018; C. Thirumalaiselvan, 2017).
Cloud Operating Systems (COS) are commonly used with individual and business customers due to cloud technology's rapid growth (Zebari et al., 2011). The COS is an operating system on the server that deploys application software. Users do not have to install and link the app through a Web browser from the personal computer . The cloud provider is responsible for storing and handling cloud storage data, protecting, upgrading the software, minimizing the costs of using the software, and effectively enhancing user experience (Alam, 2020;Salih et al., 2020; Zhen Du, 2017).
The task scheduling algorithm allocates user tasks to the cloud resources to maximize usage rate, reduce the make span, and balance the cloud infrastructure to avoid activities from being overburdened (Fahd Alhaidari, 2019; Iqbal, 2019; Safwat A. Hamad, 2016; Xiaozhong Geng, 2019). The scheduling could be either static or dynamic. In static planning, the scheduler identifies the specifics of the resources and tasks (S. . While in dynamic scheduling, the details of tasks and resources are undefined from the beginning (Sallow, Sadeeq, et al.). The scheduler makes dynamic scheduling plans to select appropriate resources for user activities (A. M. Senthil Kumar, 2018; Dinkan Patel 2018; Kadda Beghdad Bey, 2019). The significant elements in cloud technology are resource providers, task/service schedules, and clients. Scheduling can be defined as the period a resource is allocated to a request. The responsibility of scheduling algorithms is allocating resources to task requests in the Cloud (Arghavan Keivani 2018; S. R. .
The rest of our paper is structured as follows. Section 2 introduces cloud types and services. Section 3 provides cloud scheduling. Section 4 presents a literature review related to the scheduling algorithm, Comparison and Discussion are provided in Section 5, and the conclusion is in Section 6.

Cloud Types and Services
The Cloud model can be analyzed from an organizational view into different types and can be distinction depend on the extent to which the user's and providers' organizational units are separated from each other (Z. Haji, Ahmad, et al., 2020). Cloud models can be classified as illustrated in Figure 1.

Figure 1: Types of Cloud
Public clouds: enables users to use the Cloud through web browser interfaces. Users need to pay-per-use services or resources (Aaqib Rashid, 2019). The public Cloud is available by some companies like google, amazon Microsoft. Private clouds: this type of Cloud resides inside the organization for its internal use to exclusively support its business operations. More protection is controlled by the private cloud than a public cloud . Many medical offices, banking, and other organizations use private Cloud to store their data on this type of Cloud (Abdulla et al., 2020; Z. S. . Hybrid Cloud: in this type, the services distribute between private and public, where critical applications are stored within the network of the organization, and other services could be stored outside the network of the organization (Christian Baun, 2011; Laffly, 2020; Pradeep Krishnadoss, 2018; Waleed Abd Elkhalik, 2018). Cloud infrastructure offers three distinct service models that meet a number of market criteria. Figure 2 below shows both services:

Figure 2: Cloud Services
Saas provides user friendly applications through a web browser or via specific services based on the cloud. For example, Google Docs, Gmail, and Google Talk are the most popular providers Dino et al., 2020; Laith Abualigah, 2020; Omar M. . PaaS provides different computing services to the user for implementation, execution, testing, and hosting application or program. Different services come under this model: a database for storing data and an operating system to provide the execution environment (M. Sadeeq et al., 2020). Google App Platform and Microsoft Azure Platform are the most common providers. IaaS allows the user, through virtual machines, to access the underlying infrastructure, giving the user more flexibility than PaaS. It helps the user to find out its required infrastructure through the internet (

Cloud Scheduling
The concept of cloud scheduling refers to the technology for mapping jobs to a range of virtual machines or assigning virtual machines to use the resources available to fulfill user requirements (Sallow, Zeebaree, et al.;. The purpose of using scheduling methods in cloud computing is to enhance system throughput and load balancing, reduce costs, increase resource utilization, save energy, and reduce processing time (Hasan et al., 2021). Scheduling manages CPU and memory availability; a good scheduling plan increases resource utilization (D.I. George Amalarethinam, 2017; Nora Almezeini, 2018; Sharif et al., 2020). Scheduling can be classified into jobs and task scheduling. Most of the job scheduling techniques are present in a computing system are appropriate enough to be used in the cloud system (Rashid et al.). The benefit of using job scheduling algorithms is to obtain the best performance and maximum system throughput (Sulaiman et al., 2020). Job scheduling can be classified into the following group of algorithms: Batch Mode Heuristic Scheduling Algorithms (BMHA), Online Mode Heuristic Algorithms, Dependency mode heuristic Algorithm (Pratisha Sarma, 2017).
While the task scheduling techniques are used to find the order in which tasks or activities should be completed. It focuses on mapping the user tasks to the available resources. The backbone for efficient task scheduling is virtualization (Jghef et al., 2020). Nevertheless, its performance could affect the performance of the cloud environment. Beast scheduling methods minimize the total time completion of the task, improve device load balancing, and improve resource usage (Mohammed et al., 2021). Task scheduling can be classified into the following group of scheduling algorithms: static, dynamic, workflow, cloud service, real-time, Heuristic, and opportunistic load balancing (OLB) scheduling algorithms (Amandeep Kaur, 2018; Yanyue Yu, 2019). Users have sent their tasks to the Cloud, and they must allocate them to the processor. It is now a question of how processor tasks are allocated such that the cloud owner earns the least time and maximum benefit (M. M. Sadeeq et al., 2021). The work programming fixes the problem that tasks are assigned to the processor that takes account of the other factor. Figure

Literature Review
In 2016, Zhifeng Zhong, and et al. (Zhifeng Zhong, 2016), introduced a Greedy Particle Swarm Optimization (G&PSO) approach to resolve task scheduling. The findings indicate that the suggested algorithm improved each virtual machine's performance, such as well local and global search abilities, a faster convergence rate, and a more balanced workload. Hence the Greedy Particle Swarm Optimization outperforms the classical PSO in terms of maximize utilization of resources.
In 2016, WANG Bei and Li Jun (WANG Bei, 2016), considered a Multi-Population Genetic Algorithm (MPGA) for load balancing, is applied to solve task problems in the cloud system prevent premature convergence. In this work, several methods depend on which min-min and max-min approaches have been used to initialize the population. Then the metropolis criterion is applied to screen the offspring where the flawed individual could be admitted. Then the population diversity can be preserved, and it is even possible to prevent the optimum local. The obtained results showed that the MPGA could achieve good task scheduling results, such as minimize cost and execution time.
In 2016, Ruonan Lin and Qiang Li (Ruonan Lin, 2016), A pre-allocation Ant Colony Optimization (PACO) method was suggested for task scheduling in the cloud system. This algorithm incorporates the improved Ant Colony Optimization (ACO) algorithm and the template size to individual schedule tasks. The proposed algorithm has good efficiency inside the simulated software. The experiments demonstrate that the PACO Scheduling productivity will enhance the task.
In 2017, Hu Yao et al. (Hu Yao, 2017) described a "three-stage selection method," and the genetic approach of "total-division-total" is put forward to enhance genetic strategy. The obtained results from the CloudSim tool indicate that the enhanced algorithm outperforms a simple genetic algorithm (SGA) in the term task completion time. It is a robust algorithm for cloud computing task scheduling.
In 2017, Ashish Gupta and Ritu Garg (Ashish Gupta, 2017), a meta-heuristic method of the ant colony optimization algorithm was suggested to resolve task scheduling in the cloud system focusing primarily on two targets, i.e., reducing makespan/computation time and optimizing load balancing. The study results indicate that the suggested load balancing ant colony optimization algorithm (LB-ACO) produces better results than the NSGA-II algorithm in the makespan and balancing load.
In 2017, Xing Jia Wei and et al. [41] proposed a Simulated Annealing Multi-Population Genetic Algorithm (SAMPGA) algorithm to resolve the scheduling issue. To prevent the local optimum and enhance the optimum global efficiency, SA is inserted into SAMPGA. Simultaneously, a family evolution method based on the adaptive mechanism in MPGA is suggested to find a suitable solution and enhance convergence speed. The simulated result illustrates that the SAMPGA has a good result for enhancing the task's completion time, cost, and balance load.
In 2017, Jaspnder Kaur and Brahmalen Kaur Sidhu (Sidhu, 2017), a new algorithm for task scheduling using the Flower Pollination Algorithm (TSFPA) was implemented to assign resources the task. The algorithm aims to decrease the task execution time (makespan). The efficiency of the suggested method (TSFPA) was compared with many other approaches such as genetic algorithm (GA), First Come First Serve (FCFS), and Round Robin (RR) scheduling approach, the result of the suggested approaches is better than compared algorithm concerning makespan. presented the parallel genetic algorithm-based approach for scheduling tasks with priorities to use resources effectively and minimize resource waste in cloud systems. This method is carried out by increasing the load balance when selecting good resources for short-term arrival tasks in order to eliminate work failures.
In 2018, Fang Yiqiu and Li Xiaosheng (L. X. Fang Yiqiu, 2018), Introduced a real-time improvement ant colony algorithm for a virtual machine (VM-ACO). In order to finish the task's load balance, the method takes into consideration time. The findings demonstrate that the VM-ACO technique outperforms the ant colony algorithm in terms of resource state and polling, task latency, and time to accomplish the task and load balance.
In 2018, Shuang YIN (Shuang YIN, 2018), A new preparation algorithm was implemented that uses doublefitness algorithm-load balance and cost completion genetic algorithm (LCGA). The schedule ensures a balance of load which reduces the cost of completing the mission. The LCGA algorithm is comparable to the load-balancing genetic algorithm (LGA) and the task-complete cost genetic algorithm (CGA) reveals that a programming algorithm's performance and optimization approach is usable in the simulation experiment.
In 2019, Negar Chitgar and et al. (Negar Chitgar, 2019), a technique for scheduling workload based on the virtual machine grouping in the cloud system was implemented. The suggested approach aims to enhance the cloud environment's performance by decreasing make span and response time and maximizing virtual machines' usage. Using various performance metrics, the proposed algorithm is superior to other existing methods.  , 2019) proposed the algorithm's vocalization for humpback whale optimization (VWOA). The VWOA mimics humpback whales' vocalization behavior, and in a cloud system, it is used to optimize task scheduling. A suggested multi-objective model is the basis of the VWOA scheduler. It reduces completion time, cost, and energy usage and maximizes the use of resources. The experiment results on the test data showed that the VWOA scheduler has better performance in terms of cost, makespan, and the degree of imbalance, resource utilization, and energy consumption than the results of the standard whale optimization algorithm (WOA) and round-robin (RR) algorithm.
In 2020, Yong Shi and et al. (Yong Shi, 2020) proposed a BMin algorithm to enhance the Min-min algorithm's efficiency. A cloudsim simulation program evaluates the proposed algorithm, and the result indicates that the suggested algorithm reduces completion time, maximizes throughput, and enhances the load balance among resources.
In 2020, Sanj M S et al. (Sanaj M S, 2020) suggested an improved Round Robin (ERR) technique to increase efficiency without influencing classical RR functionality. The CloudSim toolkit applies and tests the proposed algorithm. The results indicate the total waiting time for the tasks in a specific number of cloudlets in ERR is minimized under the same conditions compared to classical RR.
In 2020, Vijayalakshmi A. Lepkshi et al. (Vijayalakshmi A. Lepaksh, 2020) proposed an Efficient Resource Allocation with Score (ERAS) for scheduling task in cloud environments, which considers Virtual Machines (VM) temporary operational availability by suggesting different types of delays and EFT to set the processor for scheduling tasks to a standardized score. The results obtained show that the ERAS algorithm's improved reliability provides better efficiency compared to current approaches that only regard EFT for allocations.
In 2020, Zhong Zong et al. (Zong, 2020) Suggest a combination of the methodology of dynamic fusion mission planning, genetic approach and ant-colony system. This limits the energy consumption of cloud computing data and storage facilities. The test results demonstrate that the suggested approach in the task programming would substantially minimize cloud computing device time and energy usage.

Comparison and Discussion
This paper aims to overview various algorithms proposed by researchers in the previous studies for scheduling tasks in cloud computing. There are many challenging schedule issues in cloud computing infrastructure like computation time, load balancing, resource utilization, cost, and QoS. According to their experiments, there are good results for many algorithms compared to another algorithm under the same condition. For example, the author in reference (Zhifeng Zhong, 2016) proposed an algorithm (G&PSO), the obtained results show that it reduces the overall task completion time compared to the practical swarm optimization algorithm. While the author in reference (Ashish Gupta, 2017) suggested (LB-ACO) algorithm to minimize the make span and distribute the load in balance, the proposed algorithm results are better compared to the NSGA-II algorithm. Table 1 summarizes the previous study reviewed in this paper and related to task scheduling in cloud computing.

Execution time, energy
The suggested method reduces the time and total energy consumption of tasks for cloud system computing.

Conclusion
Cloud computing is a huge source, according to the requirement of customers, of computational power, storage, software and a number of other facilities. The key objective of the task in the cloud setting is the distribution of available resources to the task in an appropriate structure. The primary purpose of the programming is to maximize resource use and reduce the time consumption. A number of algorithms have been analyzed in this article. In most algorithms, the comparative analysis has been studied based on different dimensions, processes, conditions, results, and instruments.