Primitive concurrency and synchronization objects
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 types:
- 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 operations:start()
stop()
suspend()
resume()
You can provide your own implementations for these operations.
- 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.