*3.2. Post IoT Age*

The Internet of Things, IoT, is the new trend in connectivity spawned from progress in sensors, embedded systems, and communication technologies. It is a three-tier architecture that is composed of a perception/sensors layer, connectivity layer, and application layer [26].

Mobile edge computing, MEC, is a new frontier in computing technologies. Multitude factors have contributed to the emergence of edge computing. Traditionally, cloud computing has been the dominant technology for the storage and processing of big data. Conventional task-offloading techniques have been proposed to migrate computationally intensive tasks/applications to cloud servers for processing. The offloading decision is aimed at either reducing end-user power consumption or increasing system performance [27]. However, the offloading strategies devised for cloud computing are not adequate in today's technologies for the following reasons: (1) Cloud servers cannot sustain the real-time processing of critical tasks, (2) the growing need for data protection and privacy, (3) the exponential increase in the number of IoT devices, and (4) the rising concern of the power consumption of data centers [28]. It has been reported that in the US, data centers consume up to 2.2% of all utility power [29]. According to the International Energy Agency (IEA), nearly 1% of global energy is consumed by data centers (roughly 250 TWh).

Edge computing, EC, addresses the shortcomings of cloud computing by bringing cloud-like services and operations close to the user. Task-offloading techniques have also been developed for edge computing. Fog computing is a term coined by CISCO and emerged after edge computing [30,31]. Fog-computing architecture, as illustrated in Figure 3, is composed of IoT end devices, fog devices that can perform processing and

storage (such as micro cloudlet and gateways), and cloud layer (typically data centers and cloud servers) [32,33].

**Figure 3.** Offloading strategies using fog-computing paradigm. The fog layer is composed of cloudlets (small-scale data centers),and storage (fog servers). The cloud layer houses data centers and servers.

In the realm of the fog-computing paradigm, task offloading has become a hierarchical approach in which an offloading algorithm can execute the task locally using a specialized core, or nearby on an edge device, or remotely on fog or cloud nodes.

Task migration to near or far end nodes needs to account for the cost of the communication protocol: power and delay. In the context of fog computing, the offloading algorithm needs to solve the following optimization algorithm.

$$\begin{aligned} \min & \quad \sum\_{m=1}^{M} \sum\_{i=1}^{n} \delta\_{i,m} (E\_{i,m} + E C\_{i,m}) \\ \text{s.t.} & \quad \sum\_{k=1}^{n} (t\_{k,m} + \tau\_{k,m}) \le t\_{\prime \prime} \\ & \quad n \le M \end{aligned} \tag{2}$$

where *ECi*,*<sup>m</sup>* is the energy consumed to transmit data of task *P<sup>i</sup>* to processor *m*, and *τk*,*<sup>m</sup>* is the latency to transmit task data to the processor *m*. Those parameters depend on the type of the communication protocol as well as the load of the remote processor that will execute the task.
