# An Analysis of Methods and Metrics for Task Scheduling in Fog Computing
## 3 Task Scheduling Problem in Fog Computing  
Task scheduling is a problem addressed in many papers, e.g., [15; 16; 17; 18; 19; 20; 21]. In [15], the authors formulated task scheduling problems as Markov Decision Processes (MDP). Their novel solution helps to place the task in the fog nodes or the cloud data center. The objective of the placement problem addressed is the minimization of time and cost of delivery of services in fog-based IoT applications. [PERSON] et al. [17] considered the task scheduling problem as selecting appropriate fog nodes to minimize long-term computation latency. Due to the high complexity of the real-time task, deploying all tasks in the fog environment is challenging. The authors introduce a method founded on reinforcement learning, especially using an evolutionary strategy for task distribution between fog servers. The research defines the training environment as the system consisting of fog servers and their respective buffers. Researchers use the buffer utilization of available fog nodes to represent the environment states. The authors of [20] stress the importance of dynamic task scheduling, which becomes crucial to utilize the resources at fog and cloud layers to improve QoS. In their approach, after making an allocation choice, the fog server will be responsible for providing the resources for a particular task. There are studies where the task scheduling problem is solved in specific application domains, like smart manufacturing, vehicular applications, and mobile edge computing. [PERSON] et al. [21] present a new task-scheduling model computing that can be applied in smart manufacturing, where tasks can support essential network functions or new services and applications. In such a delay-sensitive and resource-constrained domain, task scheduling became a challenge. [PERSON] et al. [18] formulated the task scheduling problems for fog computing applied in the smart production domain and proposed a hybrid heuristic-based algorithm. They described the problem as independent tasks assigned to fog nodes, in which task scheduling aims to minimize the time and energy consumption costs through a reasonable allocation. They aim to allocate multiple tasks to multiple fog nodes based on the given constraints. [PERSON] et al. [19] devised deep reinforcement learning-based solutions for vehicular application tasks. The task placement is chosen between Multi-access Edge Computing (MEC) and the cloud. The main challenge is to find an optimal task scheduling strategy and maximize the vehicular application task's acceptance rate. As a result, they got less response time for an application. [PERSON] et al. (2016) present a comprehensive investigation of the problem of task migration in mobile edge computing systems. The fundamental issue is the increase in mobility possibilities and the dynamic changes in mobility patterns in connection with autonomous vehicles. A DQN-based task scheduling algorithm is proposed, in which an agent can learn an optimal task migration policy from past experience, even without knowing the users' mobility patterns. This work considers scheduling IoT applications in a fog computing environment. An IoT application, represented in Figure 2, provides data, information, or actuating functions to the requesting clients. The application is an ensemble of software components that perform dependent or independent tasks ([PERSON] et al., 2017). The objective of the task scheduling problem is to assign tasks to computational nodes to meet the IoT application's QoS requirements and consider the fog nodes' future processing commitments ([PERSON] et al., 2017). In the fog environment model, we consider computational nodes to be constrained regarding CPU, memory, disk, bandwidth, or battery lifetime. Figure 3 shows the scheduler can assign tasks to edge, fog, or cloud nodes. Although tasks can be classified as dependent or independent, we consider independent tasks with heterogeneous resource demand. translate into the problem's constraints.