# A Cost-Aware Framework for QoS-Based and Energy-Efficient Scheduling in Cloud-Fog Computing
## 4 Background and Related Work  
Cloud computing, as a distributed paradigm, hosts heterogeneous resources pooled in data centers to serve the demands of applications and IoT jobs [1; 34; 35]. Such demands present challenges to the cloud computing environment in meeting the QoS obligations of clients, in which a cloud service provider strives to provision sufficient resources so as to meet the jobs' execution demands and satisfy their SLA requirements [36; 37]. However, the huge number of cloud resources allocated brings energy challenges to cloud data centers, in which energy consumption greatly increases and so does the cost of operation [38; 39; 40]. Together with QoS, energy consumption in cloud computing has consequently attracted the attention of researchers from academia and industry [41; 42; 43]. It becomes of paramount importance for a cloud provider to satisfy the QoS obligations of clients while simultaneously achieving energy efficiency based on QoS during the scheduling process. The existing work in the literature presents various execution models and techniques to tackle such service challenges in the cloud-fog environment. A model for assigning tasks to servers is formulated in [PERSON] et al. [44] with the goal of minimizing the energy consumption of servers in the cloud data center. They propose a scheduling scheme that allocates tasks to a minimum number of servers while the response time of jobs is kept within an acceptable range, in which the scheme has proven its effectiveness against the random-based scheduling. [PERSON] et al. [25] propose a load balancing model that ensures user satisfaction by efficiently executing tasks at a reduced cost. However, energy efficiency is not effectively incorporated with respect to the QoS penalties of schedules in the execution procedure. [PERSON] et al. [45] present a model that controls the fraction of data processed remotely on cloud servers against the fraction of data processed locally on fog servers, where a utility function is proposed to optimize the performance metrics of average response time and cost. The task scheduling process has been optimized on a cloud-fog computing environment by [PERSON] et al. [46], in which efficient scheduling algorithms assign jobs among fog regions and clouds. [PERSON] et al. [47] adopt an optimal task scheduling procedure that considers the operating cost and execution time of a task in a cloud-fog computing environment. The procedure particularly formulates globally optimal schedules that are computed based on task requirements and usage costs of resources. Nevertheless, jobs are modeled without considering energy factors when service decisions are triggered in the algorithm designs. Furthermore, [PERSON] et al. [48] decided on the optimal scheduling of virtual machines on queues of the cloud system with heterogeneous workloads, but with considerations of energy in the scheduling process. In contrast, [PERSON] et al. [49] present an algorithm that selects a suitable cloud or mobile-edge computing server to schedule IoT workloads, with the goal of achieving a better service time with a low cost. The energy required to perform such tasks are employed in the scheduling process, however, without correlating energy consumption with a QoS penalty of schedules formulated on resources. In addition, an optimization framework to meet the deadlines of cloud applications is proposed in [PERSON] et al. [50], in which they utilize a Probability of Completion before Deadlines (PoCD) metric to quantify the probability of a job to meet its deadline. [PERSON] et al. [51] present a deadline-based scheduler that orders jobs for execution in the cloud according to their laxity and locality, in which the algorithm demonstrates its efficacy against time-shared and space-shared scheduling algorithms. In both deadline schedulers, penalties for the energy consumption incurred due to executing a job and for violating deadlines of jobs are missing factors. A delay-aware Earliest Deadline First (EDF) algorithm is proposed by [PERSON] et al.