The Giotto system is a programming methodology for
embedded control systems running on possibly distributed platforms.
The Giotto system consists of a time-triggered programming language, a
compiler, and a runtime system. Giotto aims at hard real-time
applications with periodic behavior.
The Giotto Language and Compiler
The Giotto programming language provides an abstract programmer's
model. Giotto strictly separates the platform-independent
functionality and timing concerns from platform-dependent scheduling
and communication issues. The time-triggered predictability of Giotto
makes it particularly suitable for safety-critical applications with
hard real-time constraints.
The Runtime System
The runtime system is composed of two virtual machines. The first one
is called Embedded Machine (E Machine) and handles the interaction with
the environment (reactive). It interprets E code, which supervises
the execution of software tasks in response to physical events.
The other one is the Scheduling Machine (S Machine) and handles the
interaction with the running platform (proactive). It interprets S
code, which specifies the temporal order of task execution. Figure 1
shows how E and S machine interact with the physical environment,
software tasks, and hardware platform.
Fig 1. E Machine
and S Machine
The Giotto project has been supported by the Air Force Office
of Scientific Research, by the California MICRO program, by DARPA, by
the National Science Foundation, and by Wind River Systems.