Maruti 3.1 Release Announcement
Systems Design and Analysis Group
We are pleased to announce the availability of the Maruti 3.1 Hard
Real-Time Operating System and Development Environment.
Computer Science Department
University of Maryland at College Park
Maruti is a time-based operating system research project at the University
of Maryland. For the past several years we have implemented prototypes of
time-based systems as vehicles for further research in development and
scheduling of hard real-time systems. In addition to our in-house
investigations, Maruti has been used successfully by several research
Now, with Maruti 3.1, we are entering a new phase of our project. We have
an operating system suitable for field use by a wider range of users, and
we are embarking on the integration of our time-based, hard real-time
technology with industry standards and more traditional event-based soft-
and non-real-time systems. For this, we are greatly interested in the
feedback from users as to the direction of evolution of the system.
For the Maruti 3 project, we will be pursuing the integration of a POSIX
interface for soft and non-real-time applications, the use of Ada for
Maruti programming, support for asynchronous events and soft/non-real time
schedulers within the time-based framework, and heterogeneous Maruti
For this user-oriented phase of the project we will be making regular
releases of our software available to allow interested parties to track and
influence our development. To begin this phase we are making our current
base hard real-time operating system and its development environment
available. This is an initial test release.
The Maruti 3.1 embeddable hard real-time runtime system for distributed and
single-node systems includes the following features:
- The core Maruti runtime system is small - 14 KB code for the single
node core, 25 KB code for the distributed core.
- The core provides a calendar-based scheduler, threads, distributed
message passing using Time Division Multiplexed Access (TDMA) over the
network, and tight time synchronization between network nodes.
- Also included in the runtime system is a graphics library suitable for
system monitoring displays as well as simulations.
- Maruti runs on PC-AT compatible computers using the Intel i386 (with
i387 coprocessor), i486DX, or Pentium processors. Distributed
operation currently requires a 3com 3c507 ethernet card. The graphics
library supports standard VGA and Tseng-Labs ET-4000-based Super-VGA.
Support for other SVGA chipsets is forthcoming soon.
Maruti 3.1 includes a complete development environment for distributed
embedded hard real-time applications. The development environment runs on
NetBSD Unix and includes the following:
The Maruti/Virtual debugging environment - simulates the Maruti runtime
system within the development environment. The system clock in this
environment tracks virtual time, which can be sped up, slowed down in
relation to the actual time, or single-stepped or stopped. This allows
temporal debugging of the application. Within Maruti/Virtual traces of
the application scheduling and network traffic can be monitored in the
- The ANSI-C based Maruti Programming Language (MPL/C). MPL adds
modules, message passing primitives, shared memory, periodic functions,
message-invoked functions, and exclusion regions to ANSI C. MPL is
processed by a version of the GNU C compiler which has been modified to
recognize the new MPL features, and to output information about the
resources used by the MPL program.
- The Maruti Configuration Language (MCL). MCL allows the system
designer to specify the placement, timing constraints, and
interconnections of all the modules in an application. MCL is a
powerful interpreted C-like language, allowing complex, hierarchical
configuration specifications, including replication of components and
installation-site specific sizing of the application. The MCL
processor analyses the application graph for completeness, and
type-checks all connections.
- The Maruti Allocator/Scheduler. The Maruti allocation and scheduling
tool analyses the information generated by the MPL compiler and the MCL
integrator to find an allocation and scheduling of the tasks of a
distributed application across the nodes of a Maruti network. All
relative and global timing, exclusion, and precedence constraints are
taken into account in finding a schedule, as are the network speed and
- The Maruti Timing Trace Analyzer. The Timing Analyzer calculates
worst-case computation times from timing files output by the runtime
system. Computation times are calculated for each scheduling unit in
the application, and these times can be fed back into the
Allocator/Scheduler for more precise scheduling analysis.
- The Maruti Runtime Binder (mbind). One of the features of Maruti is
the late binding of an application to a particular runtime system. The
same application binaries can be combined with different system
libraries to build a binary customized for a particular application in
a particular setting. Only those portions of the system library needed
for that binding are included. Mbind manages this final step.
- The Maruti Application Builder (mbuild). Mbuild automates the process
of building an application by generating for the programmer a
customizable makefile that manages the complete process of compiling,
configuring, scheduling, and binding an application.
Maruti Home Page.
Any problems with this HTML document? Contact
Last modified: July 5, 1995.