Products

Which RTOS is best for you?

Questions that may help you to make an informed decision which RTOS is best for you:

Question Answer
Does the RTOS support dual mode? Most RTOSes don’t support dual mode. Dual mode means that part of the system is optimized for high data load which includes Digital Signal Processing. The other part supports the more traditional priority based thread handling. Q▪Kernel supports both in any mix so the developer can optimize his system without having to purchase a specific high data load system.
Is the application restricted by power consumption? An interrupt driven RTOS helps save power and extend battery life. However, an RTOS has one disadvantage - most RTOSes require a tick for time management. This causes the processor to be frequently activated which consumes additional power. Q▪Kernel is a tick-less RTOS and it optimizes power savings by splitting the timing into a human and processor time scale.
What is the tick granularity? Tick granularity specifies the smallest amount of time in which an RTOS can operate. Q▪Kernel is tick-less and the granularity is one processor cycle.
Does the RTOS disable interrupts? Most RTOSes disable interrupts to protect there internal structures. This could take hundreds of cycles and limits the response time significantly. Q▪Kernel uses a more advanced architecture and never disables interrupts.
Is the RTOS hard real-time? A quality RTOS should be deterministic and temporal correct. Q▪Kernel is hard real-time and optimizes deterministic behavior by implementing a zero interrupt latency mechanism and never disables interrupts.
How large is the memory footprint of the RTOS? A quality RTOS should minimize the memory footprint. Most competitors say they do but the proof is in the pudding. If they don’t implement an interrupt stack and don’t implement fiber support they still waste precious RAM.
Does the RTOS require you to write a prologue (entry) and epilogue (exit) for your interrupt handler? A quality RTOS should provide you with a MACRO to save you coding and testing time. Q▪Kernel support both the MACRO approach and the prologue/epilogue approach. A interrupt service routine is just a function and all stack switching is handled by Q▪Kernel so the developer can focus on the problem.
Does the RTOS support fibers? Most RTOSes do not support fibers because there architecture is old and not easy to change. Q▪Kernel with its next generation architecture supports fibers and threads for optimal RAM usage and speed.
Does the RTOS implements hardware stack protection? A quality RTOS should protect threads from overwriting memory by limiting its stack use in hardware. Q▪Kernel protects all thread stacks and the interrupt stack by manipulating the SPLIM register.
Does the RTOS support full set of scheduling policies? A quality RTOS will support Preemptive and Cooperative multi-threading and Round robin and Cooperative scheduling. Q▪Kernel supports all of the above.
Does the RTOS create objects dynamically at runtime and can it free objects later? A quality RTOS should be able to create objects, including threads, before and after the RTOS is started. It should also be possible to free-up objects that are not used anymore. Q▪Kernel objects are dynamic and can be dynamically allocated and de-allocated.
Does the RTOS use global pointers to objects? A quality RTOS should not use global pointers to objects. This can lead to corruption and requires management. Q▪Kernel objects are named and all pointers can be local (thread scope). A thread can be suspended until an object is created.
How does the RTOS synchronize with events? A quality RTOS should support multiple threads waiting on one event and a single tread waiting on multiple events. Q▪Kernel support all scenarios and allows all those operations in a blocking and non-blocking environment.
Does the RTOS integrate flexible with interrupts without disabling interrupts? Most RTOSes have problems with this requirement. They disable interrupts for a long time or only allow a very limited set of objects to signal. Q▪Kernels architecture circumvents this problem and allows all objects to be signaled from an interrupt.
Does the RTOS implement a separate internal and external clock? A quality RTOS should support two clocks. An external clock, controlled by an accurate crystal, that keeps track of the time and an internal RTOS clock that keeps track of the RTOS operations. Any difference between the clocks does not change the RTOS timing. Q▪Kernel supports not only two clocks but also provides services to synchronize them.
Does the RTOS implement a full set of software timers that can be used by multiple threads? A quality RTOS should support a full set of software timers. Q▪Kernel support an unlimited number of one-shot or periodic software timers that can be used by multiple treads.
Does the RTOS implement memory management? A quality RTOS should implement re-entrant memory management that is deterministic. Q▪Kernel memory management implements this to its full extend and it implements a hybrid form that is more flexible.
Does the RTOS provide exclusive access to shared resources? A quality RTOS should implement mutual exclusivity and counting semaphores. Q▪Kernel supports both and critical sections as another protection mechanism.
Does the RTOS have a mechanism to prevent priority inversion? A quality RTOS should prevent priority inversion. Q▪Kernel implements the priority inheritance architecture to prevent this.
What kind of objects does the RTOS implement to exchange data? A quality RTOS should at least implements message queues and pipes. Q▪Kernel supports both in a very flexible way. Messages can be variable in size and pipes can be byte or word wide so they can be used for all kind of drivers.
Does the RTOS come with source code? A quality company should provide the source code to large customers so the customer can minimize risk. The Q▪Kernel source code is available.
Does the RTOS supplier support the product? A quality company should support the product, extend it and offer consultancy services. Q▪Kernel comes with a 1 year support contract and offers consultancy services related to Q▪Kernel. The support is done by the actual developers so questions are answered quickly and professional.
Does the RTOS come with documentation? A quality RTOS should come with documentation. Q▪Kernel provides a very extensive User and Reference Manual and code examples.
Is the RTOS designed for the Microchip chip or is it converted from another environment? A quality RTOS must be designed for certain hardware architectures. Q▪Kernel is designed for the Microchip hardware so it can use the interrupt architecture and the compiler to its fullness.
Does the RTOS support centralized error handling? A RTOS that does not support centralized error handling requires more development time. Q▪Kernel throws errors and allows the developer to debug faster.
Does the RTOS support a consistent programming interface? The RTOS should be intuitive to use. The Q▪Kernel API uses standard naming conventions and most parameters are strongly typed so errors are found at compile time instead of run-time.
Does the RTOS support message use count? A RTOS should support a use count in the messages so the developer does not have to maintain a use count. Q▪Kernel manages the use of a message completely. Every thread and fiber maintains its own pointers and de-allocates the message when it is done with it. When all threads and fibers are done with the message the memory is returned to the pool.

Buy NOW!

Purchase Q▪Kernel-Pro Licenses and/or Pro support.

Downloads

Download the latest release of the Q▪Kernel source code and documentation.

FAQ

Get the answers to some common questions about Q▪Kernel

Email Support

For Q▪Kernel-Pro support contact us.