previous page: 9.6) Object-Oriented Technology ftp: 48 u++, C++ Trans. and Concry RTS
page up: Object-Oriented Technology FAQ
next page: 9.6) Object-Oriented Technology ftp: 50 Ada95 (compiler, GNU)

9.6) Object-Oriented Technology ftp: 49 Real Time


This article is from the Object-Oriented Technology FAQ, by Bob Hathaway rjh@geodesic.com with numerous contributions by others.

9.6) Object-Oriented Technology ftp: 49 Real Time

From: dstewart+@cs.cmu.edu (David B Stewart)
Subject: Re: Object-Oriented Systems and Realtime
Date: Mon, 11 Oct 1993 16:51:19 GMT

In article <1993Oct11.082519.23058@cs.tcd.ie>,
Chris Zimmermann <czimmerm@cs.tcd.ie> wrote:
>Hi community:
>What is the state of the art concerning real time in
>object-oriented systems (if any)? By this, I mean the
>marriage of more or less traditional real time systems
>(including systems concerned with "soft" real time aspects
>like multimedia) with the OO paradigm.

We've done significant work in that area. Check out the following tech

D. B. Stewart, R. A. Volpe, and P. K. Khosla, "Design of Dynamically
Reconfigurable Real-Time Software using Port-Based Objects,"
Carnegie Mellon University Tech Report #CMU-RI-TR-93-11, July 1993.

Abstract: The current development of applications for sensor-based
robotic and automation (R&A) systems is typically a `one-of-a-kind'
process, where most software is developed from scratch, even though
much of the code is similar to code written for other applications.
The cost of these systems can be drastically reduced and the capability
of these systems improved by providing a suitable software framework
for all R&A sys tems. We describe a novel software framework, based on
the notion of dynamically reconfigurable software for sensor-based
control systems. Tools to support the implementation of this framework
have been built into the Chimera 3.0 Real-Time Operating System. The
framework provides for the systematic development and predictable
execution of flexible R&A applications while maintaining the ability to
reuse code from previous applications. It combines object-oriented
design of software with port-automaton design of digital control
systems. A control module is an instance of a class of port-based
objects. A task set is formed by integrating objects from a module
library to form a specific configuration. An implementation using
global state variables for the automatic integration of port-based
objects is presented. A control subsystem is a collection of jobs
which are executed one at a time, and can be programmed by a user.
Multiple control subsystems can execute in parallel, and operate
either independently or cooperatively. One of the fundamental concepts
of reconfigurable software design is that modules are developed
independent of the target hardware. Our framework defines classes of
reconfigurable device driver objects for proving hardware independence
to I/O devices, sensors, actuators, and special purpose processors.
Hardware independent real-time communication mechanisms for
inter-subsystem communication are also described. Along with providing
a foundation for design of dynamically reconfigurable real-time
software, we are also developing many modules for the control module,
device driver, and subroutine libraries. As the libraries continue to
grow, they will form the basis of code that can eventually be used by
future R&A applications. There will no longer be a need for developing
software from scratch for new applications, since many required modules
will already be available in one of the libraries.

This report is available via anonymous FTP as follows:

Name: anonymous
Password: yourname@yourmachine
ftp> binary
ftp> cd /usr/chimera/public
ftp> get CMU_RI_TR_93_11.ps.Z
ftp> quit
% uncompress CMU_RI_TR_93_11.ps.Z
% lpr CMU_RI_TR_93_11.ps (must be a postscript printer)

For more information, 'finger chimera@cmu.edu'.


Continue to:

previous page: 9.6) Object-Oriented Technology ftp: 48 u++, C++ Trans. and Concry RTS
page up: Object-Oriented Technology FAQ
next page: 9.6) Object-Oriented Technology ftp: 50 Ada95 (compiler, GNU)