Concurrency
UML supports specification of the concurrency at the class level;
standard UML distuinguishes between sequential and active classes:
When you specify sequential or active concurrency, you actually specify if the class should run in its own OS task or not.
In non-AUTOSAR RXF implementations, the RXF uses a message queue per OS task to send a UML event to an active class.
An AUTOSAR OS does not support a message queue: the ARXF-CP uses its own event queue per task.
Sequential Classes
All sequential classes run in the so-called swc task.
This is a task which is used by the structured class used for an AUTOSAR SWC.
If you add a class, by default it will be a sequential class. Any event which must be handled by this class is placed in a FIFO queue when sent.
This single queue is used by all sequential classes.
Active Classes
An active class is a class which has its dedicated OS task assigned. A task for an active class has its own UML event queue.
Each active class uses a runnable which serves as UML event dispatcher, which can be triggered by the RTE when an event is placed into its event queue.
When the concurrency of a class is set to active, you must add this event dispatcher runnable to the SW-C where it belongs to.
This runnable must have a eventDispatcherActiveClass stereotyped dependency to the active class which event queue it handles. See Profiles.