\section{Approach}



There are several possible approaches to providing soft or best-effort
real-time services in a distributed system.  These include
reservation-based systems and global-priority-based systems.

A reservation-based system trades a complete description of the task
(or a family of periodic tasks) for resource reservations that help
ensure that the task's deadline will be met.  For example, if cpu
quanta can be reserved, rate-monotonic scheduling can be used to create
a schedule for a fixed set of periodic tasks.  If all resources in the
system can be reserved, then a reservation-based system can provide a
hard real-time guarantee to the task that its deadline will be met.
Unfortunately, in all but the simplest or most contained systems,
there are resources that are not reservable, but are available on a
FCFS or other basis.  If the task requires such a resource, then no
hard guarantee is possible.

In a global-priority-based system, all schedulers in the system are
priority-based schedulers with pre-emption.  The task to be mapped is
assigned a global priority which all schedulers must respect.  The
system assures that at any moment, only the $N$ highest priority tasks
are running on the $N$ nodes of the system.  Considering the task's
deadline its priority, earliest deadline first scheduling can maximize
the probability that it has a good chance the deadline will be met.
The Real-Time CORBA effort is of this form.  

These two approaches assume a system-wide entity that negotiates among
many independent real-time requests in order to provide service.  How
many real computing environments have such a beast?

Consider the computing environment upon which a typical user is likely
to want to run his interactive application.  Priority-based schedulers
are rare.  There is no notion of global priority



application-centered

prediction

local 

act tree

