CPU Broker

Mailing Lists
Flux Projects


Go To: News Download Documentation License Bug Reports

CPU Broker Logo The CPU Broker is a reservation-based resource manager for CPU time. The broker mediates between multiple real-time applications and the facilities of an underlying real-time operating system: it implements a configurable CPU management policy, monitors resource use, and adjusts allocations over time. This architecture helps to ensure that the quality of service (QoS) needs of ``important'' applications are satisfied, especially when the relative importance of applications changes dynamically. An additional and important benefit is that the broker can automatically determine many of the scheduling parameters of its client applications.

The CPU Broker is implemented as a CORBA server that uses the TimeSys Linux resource kernel APIs to manage CPU reservations.

The CPU Broker is being applied to BBN's Unmanned Aerial Vehicle (UAV) Open Experimental Platform (OEP). The broker enables dynamic adaptation and reallocation of CPU resources for UAV deployments: such adaptation is required in response to the changing importance of various information flows (e.g., the identification of time-critical targets), changing battlefield conditions (e.g., assets and asset status), changing mission modes, and/or changing missions. The broker supports feedback and configurable strategy-based policies for adaptation and handling conflicting reservations. These strategies can be driven or implemented by other QoS-enabling middleware, such as QuO, and integrated with other resource management facilities (e.g., network reservations and application-level adaptation strategies) as part of an overall end-to-end QoS management solution.

The CPU Broker is described in our RTAS 2004 paper. See below for links to other online documentation.


  • [October 22, 2004]: CPU Broker 1.2.0 is released.
    This release adds support for TimeSys Linux 4.1 and TAO 1.4. It also includes the usual slew of bug fixes.
  • [June 22, 2004]: CPU Broker 1.1.0 is released.
    This release contains new CPU management policies and per-task advocates --- in other words, a bigger "toolbox" --- as well as new code optimizations, more test cases, more documentation, and the usual slew of bug fixes.
  • [April 30, 2004]: RTAS 2004 paper is available.
    The RTAS 2004 paper about the CPU Broker is now available. This paper describes the design, implementation, and application of the broker. It is an updated version of our January 2004 technical report.
  • [January 30, 2004]: Technical report is available.
    The first report about the CPU Broker is now available.
  • [December 1, 2003]: CPU Broker 1.0.0 is released.
    This release contains more stable policies, more documentation, an in-depth tutorial, an easier-to-use configuration client, an improved build system, more test cases, and bug fixes.
  • [September 2, 2003]: CPU Broker 0.5 is released.
    This is an initial beta release for "motivated users" only!


Download the distribution of your choice:

Note that in order to build the CPU Broker and make it do anything useful, you will need to acquire and install:

  • TimeSys Linux/NET, a real-time (and commercial) version of Linux, and
  • TAO, a real-time (and open source) CORBA ORB.

The broker can interface with several other software systems as well, including QuO, for tighter integration with CORBA applications; JacORB, for Java support; omniORB and omniORBpy, for Python support; and gkrellm, for GUI monitoring of the broker in real time. These systems are not required for building the CPU broker, however.

Older releases of the CPU Broker are also available for download:


Feel free to read the current CPU Broker documents:

All of these documents are included in the CPU Broker distributions.


The CPU Broker is distributed under the GNU General Public License (GPL).

Bug Reports/Feedback

Please send bug reports and feedback to alchemy-users@flux.cs.utah.edu. This mailing list is open to subscribers only; see the description of the Alchemy mailing lists for more information.

[ CMI ] [ CPU Broker ] [ Hourglass ] [ Jiazzi ] [ Knit ] [ Maya ] [ SPAK ]
[ Network Testbed ] [ Alchemy ] [ Self-Spreading Transport Protocols ]
Flux Research Group / School of Computing / University of Utah

Problems? Contact the Flux Web Admin.
Last updated January 07, 2005.