Inferno Real-time Capabilities

Atul Sharma
Lucent Technologies
Bell Labs Innovations
600 Mountain Ave.
Murray Hill, NJ 07974


Inferno is a network operating system that provides a software infrastructure for distributed, network applications. Inferno allows any application, written in the Limbo programming language, to run across multiple platforms and networks under the Dis virtual machine. Inferno provides an elegant file-like interface to resources and services that allows the dynamic construction of a user name space. An Inferno application can access the resources and services in its name space even though they may be distributed throughout the network. The Styx component of Inferno provides transparent comunications over a variety of networks with strong security capabilities built in.

Inferno supports several real-time applications like video-on-demand, multimedia teleconferencing, internet telephony, and network switching, in the presence of traditional applications like electronic mail, desktop publishing, etc. Inferno's efficient design allows it to meet timing requirements of real-time systems. The paper defines some real-time terminology and then explains what real-time capabilities Inferno supports.

What is a Real-time system?

Unlike a traditional system where there is a separation between correctness and performance, in a real-time system correctness and performance are very tightly coupled. Put more formally a real-time system, in addition to logical correctness of computation results, provides timing correctness. Timing correctness means that the tasks in the system should meet certain timing constraints. What these timing constraints are, what meeting timing constraints mean, and what are the consequences of not meeting these constraints, depends on the problem domain you are targeting. Typical timing constraints are:

Some examples of domains requiring real-time support are: multimedia teleconferencing, internet telephony, network routing & switching, and industrial control systems. For multimedia processing, real-time characteristics of several media streams becomes important. Each medium stream has their own inherent frame rate, time delay tolerance. Synchronizing several such streams requires that underlying system satisfy their timing constraints. An industrial control system consists of computers supervising robots and other electro-mechanical peripherals with well defined timing requirements, e.g. at time 't' robot arm is going to pick a clean bottle and put on the next stage of assembly line to be bottled. In reality there is a whole continuous range of domains and their timing constraints. But broadly, we can see them in two categories: Hard Real-time and Soft Real-time systems.

Hard Real-time systems provide time guarantees. They guarantee that the timing constraints are going to be met. The timing characteristics of these systems has to be predictable or determinstic. Embedded environments like a manufacturing plant control system, which have stringent timing constraints being dictated by the physical characteristics of the environment, will fall into this category. If the timing constraints are not met, consequences may be disastrous. A malfunctioning sensor in a nuclear reactor, not being activated at its required rate may be catastrophic.

The consequences of not meeting time guaranteesin Soft Real-time are not disastrous. The system has laxity in terms of when a task can start and finish. Multimedia audio-video codecs will fall in this category. If some of the frame data is lost, it can just be dropped, or data can be created by interpolation and other techniques. If video is delayed because of decoding, similar delay is introduced requiring synchronization with other streams such as audio.

Some soft real-time systems quantify the timeliness, by measurements like "laxity" which measure amount of delay or earliness than desired. They have a threshold with which they are able to tolerate this laxity. Some have soft deadlines that may be missed occasionally, others have weak deadlines where partial or incomplete results are acceptable if the deadline is missed, and some have recoverable deadlines that cause programmed recovery actions when missed.

Some soft real-time systems do not quantify their timeliness, but have a degree of confidence of being able to meet the soft real-time requirements. They do so by:

Inferno Real-time Support

Inferno supports applications with real-time constraints. It does so by having small runtime overheads, being small, and providing high priorities for real-time tasks. Here are some numbers for the usual system overheads incurred by tasks executing in Inferno on a 133 MHz Pentium:

These times show that Inferno's real-time system overheads are comparable to overheads incurred by other commercial real-time operating systems.

Inferno provides time-sliced or round-robin scheduling with multiple priority levels. All the tasks are fully preemptive, even the critical regions are preemptible. Only the tasks holding the spin locks are not preemptible. Priority of the spin locking tasks is made the highest, such that they get to complete fast enough, releasing resources for the other tasks.

One scheduling scheme cannot hope to satisfy the needs of all the applications. To that effect we provide facilities to tune the scheduling algorithms during run-time through the device file system. The Inferno group is constantly improving its real-time capabilities. Currently, the Earliest Deadline First and Rate Monotonic scheduling schemes are being analyzed for their ability to provide higher levels of real-time confidence and predictability.

The Inferno network operating system provides competitive real-time capabilities. The Inferno team is dedicated to providing higher levels of reliability and predictability to the operating system while continuing to keep its overall size and complexity low.