System support for time-critical applications

A number of interesting applications have time constraints associated with them - most notably those in the area of multimedia. Today's workstations do not provide adequate support for applications whose definition of correctness is a function of time. This paper presents a set of system-level mechanisms that permit the incorporation of multiple streams of sustained, high-bandwidth, time-critical information into the distributed workstation computing environment. The goal of this work is to enable programmers to write applications that manipulate (i.e. acquire, transport, process, store and present) and synchronize time-critical information streams, and do so with an ease comparable to that of manipulating text or graphics on a workstation today. This paper provides a description of the different types of temporal relationships required by time-critical applications, and provides a means of expressing these relationships to the underlying system in a minimally constraining fashion (i.e. through a technique called 'loose synchronization'). The central concept behind the mechanisms described here is the notion of time-regulated transport of time-critical information being provided by means of mechanisms that are software analogues to Phase-Locked Loops (PLL).