Abstract

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.

Highlights

  • Complex cyber-physical systems have timeliness requirements such that deadlines associated with individualReal-Time Systems (2019) 55:144–207 computations must be met

  • It is unfortunate that many of the early results in this area were flawed, we hope that this review will serve as a solid foundation for future research on self-suspensions in real-time systems

  • Example 3: hardware acceleration by using co-processors and computation offloading In many embedded systems, selected portions of programs are preferably executed on dedicated hardware co-processors to satisfy performance requirements. Such co-processors include for instance application-specific integrated circuits (ASICs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), graphics processing units (GPUs), etc

Read more

Summary

Introduction

Complex cyber-physical systems (i.e., advanced embedded real-time computing systems) have timeliness requirements such that deadlines associated with individual. The seminal work by Liu and Layland (1973) considers the scheduling of periodically triggered computations, which are usually termed tasks The analysis they presented enables the schedulability of a set of such tasks to be established, i.e., whether their deadlines will be met at run-time. One underlying assumption of the majority of these schedulability analyses is that a task does not voluntarily suspend its execution—once executing, a task ceases to execute only as a result of either a preemption by a higher-priority task, becoming blocked on a shared resource that is held by a lower-priority task on the same processor, or completing its execution (for the current activation of the task) This is a strong assumption that lies at the root of Liu and Layland’s seminal analysis (Liu and Layland 1973), as it implies that the processor is contributing some useful work (i.e., the system progresses) whenever there exist incomplete jobs in the system (i.e., if some computations have been triggered, but not yet completed). The remainder of this section provides more background and motivation of general self-suspension and

Impact of self-suspending behavior
Purpose and organization of this paper
Examples of self-suspending task systems
Real-time sporadic self-suspending task models
Scheduling
Analysis
Platform
General design and analysis strategies
Modeling the interfered task
Modeling suspension as computation
Modeling each computation segment as an independent task
Hybrid approaches
Exact schedulability analysis
Modeling the interfering tasks
Suspension-oblivious analysis
Modeling self-suspensions with carry-in jobs
Modeling self-suspensions as release jitter
Modeling self-suspensions as blocking
A unifying analysis framework
Improving the modeling of segmented self-suspending tasks
Remarks on the methods without enforcement
Period enforcement mechanisms
Dynamic online period enforcement
Static period enforcement
Slack enforcement
Multiprocessor scheduling for self-suspending tasks
Existing misconceptions in the state of the art
Incorrect quantifications of jitter (dynamic self-suspension)
Incorrect quantifications of jitter (segmented self-suspension)
Incorrect assumptions regarding the critical instant
A counterexample to the synchronous release
A counterexample to the minimum inter-release time
Counting highest-priority self-suspension time to reduce the interference
Incorrect analysis of segmented fixed-priority scheduling with periodic enforcement
Incorrect conversion of higher priority self-suspending tasks
Self-suspending tasks in multiprocessor synchronization
Semaphores in uniprocessor systems
Semaphores in partitioned multiprocessor systems
Incorrect contention bound in interface-based analysis
A safe response-time bound
Soft real-time self-suspending task systems
Suspension-aware analysis
Computational complexity and approximations
Segmented self-suspending tasks
Dynamic self-suspending tasks
Final discussion
Unresolved issues
Non-implicated approaches
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.