Cloud computing has grown to become a popular distributed computing service offered by commercial providers. More recently, Edge and Fog computing resources have emerged on the wide-area network as part of Internet of Things (IoT) deployments. These three resource abstraction layers are complementary, and provide distinctive benefits. Scheduling applications on clouds has been an active area of research, with workflow and dataflow models serving as a flexible abstraction to specify applications for execution. However, the application programming and scheduling models for edge and fog are still maturing, and can benefit from learnings on cloud resources. At the same time, there is also value in using these resources cohesively for application execution. In this article, we present a taxonomy of concepts essential for specifying and solving the problem of scheduling applications on edge, for and cloud computing resources. We first characterize the resource capabilities and limitations of these infrastructure, and design a taxonomy of application models, Quality of Service (QoS) constraints and goals, and scheduling techniques, based on a literature review. We also tabulate key research prototypes and papers using this taxonomy. This survey benefits developers and researchers on these distributed resources in designing and categorizing their applications, selecting the relevant computing abstraction(s), and developing or selecting the appropriate scheduling algorithm. It also highlights gaps in literature where open problems remain.
@cite_175: Cloud computing is the product of the evolution of calculation. It is a new distributed computing model. As more and more people put into the research and applications on cloud computing, the technology of computing becomes more and more widely used. Cloud computing has a huge user group. It has to deal with a large number of tasks. How to make appropriate decisions when allocating hardware resources to the tasks and dispatching the computing tasks to resource pool has become the main issue in cloud computing. This paper is based on the current situation of resource allocation policy and job scheduling algorithms under cloud circumstance. It summarizes some methods to improve the performance, including dynamic resource allocation strategy based on the law of failure, dynamic resource assignment on the basis of credibility, ant colony optimization algorithm for resource allocation, dynamic scheduling algorithm based on threshold, optimized genetic algorithm with dual fitness and improved ant colony algorithm for job scheduling.
Likewise, @cite_175 limits itself to resource allocation in clouds in the presence of , with various ACO and GA based dynamic scheduling meta-heuristics to handle faults being explored. We go beyond system failure and also examine literature that handle failures due to pricing (out of bid) for pre-emptible and opportunistic resources.