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...

ver descrição completa

Detalhes bibliográficos
Autor principal: Chen, Jian-Jia (author)
Outros Autores: 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)
Formato: article
Idioma:eng
Publicado em: 2019
Assuntos:
Texto completo:http://hdl.handle.net/10400.22/12536
País:Portugal
Oai:oai:recipp.ipp.pt:10400.22/12536
Descrição
Resumo: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.