A new preemptive task scheduling framework for heterogeneous embedded systems
Jose Antonio Ayala-Barbosa, Paul Erick Mendez-Monroy · 2022
In recent years, the graphics processing units (GPUs) have been used to generate real-time applications in embedded systems; due to the programmability, high performance, and low power consumption of GPUs, leveraging the ability to process multiple workloads simultaneously. However, application programming frameworks using GPUs presented in the literature lack the flexibility to handle real-time events and the dynamic behavior of the application. Existing GPU schedulers do not consider the preemption of higher priority tasks or are only considering temporary preemption, causing a task to occupy all GPU resources until it ends once launched, this causes delays in higher priority tasks generated dynamically by events and increases the rate of lost deadlines and failures in critical applications. To consider this problem, we propose a new programming framework to schedule preemptive tasks based on their priority and allocate them through dynamic load balancing. The proposed framework seeks to generate a minimum of context switch and maximize the cores’ utility into a heterogeneous embedded system. The design was presented for an Nvidia Jetson Tx2 card, featuring 5 modules of the programming framework.