14 Sep Real-time Operating Systems (RTOS)
RTOS – another fancy buzzword used by marketing to sell products, or a powerful software building block that reduces development effort and decreases time to market? RTOSes (Real Time Operating Systems), sometimes referred to as embedded operating systems, are becoming more commonplace. The major difference between an RTOS and a general purpose OS (i.e. Windows, Mac OS X, Linux) is that an RTOS exhibits deterministic timing. In a nutshell, this means that the execution times of operating system services are documented so that developers can guarantee timing requirements for the system.
Based on the phrasing of the opening question, you’ve probably already guessed the answer. An RTOS provides a host of benefits to embedded developers with a very reasonable memory footprint. At Key Tech, we find that these benefits generally justify the cost of an RTOS, particularly for medium and large-scale software projects.
Drivers & Software Stacks
Most RTOS implementations ship with board support packages (BSPs) for supported microcontrollers. BSPs provide low-level software support for most microcontroller functionality, which immediately benefits software schedule by cutting out the development and debug time typically spent on driver development.
Some RTOS vendors also provide software stacks for complex functionality, such as USB or Ethernet. These also cut out a lot of development and debug cost/time that would otherwise be spent on these modules. Most vendors today offer a la carte peripheral options so that the RTOS selection can be optimized for performance and cost.
Perhaps the most beneficial feature of modern day operating systems is the ability to run multiple programs at once, or at least give that appearance (depending on the underlying hardware architecture). RTOSes are no exception – they permit developers to easily separate the software into logical units, increasing the readability and maintainability, and improving the overall efficiency of the development effort.
Future feature additions also become easier – the developers can often write a new software module and execute it as a separate process in the OS. This directly translates to reduced cost and schedule.
Safety & Security
Software bugs are feared for their ability to crash the entire device, particularly in mission-critical and safety-critical situations. Typically, an RTOS includes a heavily tested and validated kernel (the core of the OS) that helps mitigate the effect of software failures by limiting their scope and preventing them from affecting the rest of the software. Several vendors provide RTOSes certified for military, avionics, and medical applications, such as Green Hills, Micrium, Wind River, Mentor Graphics, and QNX. Getting FDA 510(k) approval with an RTOS is becoming more common, and vendors can often provide documentation and procedures to assist you with that effort.
RTOS selection can be an overwhelming process, to say the least. What level of certification do you need? Does your application require a kernel optimized for speed, size, or something in between? Do you need the highest level of security, or do you want something a little more flexible to speed up software development? Based on your design requirements, vendors and designers can work together to select the best RTOS for your application.