Real-Time for the Real World ™
This site is a discourse about some of my novel research on real-time (including, but not limited to, computing) systems. It is a highly condensed and simplified work-in-progress preview of a work-in-progress book about that research [Jensen 2018].
This research is based on my career’s extensive experience working on real-time systems which are subject to dynamic uncertainties—most real-time systems (as properly defined) are in that category. The concepts and techniques used in the special case of traditional static, ubiquitously periodic-based, real-time computing system concepts and techniques are not applicable to dynamically uncertain systems.
(My consulting practice web site is time-critical-technologies.com but I have retired from consulting except in certain cases of classified national security.)
This site reveals a principled perspective and paradigm for real-time systems which have been proven to provide for reasoning about when something happens (timing) and the predictability of timing despite uncertainties—and yet which scales down to not just encompass but improve the traditional static special case.
Together, these two independent attributes about a happening–its timing and the predictability of its timing–constitute the happening’s timeliness.
The one most fundamental principle of all real-time systems is that their timing and predictability of timing (timeliness) are essential aspects of their logic. The nature and degree of those aspects are system- and application-specific, so the “real-time” attribute is multidimensional, not binary. Everything else about real-time systems is subsidiary consequences of that fundamental principle. The book and this preview focus on that principle.
The primary emphasis of my research discussed here is:
- The very common general case of real-time systems is dynamic, subject to inherent epistemic and aleatoric uncertainties—meaning that timeliness is dynamic, due to factors such as ignorance or non-determinism of happenings in the real-time system, its applications, and its operational environment;
- Managing hardware and software resources (such as scheduling) by employing a combination of:
- my time/utility function (formerly called time/value function) paradigm for expressing general time constraints, and utility accrual timeliness optimality criteria [Jensen 77, Jensen et al. 85];
- widely used mathematical theories of evidence or beliefs for reasoning about epistemic uncertainties to establish the predictability of: (a) timing of happenings in the system, its application(s), and its operational environment; and (b) schedule outcomes—by fusing information (both evidence and beliefs) from multiple sources in the system, its application(s), and its operational environment.
The paragraphs above may seem to indicate that the general case of real-time systems is entirely different from the kind of systems that are traditionally considered to be real-time ones. But this site reveals that traditional static real-time systems are in every respect a narrow special case subset of the general case. The expressiveness of this coherent model which encompasses the spectrum of real-time systems has been proven in considerable practice (not only just mine) to be very powerful.
The conventional special case of real-time (especially computing) systems is founded on the presumption that there are few if any uncertainties, which makes that case only very narrowly applicable in the real world. Such real-time systems are static in virtually every respect pertaining to timing and predictability of timing. The general case is all other (the majority of) real-time systems—there are intrinsic epistemic uncertainties in the system, the applications, and the operational environment. These uncertainties must be explicitly accommodated with a formal method–and many of them are not stochastic and amenable to traditional probabilistic methods. Thus, these systems are dynamic in kinds and degrees (again, herein pertaining to timing and predictability of timing).
Outside the field of real-time computing systems, there is a vast array of dynamic real-time systems. For intuition, consider driving or flying from location A to location B, subject to weather, traffic, mechanical failures, etc. Typically, your destination arrival time is part of the logic (affects the utility) of your trip. How well you can predict the circumstances and their impacts on your arrival time facilitates your decision making about travel factors and contingencies, and is also part of the logic of your trip. Consider corresponding real world scenarios, such as for (arguably the most extremely mission- and safety-critical) uncertain real-time systems which are used in military combat. In general (except for comparatively simple static systems), reasoning about uncertainties is not feasible by seeking a solution based on worst case instances of timing and predictability for happenings.
This site methodically articulates (briefly, condensed from the book) the fundamentals of the general case of real-time systems, based on first principles, mental models, and frameworks.
One necessary consequence is that the babel of ad hoc inconsistent and inaccurate concepts and terms in the real-time computing practitioner and research communities is necessarily replaced herein with a precise and complete lexicon for the whole spectrum from the most general case to the traditional static subset.
Making decisions (e.g., action schedules) and predictions (e.g., of happenings’ timing and schedule results) under epistemic uncertainties is a very wide and deep field, employing a variety of mathematical techniques suitable for specific purposes. This site summarizes a number of those. However, it focuses on mathematical theories of belief (also referred to as evidence theories)—specifically, the Transferable Belief Model modification of Dempster-Shafer theory (a generalization of Bayesian theory). That model is a well suited balance of predictive capability and implementation cost for important applications of interest to the author (and to many other system designers in his career experience).
The Introduction page elaborates on this home page. The subsequent pages are divided into chapters and sections which discuss general time constraint syntax and semantics, predictability per se, real-time systems as consisting of schedulable contending actions, and real-time operating systems. There is also a section clarifying the confusion about the literal and figurative senses of the term “embedded.” A (currently out of date) bibliography and references are provided. References in this preview (but not in the book) are selected primarily to be those which can be downloaded freely from the Internet.
N.B. There still are pages from the previous (c. 2008-2012) version of this site which I have not yet updated and integrated (or removed).