8 Critical Considerations for RTOS Selection
A real-time operating system (RTOS) is typically an option for most embedded projects. But is it always necessary? To answer this, you must carefully analyze and understand what an application is mandated to deliver to determine whether using an RTOS is an “extra” or a project requirement.
Most embedded project programmers are not familiar with RTOS requirements and constraints. As a result, selection of an RTOS is often based on a programmer’s familiarity and comfort with the product as well as its performance. Unfortunately, this criteria is not usually sufficient. There are different RTOSs to select from that include open source RTOS, internally developed RTOS and commercial RTOS. Choosing the right one depends on the technical features and commercial aspects of the RTOS system.
- Scalability: Most RTOSs are scalable; only the required code is added to the final memory footprint. Therefore, finding granular scalability in an RTOS is important because it saves memory usage.
- Portability: An application may outgrow its hardware as product requirements increase. An RTOS with appropriate capabilities can be ported between specific target systems and processor architectures.
- Run time facilities: Run time facilities are kernel services like events handling, inter-task communication, interrupts and synchronizations. Different application systems have different requirement sets that require frequent RTOS comparison between the kernel-level facilities they provide.
- Run time performance: RTOS run time performance is governed by context switching time, interrupt latency and other kernel performance metrics. Run time performance consideration is ideal when an application’s performance assessment on an RTOS is prototyping performance critical aspects on standard hardware.
- Development tools: Sufficient development tool sets that include a compiler, performance profiler and debugger help in reducing the debugging and development duration as well as in improving coding reliability. Commercial RTOSs feature a complete set of tools that analyze and optimize an RTOS’s behavior while open source RTOSs do not have this feature.
- Cost: With new RTOS vendors emerging daily, cost should be a main consideration when selecting an RTOS. Some RTOS packages are offered as complete operating systems that include a real-time kernel, windowing systems, input and output manager, language interface libraries, a file system, networking, cross platform compilers and debuggers. Note that RTOS costs range from $70 to over $20,000. Some RTOS vendors may charge per target system based loyalties that range from $5 to $200 per unit.
- License: RTOS vendors offer different license models for customers to select from. For instance, a perpetual license allows clients to purchase an entire development set that charges annual maintenance fees that entitle them to upgrade and bug fixes. On the other hand, subscription models allow clients rent an RTOS set and pay annual fees for access renewal. The subscription model charges low technology acquisition fees where annual access renewal fees may increase after some years.
- Supplier longevity/ stability: Having a reliable and supportive supplier is important at ensuring prompt execution of projects. Establish supplier longevity to determine they offer consistent support.
Each of the above criteria should be considered when selecting the right real-time operating system for your requirements. Make sure to go beyond developer familiarity to choose the best RTOS for you.