Department of Computer Science
University of Maryland
College Park, Maryland 20742
Accomplishments for First Quarter, 1995
- GNU C based MPL processor completed. Previously MPL was implemented with
a preprocessor that generated C code. That implementation had numerous
limitations - in particular it could only estimate stack size
requirements because it could not predict what compiler temporaries would
be generated that used the stack. The new MPL processor is a
modification of the Gnu C compiler version 2.5.8. Memory usage
requirements are now known exactly, and more accurate control flow
analysis can be done.
- New multi-resource allocator/scheduler completed. The previous
single-machine scheduler has been replaced with a combined allocator and
scheduler that can distribute Maruti applications across many processors
sharing a communications bus. A simulated-annealing-based search
strategy is used to find a schedule that meets all allocation and
scheduling constraints specified by the application. Preemption is now
supported on a per-elemental-unit basis: no preemption is done by
default, but it can be turned on for certain threads in the application.
The allocator/scheduler generates a calendar for each processor and for
the communications bus.
- Release Engineering for late spring release. Much of our effort has been
directed at preparing for a June release of Maruti to interested
researchers. The new tools described above are being integrated and
tested with the rest of the system, bug fixes and improvements are being
made across the board, and documentation is being updated or filled in.
Accomplishments for Fourth Quarter, 1994
- Maruti/Standalone kernel implemented: An initial version of the Maruti
kernel is up and running. Previously Maruti had been implemented via a
modified Mach kernel (Maruti/Mach). Maruti/Standalone runs on the bare
PC hardware, allowing the full control over resources and timing needed
for embedded systems.
- Distributed kernel implemented: An initial version of the kernel support
for distributing Maruti applications was completed. Distributed Maruti
uses Time Division Multiplexed Access (TDMA) over ethernet for reliable
communication. The kernel support includes a specialized ethernet
driver, a time-synchronization protocol, and a communications agent to
transfer messages over the network.
- Scheduling demo developed: We reimplemented our popular track scheduling
demo using a new video driver that uses a standard VGA mode (640x480)
rather than the previous Super VGA (1024x768). The new demo also
calibrates itself to the system's speed so that uniform timing can be had
across different platforms. Using Maruti/Standalone, we are able to put
the demo on a floppy and give it away to interested parties. Please contact
the Maruti project to obtain a copy of the floppy demo.
- Maruti/Virtual environment: We implemented an initial version of our
Unix-based debugging environment. In this environment, Maruti programs
run in virtual real-time. The virtual time base can be controlled by the
users, allowing for temporal debugging of Maruti applications within the
- All three runtime environments (Maruti/Mach, Maruti/Standalone,
Maruti/Virtual) use the same application object code. The application's
code is bound with one of the runtime systems before execution.
- Maruti demos at DSSA Workshop: Maruti technology was demonstrated at the
DSSA Workshop at the end of November, 1994. All above items were included in
demos given at the meeting.
For more information contact: Dr. Ashok Agrawala <email@example.com>.
Any problems with this HTML document? Contact <firstname.lastname@example.org>.
Tue Jun 13 16:28:25 EDT 1995