Sirius RTOS
Encyclopedia
Sirius RTOS is a next generation real-time operating system
developed and produced by SpaceShadow Company. It is designed to give high predictability and good performance in developing embedded
software for different platforms.
Sirius RTOS is a deterministic system that provides results in a bounded time, independently to the state and the number of objects used in the system that is specifically important when developing a real-time
application. An intuitive interface and high flexibility allows it to be used in both real-time and general-purpose applications.
It is widely configurable, designed to be used on different target platforms, ensuring energy efficiency and minimal processor
load. It can be applied in a broad range of embedded applications such as medical, telecommunication, robotics, automotive, aerospace and space industries.
running under single process
. The event-driven deterministic scheduler of the Sirius RTOS was designed particularly for real-time systems. The priority-based scheduling allows running ready tasks with the highest priority only. When tasks with the same priority are ready, the scheduler
uses the Round-Robin
algorithm to select a task that has not been run for the longest time. The scheduler can assign variable number of CPU time slices to each running task. Both priority and the time slice can be dynamically changed during the run time of the application.
s, exchange of data between tasks and event notification. The system objects available in Sirius RTOS are listed below:
Real-time operating system
A real-time operating system is an operating system intended to serve real-time application requests.A key characteristic of a RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter...
developed and produced by SpaceShadow Company. It is designed to give high predictability and good performance in developing embedded
Embedded system
An embedded system is a computer system designed for specific control functions within a larger system. often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal...
software for different platforms.
Sirius RTOS is a deterministic system that provides results in a bounded time, independently to the state and the number of objects used in the system that is specifically important when developing a real-time
Real-time computing
In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...
application. An intuitive interface and high flexibility allows it to be used in both real-time and general-purpose applications.
It is widely configurable, designed to be used on different target platforms, ensuring energy efficiency and minimal processor
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
load. It can be applied in a broad range of embedded applications such as medical, telecommunication, robotics, automotive, aerospace and space industries.
RTOS Features
- Full source code available
- On-line documentation
- Priority inversionPriority inversionIn computer science, priority inversion is a problematic scenario in scheduling when a higher priority task is indirectly preempted by a lower priority task effectively "inverting" the relative priorities of the two tasks....
avoidance by using priority inheritancePriority inheritanceIn real-time computing, priority inheritance is a method for eliminating priority inversion problems. Using this programming method, a process scheduling algorithm will increase the priority of a process to the maximum priority of any process waiting for any resource on which the process has a... - DeadlockDeadlockA deadlock is a situation where in two or more competing actions are each waiting for the other to finish, and thus neither ever does. It is often seen in a paradox like the "chicken or the egg"...
detection mechanism for mutexes and semaphores - Critical sectionCritical sectionIn concurrent programming a critical section is a piece of code that accesses a shared resource that must not be concurrently accessed by more than one thread of execution. A critical section will usually terminate in fixed time, and a thread, task or process will have to wait a fixed time to...
abandon control and auto-release feature - Dynamic priority change
- Waiting for multiple objects
- Waiting with timeouts
- Independent priority ordered queue of waiting tasks for each object
- Power saving (switching the processor clock off when no tasks are executed)
- Portability (code is separated from hardware dependent code)
- High scalability (from 5KB up to 30KB in full configuration)
- High performance
- ANSI C compatibility
Scheduling
All simultaneous jobs, executed in the system are represented by tasks. A task is similar to threadThread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
running under single process
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...
. The event-driven deterministic scheduler of the Sirius RTOS was designed particularly for real-time systems. The priority-based scheduling allows running ready tasks with the highest priority only. When tasks with the same priority are ready, the scheduler
Scheduling (computing)
In computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...
uses the Round-Robin
Round-robin
The term round-robin was originally used to describe a document signed by multiple parties in a circle to make it more difficult to determine the order in which it was signed, thus preventing a ringleader from being identified...
algorithm to select a task that has not been run for the longest time. The scheduler can assign variable number of CPU time slices to each running task. Both priority and the time slice can be dynamically changed during the run time of the application.
Available system objects
A system object represents a system resource that flexibly allows synchronizing tasks, managing critical sectionCritical section
In concurrent programming a critical section is a piece of code that accesses a shared resource that must not be concurrently accessed by more than one thread of execution. A critical section will usually terminate in fixed time, and a thread, task or process will have to wait a fixed time to...
s, exchange of data between tasks and event notification. The system objects available in Sirius RTOS are listed below:
- TasksTask (computers)A task is an execution path through address space. In other words, a set of program instructions that are loaded in memory. The address registers have been loaded with the initial address of the program. At the next clock cycle, the CPU will start execution, in accord with the program. The sense is...
- Mutexes
- SemaphoresSemaphore (programming)In computer science, a semaphore is a variable or abstract data type that provides a simple but useful abstraction for controlling access by multiple processes to a common resource in a parallel programming environment....
- Counting semaphores
- EventsEvent (computing)In computing an event is an action that is usually initiated outside the scope of a program and that is handled by a piece of code inside the program. Typically events are handled synchronous with the program flow, that is, the program has one or more dedicated places where events are handled...
- Timers
- Shared memoriesShared memoryIn computing, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on multiple separate processors...
- Queue of pointers
- Streams
- Queues
- Mailboxes
- Flags
External links
- SpaceShadow
- Sirius RTOS overview at SpaceShadow
- Sirius RTOS documentation at SpaceShadow
- http://www.militaryaerospace.com Real-time operating system software steals spotlight, takes center stage in mil-aero electronics development