Static architectures are often used in hard real-time and
safety-critical applications with memory constraints. IBM® Rational® Rhapsody® provides
support for applications without memory management and those applications
in which non-determinism and memory fragmentation would create problems
by completely avoiding the use of the general memory management (or
heap) facility during execution (after initialization). This support
is a typical requirement of safety-critical systems.
Rational Rhapsody can
avoid the use of the general heap facility by creating special allocators,
or local heaps, for designated classes. The local heap is a preallocated,
continuous, bounded chunk of memory that has the capacity to hold
a user-defined number of objects. Allocation of local heaps is done
through a safe and simple algorithm. Use of local heaps is important
for events and triggered operations.
Rational Rhapsody applications
implicitly and explicitly result in dynamic memory operations in the
following cases:
- Event generation (implicit) means optionally
resolved through local heap
- Addition of relations means resolved by
implementing with static arrays (dynamic containers remain dynamic)
- Explicit creation of application objects via
the new operator means resolved through local heap if the application
indeed dynamically creates objects
You can specify whether local heaps apply to all
or only some classes, triggered operations, events, and thread event
queues.