Introduction

The traditional concepts and terminology of “real-time computing” inevitably refer to static, primarily periodic, tasks in almost always centralized, small scale systems.

Most systems having time-constrained tasks have a subset that fit that model. But in reality, many time-constrained systems also include some inherent dynamic properties, such as:

    • variable unknown task arrival times;
    • computer, network, sensor, etc. loading – including transient and steady state overloads;
    • “Byzantine General” cyber-attacks – e.g., nodes maliciously provide false information;
    • transient and permanent partial failures of the end-point nodes and network paths;
    • end-points leaving and re-joining the network (e.g., mobile nodes);
    • variable, perhaps unknown, network path latencies and bandwidths;
    • mission changes.

The real-time computing community almost universally considers the dynamic tasks and system properties to be out of their scope. Consequently, traditional real-time computing is a narrow special case of what I call “time-critical” systems. There are numerous application domains that employ time-critical systems, including but not limited to, computing systems  – e.g., defense, industrial automation/process control, telecommunications (defense is the domain I will use here).

Despite such inherent dynamic uncertainties, the system and thus its resource management must be adaptive to satisfy the requirements for task and system timeliness – taking into account the current relative importance of the tasks (urgency and importance are independent in general) – as best as is feasible under the present circumstances, according to users’ needs.

For example, airborne surveillance trackers can easily be overwhelmed by the number of objects to track, regardless of how much computing performance they have. Thus, computational and other resources must be assigned dynamically and adaptively to track the objects that are currently the most “important” (a complex multi-dimensional metric) according to an appropriate heuristic.

A similar notional example is assigning defensive guided interceptor missiles to incoming offensive missiles, and sending guidance update messages to the interceptors. The offense often has advantages over the defense. It is not always required, or feasible, for every interceptor to fly the continuously changing shortest route to its target. In that case, it is necessary to decide when, or even if, to send guidance updates to which interceptors. As the relative “importance” of the hostile missiles evolve, defensive resource conflicts are correspondingly resolved. Some interceptors may receive more or less aperiodic course updates, causing irregular (and more lengthy) routes to their targets and even missed interceptions.

These notional examples are analogous to how everyone adapts the performance and timeliness of their tasks to the dynamic uncertainties in their personal and professional lives.

Automating such adaptive time-constrained asynchronously concurrent resource management – e.g., scheduling computational tasks, radar dwells, guidance update transmissions – is usually very challenging.

Note that the consequences of unsatisfactory timeliness in such systems can be as, or more, severe as the consequences of missing deadlines in traditional real-time systems (e.g., think in terms of nuclear weapons).

Traditional static real-time computing techniques have limited applicability to dynamic time-critical systems.

Moreover, the commonly used real-time computing concepts and terminology are ad hoc, wildly inconsistent, and often incorrect – as evidenced by trade magazine articles, product data materials, and discussion group posts. An egregious example is the ubquitous misuse of “predictable,” “predictability,” “deterministic,” and “determinism” – concepts and terms with many decades of consistent formal definitions applicable to real-time systems.

Consequently, to expand the field of real-time computing from its conventional niche to the general case of time-critical systems (not just computing systems), first it is essential to introduce a precise conceptual and terminological basis for specifying and satisfying timeliness properties, taking task relative importance into account. This basis doesn’t need to be entirely invented – it can be formulated by adapting widely used vocabulary and formalisms from scheduling theory, utility theory, decision making under uncertainty, probability theories, and other fields outside of traditional real-time computing. This basis must also accommodate the special case of traditional static real-time computing.

Generalizing the concepts of traditional real-time systems to the broader and deeper concepts of time-critical systems provides insights that can (and has) lead to novel and cost-effective timeliness-based resource management principles, technologies, and methodologies. But understanding this generalization per se can be (and has been) exploited without the use of any new principles, technologies and methodologies – even for specifying the requirements for, building, and acquiring, traditional real-time computing systems.

{Link to next page goes here}