Sirius RTOS
Encyclopedia
Sirius RTOS is a next generation real-time operating system
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 inversion
    Priority inversion
    In 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 inheritance
    Priority inheritance
    In 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...

  • Deadlock
    Deadlock
    A 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 section
    Critical 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...

     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 thread
Thread (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 section
Critical 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:
  • Tasks
    Task (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
  • Semaphores
    Semaphore (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
  • Events
    Event (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 memories
    Shared memory
    In 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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK