System objects

Sirius RTOS provides a comprehensive suite of system objects that represent various system resources. these objects facilitate task synchronization, critical section management, inter-task data exchange, and event notification. A summary of all available system objects is provided in the following section.

Available system objects

The table below details the fundamental system objects and their primary functions.

Object nameDescription
TasksTasks are the fundamental execution units of the system, enabling the concurrent execution of application code.
MutexesMutexes manage access to critical sections and include priority inversion avoidance mechanisms. They restrict resource access to a single task at any given time.
SemaphoresSemaphores function similarly to mutexes but are designed for critical sections where multiple tasks may require access while still necessitating priority inversion protection.
Counting semaphoresCounting semaphores control access to a pool of resources, allowing a specified number of tasks concurrent access. They offer higher performance than standard semaphores but do not support priority inversion avoidance.
EventsEvents are binary-state objects utilized for signaling specific system occurrences.
TimersTimers facilitate task synchronization based on specific points in time or recurring time intervals.
Shared memoriesShared memory objects manage and synchronize access to a dedicated memory buffer used for communication between multiple tasks.
Queue of pointersThe queue of pointers is a high-speed implementation for buffering a fixed number of messages, where each message size is limited to the PVOID type.
StreamsStream objects provide mechanisms for reading, writing, and managing continuous flows of binary data.
QueuesQueues provide FIFO (First In, First Out) data exchange between tasks. The message size and the maximum capacity of the queue are fixed at the time of creation.
MailboxesMailboxes are FIFO-based communication objects similar to queues, but they offer dynamic message sizing and quantities limited only by available system memory. Unless direct read-write is used, memory is dynamically allocated for each message and freed upon retrieval.
FlagsFlags are lightweight objects used for exchanging small amounts of status information. They allow individual bits to be set or reset and can return the state of modified flags.

SpaceShadow documentation