General purpose systems are ill-equipped to meet the
service requirements of complex real-time applications. For this
reason, we are
retro-fitting `commodity off-the-shelf' (COTS) systems with the
necessary
subsystems to better meet the needs of real-time and adaptive
applications.
One such subsystem, which is part of the
Linux
Dionisys adaptive QoS management system is MEDEA. MEDEA is a
mechanism for distributing events (or control messages) around a system
of tightly-coupled machines running service managers. These service
managers are 'wrappers' around service policies, and control the
allocation and adaptation of resources shared
amongst competing resource consumers (typically applications).
Using mechanisms such as MEDEA in our Linux Dionisys system provides
the basis for coordinated resource management, as well as the
implementation of adaptive protocols (for flow, error, rate, congestion
control etc) and large-scale applications, including web servers and
farms. MEDEA provides the low-level plumbing (or `event channels') for
events to be delivered
between Dionisys service managers, where service adaptation is deemed
necessary. Every event channel links a single source (i.e., a
Dionisys monitor) function with potentially many destination (i.e.,
Dionisys handler) functions in
different service managers throughout the distributed system. In this
fashion,
events can be multicast across hosts, across address-spaces and across
protection domains.
That is, events can be communicated not only between processes on the
same or different hosts, but also between kernel- and user-level
address spaces. In fact, MEDEA provides support for up- and down-calls
across protection domains.
MEDEA uses `mailbox' abstractions (see below), providing one outbox for
every monitor and one inbox for every service manager. This enables
event delivery to be decoupled from the management of system services
that may trigger and respond to events. Moreover, the subsystem can
batch or select single events for delivery, as well as deliver/receive
events from/into mailboxes according to a specified ordering policy.
Developments to the MEDEA subsystem include the support for real-time
event delivery.