IBM Support

What is a static architecture?

Technote (FAQ)


What is a static architecture?


A static architecture is one that uses no dynamic memory allocation after initialization of the application.

Static architectures are often used in hard real-time and safety-critical applications with memory constraints. Rhapsody provides support for applications without memory management and those 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 is a typical requirement of safety-critical systems.

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 via a safe and simple algorithm. Use of local heaps is particularly important for events and triggered operations.

Rhapsody applications implicitly and explicitly result in dynamic memory operations in the following cases:

Event generation (implicit)—Optionally resolved via local heap
Addition of relations—Resolved by implementing with static arrays (dynamic containers remain dynamic)
Explicit creation of application objects via the new operator—Resolved via 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.

404AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor

Historical Number


Document information

More support for: Rational Rhapsody
General Information

Software version: Version Independent

Operating system(s): Platform Independent

Reference #: 1323613

Modified date: 23 November 2010