Many suspensions, many problems: a review of self-suspending tasks in real-time systems

In general computing systems, a job (process/task) may suspend itself whilst it is waiting for some activity to complete, e.g., an accelerator to return data. In real-time systems, such self-suspension can cause substantial performance/schedulability degradation. This observation, first made in 1988...

Full description

Bibliographic Details
Main Author: Chen, Jian-Jia (author)
Other Authors: Nelissen, Geoffrey (author), Huang, Wen-Hung (author), Yang, Li (author), Brandenburg, Björn B. (author), Bletsas, Konstantinos (author), Liu, Cong (author), Richard, Pascal (author), Ridouard, Frédéric (author), Audsley, Neil (author), Rajkumar, Raj (author), Niz, Dionísio de (author), von der Brüggen, Georg (author)
Format: article
Language:eng
Published: 2019
Subjects:
Online Access:http://hdl.handle.net/10400.22/12536
Country:Portugal
Oai:oai:recipp.ipp.pt:10400.22/12536
Description
Summary:In general computing systems, a job (process/task) may suspend itself whilst it is waiting for some activity to complete, e.g., an accelerator to return data. In real-time systems, such self-suspension can cause substantial performance/schedulability degradation. This observation, first made in 1988, has led to the investigation of the impact of self-suspension on timing predictability, and many relevant results have been published since. Unfortunately, as it has recently come to light, a number of the existing results are flawed. To provide a correct platform on which future research can be built, this paper reviews the state of the art in the design and analysis of scheduling algorithms and schedulability tests for self-suspending tasks in real-time systems. We provide (1) a systematic description of how self-suspending tasks can be handled in both soft and hard real-time systems; (2) an explanation of the existing misconceptions and their potential remedies; (3) an assessment of the influence of such flawed analyses on partitioned multiprocessor fixed-priority scheduling when tasks synchronize access to shared resources; and (4) a discussion of the computational complexity of analyses for different self-suspension task models.