Dynamic Job Scheduling Strategy Using Jobs Characteristics in Cloud Computing

A crucial performance concern in distributed decentralized environments, like clouds, is how to guarantee that jobs complete their execution within the estimated completion times using the available resources’ bandwidth fairly and efficiently while considering the resource performance variations. Formerly, several models including reservation, migration, and replication heuristics have been implemented to solve this concern under a variety of scheduling techniques; however, they have some undetermined obstacles. This paper proposes a dynamic job scheduling model (DTSCA) that uses job characteristics to map them to resources with minimum execution time taking into account utilizing the available resources bandwidth fairly to satisfy the cloud users quality of service (QoS) requirements and utilize the providers’ resources efficiently. The scheduling algorithm makes use of job characteristics (length, expected execution time, expected bandwidth) with regards to available symmetrical and non-symmetrical resources characteristics (CPU, memory, and available bandwidth). This scheduling strategy is based on generating an expectation value for each job that is proportional to how these job’s characteristics are related to all other jobs in total. That should make their virtual machine choice closer to their expectation, thus fairer. It also builds a feedback method which deals with reallocation of failed jobs that do not meet the mapping criteria.


Introduction
Recently, cloud computing has turned out to be one of the most capable distributed computing models [1,2]. A job scheduling scheme is one of the essential and challenging concerns in a cloud computing structure [3]. Clouds are on-demand computing platforms where usually there are a big number of "centralized" resources, for instance, storage and processors devices. The key advantages of cloud computing systems over other distributed computing systems, mainly grids, are scalability, reliability, flexibility and sustainability [4]. Alternatively, a set of cloud resources is employed by the users (i.e., dedicated and provided to a user) when required in a resource-as-a-service manner. A main method that facilitates the recognition of clouds is virtualization. This technology helps the vendors of cloud services to supply virtually any kind of computing scheme, eliminating the complexity and burden of sustaining varied sets of both software and hardware mechanisms to assemble users' requirements. Broadly implemented virtualization technologies incorporate Xen [5], VirtualBox [6], and VMWare Server [7]. Contrasting of most grids, clouds are possessed by commercial IT service vendors (e.g., GoGrid, Amazon, and Google) and controlled by a pay-per-use or subscription-based dealing structure. For instance, Amazon's Elastic Compute Cloud (EC2) rents its computers in its cloud to users on an hourly basis [8]. In cloud computing, conventional job scheduling methods merely consider how to increase the efficiency of job scheduling or how to guarantee the required QoS for the users; they hardly ever offer a scheme that reflects on mixing both of these two features simultaneously. Quite a few job scheduling techniques have been implemented at this point as indications in cloud computing areas [9][10][11][12][13][14][15][16].
The majority of them could be categorized in the environment of clouds by highlighting efficiency [10,[12][13][14][15][16][17]. Parts of them contemplate on the fairness between users heavily in a way that would affect the efficiency [9,12]. Cloud resources, or partly those allocated to a specific user, are regularly homogeneous, reliable, and tightly coupled. Additionally, the characteristics, the number of resources, and the types to be reserved can be assorted to the requests of users. These features appoint the resources of clouds as an excellent environment that is suitable for uncertainty-handling systems. On the other hand, because of financial costs coupled with the exploit of cloud resources, some of these systems are not completely convenient.
Particularly, advanced reservation is not proper to transact with performance variations revealed from cloud resources. Migration could be a superior option, except it is not simply incorporated into heterogeneous computing environments like clouds, and it heads for engaging in time consuming and complex processes like check-pointing. Replication is an unfeasible alternative as it tends to use resources redundantly for its breaded replicas. This leads us to focus on reallocation as an acceptable secondary support technique for scheduling mechanisms in a cloud computing environment. Dynamic scheduling algorithms are constantly referred to as making one of the best current choices in problem solving, which can be described as it generates the optimal solution but locally. A dynamic algorithm cannot only be the overall optimal solution for all problems, but for a wide range of many of the problems it could produce an optimal solution or a near-optimal one. In this paper, we propose a dynamic algorithm in a cloud environment. This algorithm contains three stages; the stage of classification based on QoS, as shown in Figure 1. We classify jobs in the first stage into two classes of jobs; the completion time jobs (CT) and the bandwidth jobs(BW). Then, we assign a general expectation value for each job based on their characteristics related to all other jobs in the same class (e.g., job length, job expected execution time, jobs expected bandwidth). For resources, different parameters are also considered, such as CPU, memory, available bandwidth. Then, the priority value is assigned to each job at each type and jobs will be mapped to a specific resource using the scheduling strategy. After that, the fairness justice evaluation will be calculated by a function we call Justice Evaluation Function "JEF" [9,12,17], hence we can get the final results about fairness. Finally, we add a simple method to deal with the jobs that do not meet the mapping criteria, which in this case, will adjust the job's general expectation value according to that jobs characteristics and available resources characteristics to prepare it for reallocation stage. A substance enhancement in bandwidth and CPU utilization is realized. The experimental results demonstrate a substantial decrease in the jobs' completion time within an increase in users' satisfaction.

Related Work
Job scheduling in the cloud and grid has a tremendous narration in research. A bunch of algorithms, techniques and strategies have been proposed for this, which include the Berger model [9], Bags-of-Tasks [10], Optimal Workflow Scheduling [17], Multi-QoS Cost-Based Scheduling [11], Utility-Based Scheduling [15], Priority Scheduling [12,13]. Another priority scheduling algorithm has been proposed in [14], and it employs a job scheduling algorithm according to the quality of service (QoS) parameters, for example average execution, load balancing, and makespan. Initially, depending on the QoS, they compute the priorities of the jobs, and then jobs with higher priority are mapped first on the Vm. However, there is no feedback strategy to adjust the expectation vector of the Jobs; besides, it consumes a lot of time to search for multiple values of multiple matrices that represent different properties of the jobs.
The work in [9] demonstrates a job scheduling strategy founded on the Berger model of the social theories of distributive justice. This framework creates a "job scheduling strategy that employees dual fairness constraints. It gives the jobs an expected state and compares it with an actual state". The simulation result illustrates a positive enhancement on users' fairness to a considerable degree with a deficiency in efficiency. This scheduler uses this algorithm to establish dual fairness constraints. The first one is classifying users based on QoS preferences, then using the general expectation function with job classification to restrain the resources fairness in the process of selection. The second one is to define a function for resource fairness justice to judge the resource fairness allocation.
The algorithm in [10] proposes a scheduling technique that deals with various applications sorted as a group of identical and independent jobs on a heterogeneous master-client policy. The goal is to reduce the maximum gap between the actual time an application has exploited in the system and the time this application would have exploited if performed singlehandedly. An Optimal Workflow based Scheduling (OWS) method [17] was implemented to get a resolution that satisfies the user-preferred parameters of Quality of Service (QoS). This work concentrates on scheduling several types of workflows in clouds. Exploiting this manner substantially enhanced the utilization of the CPU resources. Different methods have been adopted in [18] to handle the jobs and processes for the same or different systems. Those processes or jobs are running simultaneously in the web application/server. A new scheduling strategy called Multiple QoS Constrained Scheduling Strategy of Multi-Workflows (MQMW) has been introduced in [19]. The QoS is taken into account in this scheduling strategy when many workflows are scheduled. In [20], a job scheduling system based on an M/G/1 queuing model was presented after analyzing the QoS requirements of resources and users' jobs in cloud computing systems to effectively use those resources.
From the user viewpoint and to meet user requirements on time and with low cost, another job scheduling based on QoS has been proposed in [21], where two factors have been considered; completion time and cost. However, this scheduling system does not take the cost of the queue of waiting jobs into account. Different scheduling policies such as delay or FIFO scheduling in the fair scheduler have been used in [22], where the problems of job scheduling have been discussed due its importance in the cloud computing. Unlike the traditional job scheduling, the work in [23] has been presented by a job scheduler to schedule job groups. The proposed scheduler is based on job cost and computation performance since each job differs from the other in cloud resources. The work in [24] presented a job scheduler that is used by the Independent Software Vendors (ISV) for software distribution in cloud computing. A smart scheduler based on Quality of Service (QoS) was implemented in [25]. This scheduler uses a backfill strategy based lightweight Virtual Machine Scheduler to dispatch jobs, and better performance and optimal resource utilization were the goals of this work.
To get an overview and basic concepts of cloud computing and as a good foundation for understanding this technology, the reader can refer to [26,27]. The services of cloud computing [28] that are provided to remote users who have different requirements have been described; in addition, they present a scheduling approach that showed which workloads consist of workflows or queries. On the other hand, several studies have focused on particle swarm workflows scheduling and optimization [29,30]. Different parallel job scheduling strategies have been proposed in [31,32] to optimize the mapping between jobs and resources. Those methods report different strategies used in these fields. The Backfilling Strategy [33] is an extension of FCFS, which provides a fair resource allocation. This strategy solves the problems of waiting time and starvation by using two algorithms, conservative backfilling and an Extensible Argonne Scheduling System (EASY) but it does not consider priority in scheduling the same as conservative backfilling, and it has less fairness. Backfilling performance is like cutting, sometimes called "queue jumping", which violates the term of social justice [34,35].
A greedy scheduling algorithm is proposed in [36] to enhance the work in the Berger model and the result showed a better fairness via reducing the job execution time. For the sake of scheduling jobs based on their priority, the authors in [37] have proposed a workflow scheduling strategy. The scheduler calculates the jobs priority when the scheduling begins and ends. To define fairness, the authors in [34] present two metrics; the first one is fair start time, which is the early start time, and the second one is fair share of resources, which means what fair share is, is the main concern in this work. The justice evaluation function can be used to estimate the fairness [9].
Recently, the authors in [38] proposed a new job scheduling method. The cellular automata technique has been employed to carry out the scheduling mechanism. This method considers the cost of jobs and the hardness factor, it aims to increase the profitability of the service providers of the cloud, where more jobs are executed in the specified deadline.
In addition, the authors in [39] have presented a cloud job scheduling using the concept of fuzzy logic to attain the fairness of the resource allocation consistent with the quality of service. The projected tactic solves two categories of issues, the first issue is how to choose the best Vms to bind the job, whereas, the second issue employs a static justification of the job using assumption values. This procedure displays an improved mathematical connotation among the parameters to adjust the expectation vector of the sorted jobs. However, using such assumptions statically and not considering the jobs characteristics might affect the jobs mapping to Vms, hence affecting the fairness Judgment.
The proposed DTSCA algorithm uses dynamic calculation as the initial values of users' jobs expectation vector to realize the user's satisfaction. In addition, it sorts and classifies both users' jobs and available Vms according to users' jobs types and appropriate Vms. Furthermore, it adds a dynamic feedback and reallocation methods that adjust the expectation jobs vector dynamically and make sure all jobs are mapped to the most preferred Vm.

Job Classification
Assigning a general expectation vector for a type of job is used in the Berger model and proved to be inefficient. In this work, each job has a general expectation value based on their characteristics related to all other jobs, which are all collected in a general expectation values list (JEV). The proposed scheduling algorithm primarily contains three stages and includes the stage of classification based on QoS as shown in Figure 1. We classify jobs in the first stages into two classes of jobs; the completion time jobs (CT) and the bandwidth jobs (BW). We then assign a general expectation value for each job based on their characteristics related to all other jobs in the same class, for example, job length, job expected execution time and jobs expected bandwidth. Also, for resources, different parameters are considered, such as CPU, memory and available bandwidth. Each job will then be mapped to a specific resource using the scheduling strategy.
Justice evaluation will be calculated by a function we call Justice Evaluation Function (JEF) [9], hence we can get the final results about fairness. Finally, we add a simple method to deal with the jobs that do not meet the mapping criteria, which in this case will prepare that job according to their characteristics and available resources characteristics to prepare it for reallocation stage. A fixed amount and types of execution times have been assumed by researches for each job, but in the real world of cloud computing it is not the case. When jobs are submitted by the users in the job classification part, it will dynamically compute the attributes of each job and QoS properties, then it calculates the initial expectation vector for each job in each class of the jobs types, and after that it places these values in the job attributes vector, which includes the following: • Class-Type: the job class type can be either time type or bandwidth type.  Afterward, the jobs-classifier categorizes the job based on attributes and initial values of QoS (completion time and bandwidth). Then, it assigns a priority value for each available virtual machine Vm. Finally, it sends jobs to different scheduler sections, which will then send these jobs to the most appropriate available resource for execution (virtual machines).

Jobs and Resources Description
In the cloud computing, virtualization is exploited to allocate host resources to the layer of virtual machines. Scheduling is to map jobs to resources using assured optimization rules. Suppose the attributes of the resource set of virtual machines Vm i is: where A i1 , A i2 , A i3 represents CPU, memory and bandwidth, respectively. The vector of performance of Vm i is: where ET i is the related performance value of attributes ET i of Vm i . In order to establish fair resources selection, the jobs general expectation function is established. This function uses a variety of specifications of users QoS jobs and adjusts the ratio of performance of the selected virtual machines accordingly. This expectation function can be represented as: and ∑ e rj = 1 (4)

Generation of Expectation Initialization and Priority
In this phase, we develop a method that generates an expectation value for each job at each job type (time-type jobs and bandwidth-type jobs), which is proportional to how a job's characteristics are related to other jobs in total; this method is called "Atomization", according to the following formula: where J A represents the job length in MIPS for time-type jobs and job-required bandwidth for the bandwidth-type jobs. For example, job 4 in Table 1 would have an expected bandwidth value of 0.2439 as 0.2439 = 2000/(2000 + 3000 + 1200 + 2000). Priority then will be assigned to each job of each type according to the atomization process and jobs of each type will be sorted in an ascending manner.

Scheduling Algorithm
After the jobs are classified into their corresponding types, the priority lists of each type of them are created, the initial expectation value of each job in each type has been generated using the atomization method, and the available resources are collected and sorted in a descending manner in a virtual machines list Vm i List, and the jobs mapping to resources start by selecting a virtual machine from Vm i according to the priority assigned to the job using the general expectation value initialization. In this work, the resource selection process employs the general expectations to achieve the fairness constraints using the justice evaluation function (JEF) as follows: where denotes the constant. 0 < θ < 1, AR (Actual Resource) is the sum of resources that job J i attains after mapping. ER (Expected Resource) is the sum of resources that job J i expected to acquire. When AR equals ER; JEF = 0, thus the fairness is achieved. Each job J i can be mapped to any V m in the available Vm i list as long as its execution requirements do not exceed the number of available Vm i . Then, normalization collects the virtual machines performance parameters into a list called p[i] to [0,1], in order to carry on the comparison with the vector of general expectations called e r [i]. Assuming that M = M 1 ,.., M j , j = 1, 2, 3 is the corresponding set of performance parameters for Vm i . The normalized value is calculated as follows: where pCur is the performance parameters of the current value, pMin is the performance parameters minimum value and pMax is the performance parameters maximum value. After that, the resulted performance parameters list NP ij of Vm i can be used to match the expectations function of job e r (Equation (4)).
Then, the similarity between the general expectation function e r [i] and the actual allocation vector of normalized Vm i parameters NP ij is used to restrain the convergence to produce the maximum similarity of both vectors. The similarity between the initial general expectation vector and the performance vector can be calculated via the following formula: Compute the similarity by equation Finally, the jobs are mapped to the appropriate virtual machine in an iterative manner until all job mapping is completed. If one of these jobs invalidate the previous constraints the initial general expectation value will be adjusted as in Equation (5) and the job will be mapped again. In the last round, the algorithm will check whether all jobs are mapped or not, if not, the reallocation method is invoked. A description of the model including the job scheduling algorithm and the reallocation method can be found in Algorithms 1 and 2, respectively.

Simulation and Results
We extended the CloudSim platform simulator [1] to implement the DTSCA Algorithm. Here, after jobs classification, and according to the job's general expectation vector initialization and priority assignment, the priority and the initial value of the general expectation vector of each job is generated and assigned dynamically using the atomization phase of the DTSCA algorithm, which will generate more sufficient initial values that are better related to user job's characteristics and cloud available resources properties-unlike the Berger model and fuzzy logic algorithms that applied the assumption concept and used an astatic initial value of general expectation vector and generated job's priorities according to them.
Moreover, the available resources were sorted and classified according to their characteristics (CPU, memory and bandwidth) in order to make the jobs binding to them faster and more efferent for both time-jobs-type and bandwidth-type jobs. Furthermore, the reallocation method in DTSCA is combined with the scheduling algorithm to guarantee that all jobs are mapped successfully to the resources in a manner that satisfies both job type restrictions and available resource specifications, which led to better resource utilization and better users' satisfaction.
The description of jobs' parameters are listed in Section 3.1 and the values are illustrated in Table 1. In addition, the resources (virtual machines) parameters used in this experiment are listed in Table 2. The simulation results are depicted in Figures 2-5. To validate the proposed DTSCA algorithm, its results are compared with the other two scheduling algorithms, which are named the job scheduling algorithm based on the Berger model [9] and the fuzzy logic algorithm [39] using the CloudSim simulator.  Figure 2 shows that the job execution time in the DTSCA algorithm is better than both other algorithms (the Berger model algorithm and fuzzy logic algorithm). Generally, the efficiency of the jobs execution of the DTSCA algorithm is better than the efficiency in both other algorithms since it reduced the jobs required execution time. The completion time of the DTSCA algorithm is better than the completion time in both algorithms.  Figure 3 shows the justice values resulted from the comparative experiments. In terms of meeting user expectations, DTSCA is more efficient compared to other algorithms since the user satisfaction is better when the J value approaches zero (total fairness achieved when the J value of the job = 0).     Figure 5 shows the comparison between the allocated virtual machines bandwidth for the second type of job (Bandwidth-Type-Jobs). DTSCA enables jobs 5-8 to consume almost the same expected amount of BW, which indicates a better fairness since bandwidth for each job equals the expected bandwidth for each one of them with a slight difference for job 7.

Conclusions and Future Work
In this work, a dynamic job scheduling algorithm using users' jobs characteristics is developed to deal with jobs mapping to the most appropriate available resources in a manner that meets users QoS expectations and at the same time achieves resource utilization through scheduling and reallocation methods. The dynamic job scheduling algorithm DTSCA has been implemented and validated by extending the CloudSim simulator and compared the results of the simulation with the job scheduling algorithm based on the Berger model and fuzzy logic-based job scheduling algorithm. In addition, the proposed DTSCA algorithm has been proved as an effective strategy that achieved better completion time, better resource utilization, and better user satisfaction. Moreover, DTSCA achieved better performance in terms of fairness for the whole system in the cloud computing environment. Furthermore, as future work, a non-linear probability mapping strategy between jobs' QoS requirements and resource characteristics will be considered to obtain an optimized and fairer scheduling model. Another future work direction is improving the proposed algorithm to be applicable to the Internet of Things (IoT) technology.