A Survey on Various Methods and Algorithms of Scheduling in Fog Computing

Abstract
The rapid deployment of IoT in different areas generates a massive amount of data transferred to the Cloud. To solve this challenge a new paradigm, called Fog Computing, is located at the edge of the network and close to the connected objects. Its main role is to extend the capacities of Cloud and improve the performance and the QoS required by the applications by the use of different methods and techniques based on scheduling algorithms. In this paper, we review various recent studies available in the literature that are interested in the scheduling methods and algorithms used in Fog computing. The use of fog layer, in solving optimization problem, is faced with serious challenges. Therefore, to help practitioners and researchers, we present an in-depth overview of Fog Computing studying various scheduling methods and algorithms. We analyze, compare and classify these different scheduling approaches according to the nature of the algorithm used in the scheduling, the QoS optimized by the proposed approach and the type of applications in order to show what is suitable for critical IoT (CIOT), massive IoT (MIOT) and Industry IoT (IIOT). Finally, we present a comparison of the different simulation tools used to evaluate these approaches to guide fog computing developers/researchers which tool is suitable and most flexible for simulating the application under consideration.