The broader eld of parallel real-time concurrency platforms is still in its infancy, and this work restricts itself to soft real-time systems that are implemented atop the Linux operating system. These soft-real time systems do not make absolute worst-case timing guarantees under all circumstances, instead aiming to provide predictable real-time behavior most of the time. To contrast more specically, hard real-time systems are those that are validated and certied to have correct timing behavior under all foreseeable operating conditions, based on (often) extremely pessimistic models of system behavior and workload performance (i.e.,
worst case execution time). This requires specic design for real-time behavior at every level: hardware, operating system, system libraries, and application programs. For the purpose of achieving hard real-time parallel performance, we would also include a hard real-time parallel concurrency platform in that list as well.
Hard-real-time systems suer, in practice, from strict workload restrictions that can prohibit the use of up to 50% of available processing capacity. Soft-real-time systems seek to claw back some of this capacity in exchange for tolerating occasional deadline misses under certain con- ditions, representing a tradeo between timeliness and processor utilization. Deterministic models of soft-real-time behavior exist: for example, bounded tardiness (or lateness), where a job may miss its deadline by a specied amount, may be permissible in some applications where a certain timing behavior is desired but a relaxed timing behavior may be accept- able. Bounded tardiness can be provided by otherwise traditional hard-real-time scheduling methods such as Earliest Deadline First (EDF), but can also be provided by specically soft-real-time scheduling algorithms such as the class of Pfair algorithms. Stochastic models also exist: for example, a periodic task with a varying workload, called a semi-periodic task, may be described by a probability distribution that describes the likelihood of any given job's actual computational requirement. A soft-real-time approach may certify the behavior of the system up to but not exceeding a maximum computational demand, which together with a tasks' probability distribution describes the probability that the timing requirement for each job from such a task will be satised. Other task models may allow job arrival time, or even both job arrival and workload, to uctuate stochastically. Lastly, time-valued tasks may be described by a utility function that describes the utility of nishing a soft-real-time computation over time. This allows a system to derive maximum value from nishing a task by its deadline, and gracefully degrade the usefulness of the computation over time until it is no longer worthwhile. A detailed survey of soft-real-time task models, as well as specic analysis of the bounded tardiness model, may be found in [31]
This dissertation uses scheduling theory that would be suitable for hard-real-time systems, but uses an operating system (Linux with the RT_PREEMPT patchset applied) and concur- rency platform (OpenMP) that are not hard-real-time software, and thus cannot reasonably make any claim toward providing hard-real-time performance. Furthermore, no hard-real- time concurrency platforms exist, and:
1. Hard real-time parallel systems will likely need to solve most or all of the challenges addressed in the design of soft real-time parallel systems, but also will have further challenges beyond that. Thus, soft real-time parallel systems are a natural stepping stone towards hard real-time parallel systems.
2. Soft real-time and hard real-time systems are both valid system models that have particular strengths and weaknesses in dierent design contexts, and both deserve thorough exploration in their own design space. Since soft real-time systems do not make strong guarantees of system behavior, it is likely that future researchers will see soft real-time parallel systems as performance-oriented systems that are especially suitable for applications where the potential for injury to humans or property is minimal (e.g., physically small systems or systems in highly controlled settings). In contrast, hard real-time parallel systems will provide a lesser degree of performance increase but will be suitable for safety-critical applications where the penalty for failure is large. Moreover, achieving hard-real-time performance is a dicult task that goes beyond having appropriate scheduling theory and a hard-real-time compatible software architecture. There are many second-order eects that must considered, and either accounted for or mitigated, to make a claim to having credible hard-real-time performance. All forms of contention that exist within computer hardware, and in particular cache eects, are possible sources of interference when enforcing hard-real-time behavior. These second order eects are not generally mitigated in multiprocessing systems to a large degree, let alone parallel processing
systems: the current recommendation by the Federal Aviation Administration, the United States government agency in charge of aviation safety, is to disable cache on multi-core processors due to the unknown risk it poses to real-time system operation, favoring instead degraded but predictable performance. The addition of parallel computing to the real- time computing landscape only increases the opportunities for and likelihood of interference occurring, since parallel tasks may have multiple threads on multiple processors a single such task is then capable of inuencing multiple tasks on multiple other processors.