I. Introduction
With the unprecedented evolution of communication and computing technologies, more connected devices, smart applications, and massive amounts of data have surged explosively. According to IDC’s predictions, there will be 55 billion connected Internet of Things (IoT) devices worldwide by 2025, which support a wide variety of computing-intensive applications, e.g., autonomous driving, virtual reality, and medical diagnosis. Most of these applications are intelligent and diversified, comprising dependent tasks [1]. For instance, a medical diagnosis application used in telemedicine involves a series of dependent tasks, including data acquisition, preprocessing, image analysis, diagnosis, and report generation. Each of these dependent tasks relies on the output of the preceding tasks and should be processed according to the logical order. However, these increasing complexity and service requirements of applications bring challenges for the lightweight IoT devices, originally designed for better portability and usability. To address this challenge, task scheduling as an effective strategy allows computational tasks to be scheduled across different devices for utilizing distributed computing resources, thereby reducing execution latency and providing satisfactory performance of applications through cooperative processing.