Primitive concurrency and synchronization object types
are defined outside of the system and cannot be modified. They are
external objects that are defined in a C framework package called OXF.
For this reason, code is not generated for them.
Among
these external objects is a
set of primitive object types that support concurrency and synchronization.
Such services are normally provided by common real‑time operating
systems. The concurrency and synchronization object types include
the following:
- Task objects - Are
distinguished from active
objects. With active objects, the framework is responsible for determining
how the object behaves (in terms of owning its own thread, event handler,
and so on). With task objects, however, you can define how you want
the task to behave.
Typical operations
on task objects include the following:
- Message queues - Support intertask
communication
between active objects.
- Semaphores -
Protect a shared resource by
allowing only a limited number of objects to hold a token (lock) on
a resource at a time. Both semaphores and mutexes are RTOS entities.
- Mutexes - Provide binary mutual exclusion
for a shared resource by allowing only one object to hold the token
at a time.
- Timer objects - Provide a
timing feature
that permits, for example, the output of a signal at repeatable intervals.
You create any of these object types in your
model
by selecting the appropriate stereotype. The primitive object types
typically have an iconized representation to support easier readability
of diagrams.