In general computing systems, a job (process/task) may sus- pend 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 observa- tion, 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.
Download Not Available

BibTex Entry

@article{Chen_2018,
 author = {Jian-Jia Chen and Geoffrey Nelissen and Huang, {Wen-Hung Kevin} and Maolin Yang and Bjorn Brandenburg and Konstantinos Bletsas and Cong Liu and Pascal Richard and Frederic Ridouard and Audsley, {Neil Cameron} and Raj Rajkumar and {de Niz}, Dionisio and {von der Bruggen}, Georg},
 day = {11},
 doi = {10.1007/s11241-018-9316-9},
 issn = {0922-6443},
 journal = {Real-Time Systems},
 language = {English},
 month = {9},
 note = {{\circledC} The Author(s) 2018},
 number = {1},
 pages = {144--207},
 publisher = {Springer Netherlands},
 pure_url = {https://pure.york.ac.uk/portal/en/publications/many-suspensions-many-problems-a-review-of-selfsuspending-tasks-in-realtime-systems(bfbb56f1-6e96-4211-8477-cf33b164e2f7).html},
 title = {Many Suspensions, Many Problems: A Review of Self-Suspending Tasks in Real-Time Systems},
 url = {https://doi.org/10.1007%2Fs11241-018-9316-9},
 volume = {55},
 year = {2018}
}