Chen, Jian-JiaNelissen, GeoffreyHuang, Wen-HungYang, LiBrandenburg, Björn B.Bletsas, KonstantinosLiu, CongRichard, PascalRidouard, FrédéricAudsley, NeilRajkumar, RajNiz, Dionísio devon der Brüggen, Georg2019-01-042019-01-0420181573-1383http://hdl.handle.net/10400.22/12536In 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.engSelf-suspensionSchedulability testsReal-time systemsMultiprocessor synchronizationMany suspensions, many problems: a review of self-suspending tasks in real-time systemsjournal article10.1007/s11241-018-9316-9