1 Introduction
-
Suggesting a permutation-based, semidynamic, soft real-time task scheduling algorithm for cloud–fog systems based on the IGA-POP.
-
Achieving a good balance between the makespan and the total execution cost while meeting deadline constraints.
-
Evaluating the performance of the proposed scheduling algorithm on several datasets against the first fit (FF) algorithm, the best fit (BF) algorithm, the bees life algorithm (BLA), and the genetic algorithm (GA) in terms of the makespan, total execution cost, failure rate, and average delay time.
2 Literature Review
2.1 Task Scheduling in the Cloud Computing Environment
2.2 Task Scheduling in the Fog Computing Environment
2.3 Task Scheduling in the Cloud–Fog Computing Environment
References/year | Scheduling | Task | Environment | Algorithm(s) | Performance measures | Deadline |
---|---|---|---|---|---|---|
[13]/(2016) | Static | Independent | Cloud | Hybrid: heuristic algorithms + ABC | Makespan | ✖ |
[14]/(2016) | Static | Independent | Cloud | SOS PSO | Makespan Response time Imbalance degree | ✖ |
[15]/(2017) | Static | Independent | Cloud | ACO | Makespan Average waiting time | ✖ |
[16]/(2018) | Static | Independent | Cloud | PSO | Availability Resource utilization Latency Reliability | ✖ |
[18]/(2019) | Static | Independent | Cloud | Enhanced GWO | Makespan Energy consumption | ✖ |
[17]/(2019) | Static | Independent | Cloud | Modified ACO | Makespan Imbalance degree | ✖ |
[19]/(2020) | Static | Independent | Cloud | WOA | Total communication cost | ✖ |
[20]/(2018) | Static | Independent | Fog | BLA | CPU execution time Memory consumption | ✖ |
[10]/(2018) | Static | Independent | Fog | PSO Binary PSO BAT | makespan Energy consumption | ✖ |
[21]/(2018) | Static | Dependent | Fog | Improved PSO | Workload ratio Robot mean difference | ✖ |
[22]/(2018) | Static | Dependent | Fog | TDMA + MEETS | Energy efficiency | ✖ |
[23]/(2019) | Static | Dependent | Fog | Greedy Knapsack Algorithm | Energy consumption Execution cost Sensor lifetime | ✖ |
[5]/(2019) | Static | Dependent | Fog | Hybrid: C-Means Clustering + PSO | User satisfaction | ✖ |
[24]/(2019) | Dynamic | Independent | Fog | Heuristic-based | Total penalty of tardiness | ✔ |
[11]/(2020) | Static | Independent | Fog | Moth-Flame Optimization | Task execution time Task transfer time | ✖ |
[25]/(2016) | Static | Independent | Cloud–fog | Hybrid: convex optimization + nonlinear integer method + Hungarian method | Power consumption Transmission delay | ✖ |
[4]/(2017) | Static | Dependent | Cloud–Fog | Heuristic-based | Makespan Execution cost | ✔ |
[26]/(2018) | Static | Independent | Cloud–fog | Min-conflicts | Execution cost Processing time Response time | ✖ |
[8]/(2018) | Static | Dependent | Cloud–fog | Heuristic-based | Energy consumption Average latency Average network usage | ✖ |
[2]/(2019) | Static | Independent | Cloud–fog | GA | Makespan Execution cost | ✖ |
[27]/(2019) | Static | Dependent | Cloud–fog | Max–Min Ant System | Normalized schedule Length | ✖ |
[28]/(2020) | Static | Independent | Cloud–fog | WSM MBAR | Makespan Network load Energy consumption Number of missed tasks | ✖ |
[29]/(2020) | Static | Dependent | Cloud–fog | Multi-Agent Model | Energy consumption Total execution cost | ✖ |
[30]/(2020) | Independent | Cloud–fog | GA | Success rate Execution cost | ✔ | |
[28]/(2021) | Static | Independent | Cloud–fog | ACO | Privacy Network load Total execution | ✖ |
[32]/(2022) | Static | Independent | Cloud–fog | LMFO | Energy consumption Computation delay CO Emission temperature Emission | ✖ |
Proposed | Semi-dynamic | Independent | Cloud–fog | IGA-POP | Makespan Execution cost Failure rate Average delay time | ✔ |
3 Real-Time Task Scheduling in Cloud–Fog Computing
3.1 Cloud–Fog System Model
-
The tasks submitted by IoT end users have different arrival times and deadline times.
-
The scheduling algorithm is periodically executed each fixed time (\(\uptau\)) to schedule the set of tasks arriving at the pending queue of the broker since the last scheduling round.
3.2 Problem Formulation
Notation | The meaning of the notation |
---|---|
\(N\) | The number of real-time tasks |
\({RT}_{i}\) | The ith real-time task |
\({LRT}_{i}\) | The length of the \({RT}_{i}\) (MI) |
\({IFS}_{i}\) | The input file size of the \({RT}_{i}\) (MB) |
\({OFS}_{i}\) | The output file size of the \({RT}_{i}\) in (MB) |
\({BRT}_{i}\) | The bandwidth requirement of the \({RT}_{i}\) |
\({MRT}_{i}\) | The memory requirement of the \({RT}_{i}\) |
\({BAT}_{i}\) | The broker arrival time of the \({RT}_{i}\) |
\({NAT}_{i}\) | The node arrival time of the \({RT}_{i}\) |
\({DRT}_{i}\) | The deadline of the \({RT}_{i}\) |
\({PT}_{i}\) | The pending time of the \({RT}_{i}\) |
\(M\) | The number of VMs |
\({VM}_{j}\) | The jth virtual machine |
\({Pe\_Num}_{j}\) | The number of computing elements in the \({VM}_{j}\) |
Pe_Mipsj | The computing power of a computing element in the VMj (MIPS) |
\({RAM}_{j}\) | The memory capacity of the \({VM}_{j}\) |
\({BW}_{j}\) | The bandwidth of the \({VM}_{j}\) |
\({N}_{j}\) | The number of tasks assigned to the \({VM}_{j}\) |
\({PC}_{j}\) | The processing cost per time unit of the \({VM}_{j}\) |
\({MC}_{j}\) | The memory cost per storage unit of the \({VM}_{j}\) |
\(B{C}_{j}\) | The bandwidth cost per data unit of the \({VM}_{j}\) |
\({WT}_{ij}\) | The waiting time of the \({RT}_{i}\) on the \({VM}_{j}\) |
\({EET}_{ij}\) | The expected execution time of the \({RT}_{i}\) on the \({VM}_{j}\) |
\({EFT}_{ij}\) | The expected finish time of the \({RT}_{i}\) on the \({VM}_{j}\) |
\({Cost}_{ij}^{CPU}\) | The CPU usage cost of executing the \({RT}_{i}\) on the \({VM}_{j}\) |
\({Cost}_{ij}^{RAM}\) | The memory usage cost of executing the \({RT}_{i}\) on the \({VM}_{j}\) |
\({Cost}_{ij}^{BW}\) | The bandwidth usage cost of executing the \({RT}_{i}\) on the \({VM}_{j}\) |
\({Cost}_{ij}\) | The total cost of executing the \({RT}_{i}\) on the \({VM}_{j}\) |
4 IGA-POP Based Real-Time Task Scheduling in the Cloud–Fog Environment
5 Analysis of the Experiments and Results
5.1 Experimental Settings
Processor | Intel ® Core™ i7, CPU 2.27 GHz |
---|---|
Memory | 4 GB |
Operating system | Windows 8 |
Parameter | Fog VM | Cloud VM | Unit |
---|---|---|---|
Number of VMs | {10, 20, 30} | {5, 10, 15} | VM |
Computing power | [1000:2000] | [3000:5000] | MIPS |
RAM | [250:5000] | [5000:20,000] | MB |
Bandwidth | [128:1024] | [512:4096] | MBPS |
CPU usage cost | [0.2:0.5] | [0.6:1.0] | G$/s |
Memory usage cost | [0.01:0.04] | [0.03:0.06] | G$/MB |
Bandwidth usage cost | [0.01:0.03] | [0.06:0.1] | G$/MB |
Parameter | Value | Unit |
---|---|---|
Task length | [1000:20,000] | MI |
Memory | [10:150] | MB |
Input file size | [10:100] | MB |
Output file size | [10:100] | MB |
Broker arrival time | [0:100] | Second |
Deadline time | Equation (19) | Second |
Algorithm | Parameter | Value |
---|---|---|
GA | Crossover rate | 0.8 |
Mutation rate | 0.01 | |
BLA | Neighborhood radius rate | 0.75 |
5.2 Results and Discussion
5.2.1 Convergence Analysis
5.2.2 Balance Coefficient Analysis
5.2.3 Optimality Analysis
No. of tasks | Algorithms | |||||
---|---|---|---|---|---|---|
FF | BF | BLA | GA | Proposed | Optimal | |
2 | 0.5144 | 0.5488 | 0.5707 | 0.5707 | 0.5707 | 0.5707 |
3 | 0.5693 | 0.5415 | 0.5933 | 0.5933 | 0.5933 | 0.5933 |
4 | 0.5557 | 0.5139 | 0.6068 | 0.6068 | 0.6068 | 0.6068 |
5 | 0.5466 | 0.5242 | 0.5978 | 0.5978 | 0.5978 | 0.5978 |
6 | 0.5550 | 0.5314 | 0.6088 | 0.6088 | 0.6088 | 0.6088 |
7 | 0.5385 | 0.5427 | 0.6022 | 0.6022 | 0.6022 | 0.6022 |
8 | 0.5369 | 0.5295 | 0.6082 | 0.6082 | 0.6082 | 0.6082 |
9 | 0.5678 | 0.5379 | 0.6027 | 0.6031 | 0.6141 | 0.6141 |
10 | 0.5504 | 0.5188 | 0.6048 | 0.6057 | 0.6110 | 0.6110 |
5.2.4 Fitness Analysis
5.2.5 Performance Evaluation
Algorithm | Tasks | |||||
---|---|---|---|---|---|---|
N = 50 | N = 100 | N = 150 | N = 200 | N = 300 | N = 400 | |
{10 Fog VMs U 5 VMs Cloud} | ||||||
FF | 288.9 | 313.3 | 308.2 | 366.3 | 468.3 | 482.4 |
BF | 197.9 | 325.0 | 423.2 | 362.3 | 453.1 | 455.4 |
GA | 111.3 ± 0.3 | 118.7 ± 0.8 | 149.4 ± 1.7 | 194.5 ± 5.8 | 358.1 ± 20.6 | 369.8 ± 17.7 |
BLA | 109.9 ± 0.1 | 116.9 ± 0.3 | 145.0 ± 1.2 | 190.9 ± 3.6 | 331.4 ± 16.6 | 345.4 ± 13.4 |
Proposed | 109.9 ± 0.1 | 116.9 ± 0.8 | 144.9 ± 1.5 | 190.7 ± 3.6 | 317.0 ± 7.6 | 330.7 ± 7.9 |
{20 Fog VMs U 10 VMs Cloud} | ||||||
FF | 303.5 | 410.2 | 570.8 | 665.2 | 534.6 | 515.8 |
BF | 159.7 | 523.15 | 328.9 | 381.1 | 334.8 | 414.0 |
GA | 109.3 ± 0 | 111.2 ± 0.6 | 112.8 ± 0.5 | 113.3 ± 0.4 | 126.6 ± 0.9 | 167.7 ± 1.2 |
BLA | 109.3 ± 0.0 | 110.8 ± 0.0 | 111.7 ± 0.1 | 112.4 ± 0.2 | 125.5 ± 1.8 | 165.9 ± 1.4 |
Proposed | 109.3 ± 0.0 | 110.8 ± 0.0 | 111.6 ± 0.0 | 112.3 ± 0.4 | 125.8 ± 0.3 | 173.2 ± 0.3 |
{30 Fog U 15 Cloud} | ||||||
FF | 282.6 | 560.4 | 621.5 | 690.7 | 615.7 | 649.9 |
BF | 186.7 | 554.1 | 313.0 | 293.1 | 340.0 | 424.9 |
GA | 109.2 ± 0.1 | 110.3 ± 0.2 | 111.0 ± 0.2 | 111.4 ± 0.2 | 111.2 ± 0.5 | 117.7 ± 1.0 |
BLA | 109.1 ± 0.0 | 110.3 ± 0.1 | 110.8 ± 0.2 | 110.8 ± 0.2 | 110.4 ± 0.2 | 115.7 ± 0.3 |
Proposed | 109.1 ± 0.0 | 110.2 ± 0.1 | 111.4 ± 0.1 | 110.7 ± 0.1 | 110.4 ± 0.2 | 113.7 ± 0.2 |
Method | Tasks | |||||
---|---|---|---|---|---|---|
N = 50 | N = 100 | N = 150 | N = 200 | N = 300 | N = 400 | |
{10 Fog VMs U 5 Cloud VMs} | ||||||
FF | 319.2 | 696.9 | 1012.4 | 1311.8 | 2201.7 | 3371.9 |
BF | 304.9 | 693.1 | 1108.7 | 1366.9 | 1967.7 | 2628.5 |
GA | 295.9 ± 1.7 | 634.1 ± 3.1 | 1008.1 ± 3.4 | 1306.8 ± 4.7 | 2004.7 ± 11.6 | 2842.3 ± 26.7 |
BLA | 294.1 ± 0.3 | 624.1 ± 1.1 | 1002.6 ± 4.4 | 1300.2 ± 2.8 | 1992.1 ± 3.9 | 2821.6 ± 16.9 |
Proposed | 294.1 ± 0.3 | 619.1 ± 1.8 | 989.6 ± 2.8 | 1282.7 ± 2.3 | 1968.3 ± 9.3 | 2780.1 ± 12.3 |
{20 Fog VMs U 10 Cloud VMs} | ||||||
FF | 292.0 | 643.0 | 1007.0 | 1300.2 | 1823.9 | 2442.5 |
BF | 205.8 | 523.2 | 823.6 | 1090.8 | 1763.9 | 2317.1 |
GA | 238.9 ± 2.6 | 513.0 ± 1.0 | 830.9 ± 2.5 | 1106.0 ± 7.8 | 1688.9 ± 8.6 | 2271.6 ± 2.8 |
BLA | 233.8 ± 0.2 | 499.7 ± 1.2 | 814.7 ± 2.3 | 1091.6 ± 8.7 | 1673.3 ± 3.4 | 2264.7 ± 8.4 |
Proposed | 233.9 ± 0.0 | 494.1 ± 2.6 | 791.1 ± 1.3 | 1049.6 ± 1.4 | 1626.3 ± 3.4 | 2221.6 ± 5.7 |
{30F Fog VMs U 15 Cloud VMs} | ||||||
FF | 319.2 | 666.0 | 988.4 | 1279.5 | 1776.2 | 2295.5 |
BF | 296.5 | 554.1 | 838.7 | 1083.3 | 1718.6 | 2294.7 |
GA | 255.9 ± 1.0 | 531.3 ± 3.4 | 811.8 ± 0.8 | 1054.8 ± 5.1 | 1628.2 ± 6.0 | 2202.6 ± 16.7 |
BLA | 253.7 ± 0.0 | 520.6 ± 1.9 | 796.4 ± 0.8 | 1040.0 ± 1.4 | 1609.3 ± 3.1 | 2192.8 ± 6.6 |
Proposed | 253.7 ± 0.0 | 516.5 ± 0.7 | 781.1 ± 0.7 | 1007.9 ± 0.7 | 1554.2 ± 3.1 | 2122.4 ± 0.5 |
Algorithm | Tasks | |||||
---|---|---|---|---|---|---|
N = 50 | N = 100 | N = 150 | N = 200 | N = 300 | N = 400 | |
{10 Fog VMs U 5 Cloud VMs} | ||||||
FF | 36.0 | 71.0 | 60.7 | 59.0 | 59.7 | 68.0 |
BF | 24.0 | 65.0 | 57.3 | 60.5 | 56.7 | 65.3 |
GA | 1.6 ± 0.9 | 1.0 ± 0.5 | 8.4 ± 1.3 | 22.3 ± 0.6 | 42.3 ± 1.7 | 45.2 ± 2.4 |
BLA | 1.2 ± 1.1 | 1.0 ± 0.9 | 8.0 ± 0.5 | 22.8 ± 1.8 | 42.2 ± 0.9 | 46.0 ± 1.9 |
Proposed | 1.2 ± 0.7 | 1.6 ± 0.9 | 8.1 ± 1.6 | 21.7 ± 1.1 | 43.3 ± 1.2 | 45.3 ± 0.8 |
{20 Fog VMs U 10 Cloud VMs} | ||||||
FF | 48.2 | 52.0 | 58.7 | 60.5 | 70.3 | 66.8 |
BF | 14.0 | 27.0 | 45.3 | 48.0 | 53.0 | 58.8 |
GA | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.9 ± 0.4 | 0.5 ± 0 | 6.2 ± 0.4 | 16.9 ± 0.4 |
BLA | 0.0 ± 0.0 | 0.0 ± 0.0 | 1.1 ± 0.4 | 0.3 ± 0.3 | 6.9 ± 0.4 | 17.2 ± 0.7 |
Proposed | 0.0 ± 0.0 | 0.0 ± 0.0 | 1.1 ± 0.4 | 0.3 ± 0.3 | 6.9 ± 0.2 | 17.7 ± 0.2 |
{30 Fog VMs U 15 Cloud VMs} | ||||||
FF | 42.0 | 68.0 | 75.3 | 71.0 | 64.3 | 66.5 |
BF | 18.0 | 33.0 | 41.3 | 43.0 | 50.7 | 54.5 |
GA | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.0 ± 0.0 | 7.0 ± 0.3 | 0.6 ± 0.2 | 1.1 ± 0.3 |
BLA | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.0 ± 0.0 | 1.0 ± 0.0 | 0.6 ± 0.2 | 0.8 ± 0.3 |
Proposed | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.0 ± 0.0 | 1.0 ± 0.0 | 0.7 ± 0.0 | 0.8 ± 0.3 |
Method | Tasks | |||||
---|---|---|---|---|---|---|
N = 50 | N = 100 | N = 150 | N = 200 | N = 300 | N = 400 | |
{10 Fog VMs U 5 Cloud VMs} | ||||||
FF | 47.4 | 66.0 | 77.2 | 80.4 | 88.1 | 113.6 |
BF | 22.5 | 68.0 | 91.7 | 82.9 | 93.8 | 94.9 |
GA | 0.6 ± 0.6 | 1.1 ± 0.8 | 12.0 ± 1.0 | 25.8 ± 2.2 | 66.0 ± 5.3 | 80.1 ± 3.0 |
BLA | 0.3 ± 0.2 | 1.4 ± 1.3 | 10.5 ± 0.9 | 24.9 ± 1.8 | 62.3 ± 4.7 | 76.7 ± 1.6 |
Proposed | 0.3 ± 0.1 | 1.3 ± 1.1 | 9.6 ± 0.7 | 24.3 ± 0.9 | 55.7 ± 3.4 | 77.3 ± 3.5 |
{20 Fog VMs U 10 Cloud VMs} | ||||||
FF | 53.3 | 68.9 | 134.8 | 159.0 | 128.1 | 133.7 |
BF | 15.1 | 60.0 | 70.3 | 74.2 | 74.0 | 82.6 |
GA | 0.0 ± 0.0 | 0.0 ± 0.0 | 1.1 ± 0.6 | 1.0 ± 0.5 | 8.8 ± 0.9 | 15.9 ± 1.0 |
BLA | 0.0 ± 0.0 | 0.0 ± 0.0 | 1.0 ± 0.4 | 0.4 ± 0.4 | 7.9 ± 0.4 | 15.2 ± 1.3 |
Proposed | 0.0 ± 0.0 | 0.0 ± 0.0 | 1.0 ± 0.4 | 0.4 ± 0.4 | 7.8 ± 0.4 | 17.4 ± 0.7 |
{30 Fog VMs U 15 Cloud VMs} | ||||||
FF | 66.0 | 137.3 | 157.9 | 160.1 | 126.3 | 129.1 |
BF | 22.7 | 37.7 | 52.6 | 58.7 | 61.3 | 78.2 |
GA | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.0 ± 0.0 | 3.1 ± 0.8 | 3.8 ± 1.1 | 2.7 ± 1.3 |
BLA | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.0 ± 0.0 | 2.0 ± 0.0 | 4.2 ± 0.9 | 2.6 ± 0.8 |
Proposed | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.0 ± 0.0 | 2.0 ± 0.0 | 3.1 ± 0.1 | 2.6 ± 0.9 |