GM is using Google’s AI chatbot to handle simple OnStar calls
Aug 10, 2023KRVN 880
Aug 05, 2023Dollar General shooting aligns with anniversary of racist violence of Ax Handle Saturday
Aug 09, 2023Ramaswamy supports full UFO disclosure: ‘We can handle the truth’
Aug 06, 2023Hampton Roads emergency crews on standby to handle potential impacts from Idalia
Aug 04, 2023What Is A Real
Your guide to choosing an RTOS for your next embedded system project.
A real-time operating system (RTOS) is an operating system with two key features: predictability and determinism. In an RTOS, repeated tasks are performed within a tight time boundary, while in a general-purpose operating system, this is not necessarily so. Predictability and determinism, in this case, go hand in hand: We know how long a task will take, and that it will always produce the same result.
RTOSes are subdivided into “soft” real-time and “hard” real- time systems. Soft real-time systems operate within a few hundred milliseconds, at the scale of a human reaction. Hard real-time systems, however, provide responses that are predictable within tens of milliseconds or less.
Taxonomy of operating systems
An RTOS is a type of operating system, but it is vastly different from the kind most consumers are familiar with. Operating systems in phones or personal computers are, comparatively, bloated with apps and features; they must be able to support anything the user might want to do today. An RTOS, on the other hand, is streamlined, meant to execute its tasks quickly and effectively. It is a fraction of the size, sometimes only a few megabytes (vs. more than 20 gigabytes), with a simple graphical interface, and it lacks many familiar features, such as a web browser.
An embedded system is a computer that is embedded into a larger machine — for example, the microcontroller on a robotic arm. In noncritical systems with some timeline flexibility, developers can use an open source general-purpose OS (GPOS) such as Linux. Linux is full featured, flexible, and well known. In a critical system (whether that means safety critical or mission critical), developers opt for real-time operating systems. The characteristics that set an RTOS apart are often essential to success. For instance, a robotic arm in a factory needs to be predictable and reliable, and it must be able to stop immediately when employees enter its area of operation. Variability can result in wasted resources, quality-control issues, or injury.
A robotic arm must be able to stop immediately when employees enter its area of operation.
Due to its benefits, a real-time operating system is most often used in an embedded system — that is, a system that operates behind the scenes of a larger operation. The RTOS usually has no graphical interface. Occasionally, multiple OSes are integrated simultaneously, to provide operational capability coupled with the usability of a general-purpose OS.
RTOSes are often in intelligent edge devices, also known as electromechanical edge or cyber-physical systems. This means that the device is both producing and operating upon data. So a car, for example, would be able to monitor its surroundings and act upon them instantaneously on its own. Such devices often couple artificial intelligence or machine learning, or both, with real-time components to increase the capabilities of the underlying structure.
An autonomous car needs to be able to monitor its surroundings and act upon them instantaneously on its own.
An RTOS is small, fast, responsive, and deterministic. This means that it will execute tasks quickly and efficiently, responding as expected every time. Due to the significance of its host device, the RTOS infrastructure is more secure and less likely to crash or fail. Finally, an RTOS is developer oriented, meaning that it continues to roll out updates that help users code more effectively.
Some companies try to produce their own RTOS in house, tailor-made for their project, instead of buying a commercial off-the-shelf operating system. This has some advantages: The operating system is designed specifically for the use case, and the company understands its mechanics and inner workings. However, this approach is often more expensive and more time-consuming, and developers who are not used to working on operating systems take a great deal of time to produce one. Using a commercial system is faster, easier, and brings the benefit of an experienced technical team that can answer questions and provide support. An operating system is a tool, much like a hammer or a drill. While you could make one — one that you would thoroughly understand and that might fit your project better — it would take a lot of time, without guarantees of performance or capability.
In applications that require reliable and repeatable actions, the RTOS is favored over its general OS counterpart. Especially in embedded or critical systems, where reliability and speed are essential, a real-time operating system is needed.
The RTOS industry is heavily influenced by developments in the computer hardware industry. When new developments, such as the use of multi-core technology, become common, OSes are updated to support them. Emerging technologies such as artificial intelligence, machine learning, and 5G are also under the scrutiny of the OS developer, since a changing industry means systems must support an array of use cases. OS architects must consider trends in software as well as hardware development. As the field changes and developer profiles pivot, updates must support new languages, new technologies, and new deployments.
Emerging technologies such as machine learning and 5G are under the scrutiny of the OS developer.
Aside from the minute details, two prevailing design philosophies affect RTOS design: monolithic kernel versus microkernel. These systems are differentiated by their structure; whereas monolithic kernel systems run in a single space, microkernel systems compartmentalize different components of the architecture.
In microkernel architecture, components are stored in separate “rooms,” which are independent from one another but share a similar space. A room can be renovated without impacting those around it. However, to get from one to another, you have to step through the doorway and head down the hall, which wastes time. Any action has to return to the kernel before it can move to the component it references, meaning some operations take much longer than necessary.
In a monolithic system, there are no “walls” between the rooms, so you can step from one to another much more quickly. Rather than implementing a small kernel, monolithic kernels provide services of their own as well as regulating those of other areas. With exceptions, operations are executed in the kernel space, removing the recurrent need to return to the kernel and improving speed and performance. However, making a change in one area could have ramifications for the entire system.
RTOSes can be found in countless products around the world, with VxWorks alone powering more than two billion devices. Systems from car engines to deep-space telescopes to helicopter guidance systems to the Mars rovers use embedded systems that run a real-time operating system.
Expectations for embedded systems cascade down to the operating systems that power them. Real-time operating systems must keep pace with innovation and embrace modern development practices. This means being compatible with the frameworks, languages, and methodologies embraced by the new generation of embedded system developers, while allowing no compromise in terms of security, safety, performance, or reliability.
Innovative advancements increasing performance, connectivity, and design cycles are starting to make even new products obsolete. This raises the question of how to handle legacy systems. It’s not financially viable to keep recoding embedded applications. System makers, on the other hand, would prefer to use existing code as much as possible, especially when investment has already been made to certify software.
Advances in multi-core–based hardware platforms have enabled the consolidation of embedded systems and applications. With a single chip now able to contain any number from 2 to 64 CPUs, it is possible to reduce the cost, size, and weight of the final shipped product.
Virtualization is also accelerating development of embedded systems. Multiple embedded systems can now run, in virtualized form, on a hypervisor on top of a single piece of hardware. This is critical for manufacturers who want to maximize their investment in existing IP while providing a bridge from legacy applications to new platforms.
Aside from in-house RTOS options, developers can choose to use open-source or community-based operating systems. While these provide some of the benefits of a real-time operating system, they fall short in other key areas. Larger deployments often make use of boards costing hundreds, thousands, or even millions of dollars, which means developers are investing heavily in hardware. Problems encountered while implementing an open-source system could quickly push deadlines and stretch budgets. Open source systems also lack organized backing, which can result in missing documentation or unresolved glitches. A commercial system, on the other hand, comes with the benefits of an organized, professional engineering team that will help solve issues or provide explanations.
A commercial system comes with the benefits of an organized, professional engineering team.
If there is a need for safety certification, leveraging a commercial RTOS can make it easier and more cost-effective to achieve, while reducing schedule risk. In an evaluation for safety certification, the commercial RTOS must provide certification evidence pages or safety profiles for the specific certification your business requires.
Commercial RTOSes have an extensive range of board support packages (BSPs) to assist with board bring-up and design. These software kits make it quick and easy to use an RTOS with specific types of hardware. At Wind River®, we offer the most extensive range of BSPs in the embedded software industry. Each of our packages is tested and validated for seamless interoperability to help you accelerate your development process and innovate your design.
Your business needs, cost structure, and budget can all impact your decision.
While the cost of a commercial RTOS may be a big objection, one must also consider its overall benefits. These could be competitive advantage, time-to-market, cost savings, risk reduction, and peace of mind. It is important to develop and test the business value to determine whether these benefits outweigh the cost.
When considering a commercial RTOS, investigate the option of royalty payments through a production license (PL) model vs. an up-front charge. The PL model is shared risk in that it helps create a financial incentive to make your business successful. Your business needs, cost structure, and budget can all impact your decision.
Long-term performance, security, and feature support are also factors in selecting a commercial RTOS. Some example areas to check include preserved API compatibility and POSIX® compliance. Learning how much the core OS kernel is expected to change in the near future can help you predict how much effort will be required to upgrade or roll back versions. There could also be migration considerations around networking and BSPs, and it is critical that the chosen option has the documentation and expert support necessary for your success.
VxWorks is the industry’s most trusted and widely deployed RTOS for critical embedded systems that must be safe and secure. It delivers a proven, real-time, and deterministic runtime combined with a modern approach for development. Regardless of the industry or device type, companies rely on the VxWorks pedigree of security, safety, high performance, and reliability.
At Wind River, our family of products for embedded systems expands beyond just our commercial VxWorks RTOS solution. VxWorks may be better suited for projects that require certification, have IP concerns, cannot use GPL code, and/or require specific customization support from our IP services. We also offer Wind River Linux if there is unsupported architecture in your development. All of our products are backed by our award-winning global customer support and IP services to help you meet your business and program goals.
Wind River products and services work together to support differentiated system designs.
By submitting this form you agree that your personal information will be used by Wind River to process this request and send you further information about Wind River products and services pursuant to our privacy notice located here: windriver.com/company/terms/privacy.
Thank you for your interest.
Determinism:High performance:Safety and security:Priority-based scheduling:Small footprint: