Many suspensions, many problems: a review of self-suspending tasks in real-time systems
Ref: CISTER-TR-181101 Publication Date: Jan 2019
Many suspensions, many problems: a review of self-suspending tasks in real-time systemsRef: CISTER-TR-181101 Publication Date: Jan 2019
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.
Published in Real-time Systems, Springer US, Volume 55, Issue 1, pp 144-207.
Notes: Paper presented at RTSS 2018, Session 4: Brief Presentations/RTSS@Work