Comparing the top 3 real time operating systems
Critical applications rely on real time operating systems to provide reliability and dependability. The hard real time requirements provide precision which is essential in environments where reactions to events must be instantaneous. Latency or failure to react on time may lead to propagation of defects that in turn may lead to larger problems. Operating systems in such environments must provide means for ensuring timely execution of tasks and safe error recovery in order to fulfill dependability requirements.
The objective of this article is to gather information about existing open-source and commercially available real time operating systems for embedded environments and compare them.
Functional properties of real time operating systems
The broad definition of a real time operating systems is a software layer that allows a programmer to develop real time systems that can use underlying hardware in a deterministic manner. A real-time system is one that has deadlines that can't be missed. To achieve this, real time operating systems provide several facilities to the programmer to enable safe and timely execution of tasks. The main facilities are as follows :
Preemptive and prioritized task scheduling
Inter-task communication and resource sharing
An application is generally composed of several tasks that may or may not be running in parallel. In either case, the operating system must provide means to allow tasks to communicate data. Communication of data between tasks can be in preformed in several ways (message queues, pipes, sockets, etc..). Operating systems for workstations generally provide most of the available alternatives for inter-task and inter-process communication. However, in embedded operating systems, some inter-task communication technologies might be committed by design for simplicity reasons. It is therefore important to consider what inter-task communication capabilities when comparing real time embedded operating systems. Resource sharing allows tasks to use the same resource (memory location, device, files, etc..) in a coordinated manner in order to avoid dead lock situations and corrupt information. The operating system must provide means to ensure safe resources sharing. The comparison between real time embedded systems should also take into consideration the facilities provided for resource sharing.
Protocols support and available libraries
Depending on application needs, protocol support may be very important parameter when choosing a real time operating system. Operating systems that provide modular support for various communication protocols for example (IPv6, RTP, Mobile IP, etc..) are a better option for communication centric applications. In a similar way, operating systems that provide utility libraries that the application can use (e.g. Cryptographic libraries, Compression libraries, etc..) facilitate the implementation process and can reduce the development cost and time.
Non functional properties of real time operating systems
Besides the functional properties mentioned in the previous section, there are several attributes that should be taken in consideration between real time operating systems for embedded environments. These attributes are as follows :
Hardware support : Support of several hardware platforms allows the portability of the same application into different hardware platforms. For example, when the main micro-controller of a product is changed. If the operating system supports the new micro-controller, there will be no need to re implement the application.
Footprint : Operating systems that need less storage memory and less live memory to execute offer better development costs.
Licensing : Licenses that protect intellectual properties are more suitable for developing commercial products. For instance there should be no obligations to make publicly available source code that may divulge important intellectual properties that the company wishes to keep private.
Cost : In order to provide competitive prices, the overall cost of the product development should be minimized by preferring the operating system that costs less when choosing between equivalent alternatives.
Three popular real time operating systems for embedded environments
|
OS |
Licensing |
Scheduling/ Real time features |
Inter-task communication/ Synchronization |
Architecture support |
Protocols and libraries |
|
VxWorks |
Wind River (Commercial) |
VxWorks Tasks, POSIX Threads, Wind Task Scheduling , POSIX Scheduling |
Wind Message Queues, Pipes, POSIX 1003.13 Queues, POSIX 1003.13 semaphores, Wind semaphores, Interrupt Locks |
RM, Coldfire, Intel, MIPS, PowerPC, |
Supports large number of protocols and libraries, POSIX PS54 |
|
Windows CE |
Microsoft (Commercial) |
Win32® Priority-based time-slice thread scheduling |
Critical section, mutexes, events, semaphores, |
Intel x86, MIPS, ARM, Hitachi SuperH |
Supports large number of protocols and libraries |
|
RTLinux |
Wind River Free -> GPL, Wind River Real-Time Core -> Commercial |
Realtime applications as special kernel modules that can preempt Kernel, POSIX Threads |
POSIX 1003.13 semaphores, POSIX 1003.13 Queues, POSIX 1003.13 Shared memory |
Intel x86, MIPS, ARM, PowerPC, Alpha |
Linux, POSIX PS54 |
References
- “Wind River Platform for Industrial Devices”
http://www.windriver.com/products/product-notes/Platform-for-Industrial-Devices-ve-Note.pdf
- “VxWorks Programmer’s Guide”
http://www-cdfonline.fnal.gov/daq/commercial/vxworks_programmers_guide5.5.pdf
- “Windows CE Kernel Overview”
http://msdn.microsoft.com/en-us/library/aa909237.aspx
- “QNX Programming Overview”
http://www.qnx.com/developers/docs/6.3.2/neutrino/prog/overview.html
- “RTLinux HOWTO”
http://tldp.org/HOWTO/RTLinux-HOWTO.html
- “An Introduction to RTLinux”
http://www.linuxdevices.com/articles/AT3694406595.html
- “RTLinux V3.0: a POSIX 1003.13 PE51 OS with a POSIX 1003.13 PE54 thread”
http://www.opengroup.org/rtforum/feb2001/slides/yodaiken.pdf
- “Real-Time Applications with RTLinux”
http://www.linuxjournal.com/article/4444
- “FSMLabs releases RTLinux/Pro DevKit 1.1”
http://www.linuxdevices.com/news/NS4093730244.html
- “RTLinux/GPL”
- “Wind River's acquisition of RTLinux hard real-time Linux”
http://blogs.windriver.com/parkinson/2007/02/fsmlabs_rtlinux.html
| Labels: embedded |
|

Comment