Special Report: Choosing an RTOS
In the market for a commercial RTOS? This article provides an overview of RTOSes and how you can select the one for your project. You'll also find a list of vendors and their products and tips on comparing the products in the Embedded.com Buyer's Guide.
Engineers often use the term real-time to describe computing problems for which a late answer is as bad as a wrong one. These problems are said to have deadlines, and embedded systems frequently operate under such constraints. For example, if the embedded software that controls your anti-lock brakes misses one of its deadlines you might find yourself in an accident. So it's extremely important that the designers of real-time embedded systems know everything they can about the behavior and performance of their hardware and software.
The designers of real-time systems spend a large portion of their time worrying about worst-case performance. They must constantly ask themselves questions like: what is the worst-case time between the human operator pressing the brake pedal and an interrupt signal arriving at the processor? What is the worst-case interrupt latency? And what is the worst-case time for the software to respond by triggering the braking mechanism? Average or expected-case analysis simply will not suffice.
Most of the commercial embedded operating systems available today are designed for possible inclusion in real-time systems. In the ideal case, their worst-case performance is well understood and documented. To earn the distinctive title “Real-Time Operating System” (RTOS), an operating system should be deterministic and have guaranteed worst-case interrupt latency and context-switch times. Given these characteristics and the relative priorities of the tasks and interrupts in your system, it is possible to analyze the worst-case performance of the software using a technique such as rate monotonic analysis (see “Rate Monotonic Scheduling” by David Stewart and Michael Barr, March 2002, p.79).
An operating system is said to be deterministic if the worst-case execution time of each of its system calls is calculable. An operating system vendor that takes the real-time behavior of its product seriously will usually publish a datasheet providing the minimum, average, and maximum number of clock cycles required by each system call. These numbers may be different for different processors, but it is reasonable to expect that if the algorithm is deterministic on one processor it will be so on any other. (The actual times may differ, however.)
Interrupt latency is the total length of time from an interrupt signal arriving at the processor to the start of the associated interrupt service routine (ISR). When an interrupt occurs, the processor must take several steps before executing the ISR. First, the processor must finish executing the current instruction. Next, the interrupt type must be recognized. This is done by the hardware and does not slow or suspend the running task. Finally, and only if interrupts are enabled, the CPU's context is saved and the ISR associated with the interrupt is started.
Of course, if interrupts are ever disabled (say within a system call), the worst-case interrupt latency increases by the maximum amount of time that they are turned off. Each operating system will internally disable interrupts in several places and for different lengths of time, so it is important that you know what your system's requirements are. One real-time project might require a guaranteed interrupt response time as short as 1s, while another may require only 100s.
The third real-time characteristic of an operating system is the amount of time required to perform a context switch. This is important because it represents overhead across your entire system. For example, imagine if the average execution time of any task before it blocks is 100ms but that the context-switch time is also 100ms. In that case, fully one half of the processor's time is spent within the context-switch routine!
Again, there is no magic number and the actual times are usually processor-specific, since they are dependent on the number of registers that must be saved and where. Be sure to get these numbers from any operating system vendor you are thinking of using. That way, there won't be any last minute surprises.
Selection process
Considering the cost of engineering time these days, a few thousand dollars is a bargain for a commercial RTOS. A wide variety of operating systems are available to suit most projects and pocketbooks. See the vendor listings following this article or go to www.embedded.com/bg for more detailed product information.
Commercial operating systems form a continuum of functionality, performance, and price. Those at the lower end of the spectrum offer just a basic preemptive scheduler and a few other key system calls. These operating systems are usually inexpensive, come with source code that you can modify, and do not require payment of any royalties.
Operating systems at the other end of the spectrum typically include a lot of functionality beyond the basic scheduler. These operating systems can be quite expensive, though, with startup costs ranging from $10,000 to $50,000 and royalties due on every copy shipped in ROM. However, this price often includes free technical support and training and a set of integrated development tools.
Between these two extremes are the operating systems that have modest up-front costs and/or royalties, but do not include source code; technical support may cost extra. Most commercial operating systems fall in this category.
With such a variety of operating systems and features to choose from, it can be difficult to decide which is the best for your project. Try putting your processor, real-time performance, and budgetary requirements first. These are criteria that you cannot change, so you can use them to narrow the possible choices to a smaller set of products. Then contact all of the vendors of the remaining operating systems for more detailed technical information.
At this point, many people make their decision based on compatibility with their choice of cross-compiler, debugger, and other development tools. But it's really up to you to decide what additional features are most important for your project. No matter what you decide to buy, the basic kernel will be about the same. The differences will most likely be measured in processor support, minimum and maximum memory requirements, availability of add-on software modules (for example, networking protocol stacks, device drivers, and flash filesystems), and compatibility with third-party development tools.
The best reason to choose a commercial operating system is the advantage of using something that is better tested and, therefore, more reliable than a kernel you have developed inhouse. So one of the most important things you should be looking for from your OS vendor is experience.
Michael Barr is the editor-in-chief of Embedded Systems Programming. He holds BS and MS degrees in electrical engineering and is the author of Programming Embedded Systems in C and C++ (O'Reilly). E-mail him at .
RTOS Product Names
- AMX (KADAK)
- AvSYS Real-Time (Avocet Systems)
- Blackhawk OS (Blackhawk)
- BlueCat Linux (LynuxWorks)
- BSD/OS (Wind River)
- C Executive (JMI Software)
- CMX-RTX, CMX-Tiny+, CMX-RTXS (CMX Systems)
- Diamond (3L)
- DR-DOS 7.03 (The SCO Group)
- eCos (Red Hat)
- Embedix RT (Lineo)
- embOS (SEGGER)
- ERCOSEK (ETAS)
- eRTOS (JK Microsystems)
- EUROS (EUROS Embedded Systems)
- Eyrx (Eyring)
- Fusion RTOS (DSP OS)
- icWORKSHOP (Integrated Chipware)
- INTEGRITY (Green Hills Software)
- iRMX III, iRMX/INtime for Windows (TenAsys)
- Jbed (esmertec)
- Linux for Real-Time (OnCore Systems)
- LynxOS (LynuxWorks)
- mC/OS-II (Micrium)
- Microwave OS-9 (RadiSys)
- MontaVista Linux (MontaVista Software)
- NetBSD Embedded (Wasabi Systems)
- Neutrino (QNX Software Systems)
- Nucleus uiPLUS, Nucleus OSEK, Nucleus PLUS (Accelerated Technology/Mentor Graphics)
- On Time RTOS-32 (On Time Software)
- OnCore OS (OnCore Systems)
- OSE RTOS (OSE Systems)
- OSEKturbo (Metrowerks/Motorola)
- OSEKWorks (Wind River)
- PDOS (Eyring)
- pF/x (FORTH)
- PharLap Real-time ETS Kernel (VenturCom)
- pmDOS (Micro Digital)
- Precise/MQX (ARC International)
- PSMX Portable smx (Micro Digital)
- pSOSystem 2.5/3 (Wind River)
- PSX (JMI Software Systems)
- PXROS (HighTec EDV-Systeme)
- QNX (QNX Software Systems)
- Quadros (RTXC)
- QuickTask (Softools)
- RAVEN (Aonix)
- REAL/IX PX (MODCOMP)
- Realogy Real-Time Architect (LiveDevices)
- REALOS (Fujitsu Microelectronics)
- Real-Time OS: DSP/BIOS (Texas Instruments)
- Red Hat Embedded (Red Hat)
- REDICE-Linux (REDSonic)
- ROM-DOS (Datalight)
- RTexec (Applied Dynamics International)
- RTEMS (OAR)
- RTKernel (On Time Software)
- RTKernel-RISC (EBSnet)
- RTX for Windows (VenturCom)
- RTX51/RTX51 Tiny, RTX166/RTX166 Tiny (Keil)
- Salvo (Pumpkin)
- SKYmpx (SKY Computers)
- smx/smx++ (Micro Digital)
- Spartos (Ardro Engineering)
- Starlight Linux (Auriga)
- SuperTask (Lantronix)
- TargetOS (Blunk Microsystems)
- ThreadX (Express Logic)
- Tics (TICS Realtime)
- TimeSys Linux/RT, Real-Time Mach (TimeSys)
- TronTask3.0 (Lantronix)
- TTPos (TTTech Computertechnik)
- TurboTask (Softools)
- TxOS – Titanic (Incantation Systems)
- VRTX (Mentor Graphics)
- VSPWorks (Wind River)
- VxWorks, VxWorks AE (Wind River)
- Windows CE .NET, Windows XP Embedded (Microsoft)
RTOS Vendor List
The following vendors make commerical real-time operating systems (RTOSes). Product names are included directly below the vendor URLs and also are listed alphabetically in the sidebar. For detailed information about these RTOSes, visit the Embedded.com online Buyer's Guide at www.embedded.com/bg. You'll find the real-time operating systems category under software.
3L 104 (2F3) Spring Gardens Edinburgh EH8 8EY Scotland United Kingdom 44-131-662-4333 www.shen.myby.co.uk/threel Diamond |
Accelerated Technology (Embedded Division of Mentor Graphics) 720 Oak Circle Dr. E. Mobile, AL 36609 United States (800) 468-6853 http://www.acceleratedtechnology.com Nucleus uiPLUS, Nucleus OSEK, Nucleus PLUS |
Aonix 5040 Shoreham Place San Diego, CA 92122 United States (800) 97-AONIX www.aonix.com RAVEN |
Applied Dynamics International 3800 Stone School Rd. Ann Arbor, MI 48108 United States (734) 973-1300 www.adi.com RTexec |
ARC International 2025 Gateway Place, Ste. 140 San Jose, CA 95110 United States (408) 437-3400 www.arc.com Precise/MQX |
Ardro Engineering 431 Ohio Pike, Ste. 210N Cincinnati, OH 45255 United States (800) 369-1009 www.ardro.com Spartos |
Auriga 1 Overlook Dr., Unit 2 Amherst, NH 03031 United States (603) 673-2300 www.auriga.com Starlight Linux |
Avocet Systems P.O. Box 490 Rockport, ME 04856 United States (800) 448-8500 www.avocetsystems.com AvSYS Real-Time |
Blackhawk 3 Eves Dr., Ste. 316 Marlton, NJ 08053 United States (877) 983-4514 www.blackhawk-dsp.com Blackhawk OS |
Blunk Microsystems 6576 Leyland Park Dr. San Jose, CA 95120 United States (408) 323-1758 www.blunkmicro.com TargetOS |
CMX Systems, 12276 San Jose Blvd., Ste. 119 Jacksonville, FL 32223 United States (904) 880-1840 www.cmx.com CMX-RTX, CMX-Tiny+, CMX-RTXS |
Datalight 21520 30th Dr. SE, M/S 110 Bothell, WA 98021 United States (800) 221-6630 www.datalight.com ROM-DOS |
DSP OS 327 Dahlonega Rd., Ste. 1801A Cumming, GA 30040 United States (678) 208-2250 www.dspos.com Fusion RTOS |
EBSnet 39 Court St. Groton, MA 01450 United States (800) 428-9340 www.ebsnetinc.com RTKernel-RISC |
esmertec Lagerstrasse 14 Duebendorf, 8600 Switzerland +41 1 823 89 00 www.esmertec.com Jbed |
ETAS 3021 Miller Rd. Ann Arbor, MI 48103 United States (888) 382-7462 www.etasinc.com ERCOSEK |
Express Logic 11423 W. Bernardo Ct. San Diego, CA 92127 United States (888) THREADX www.expresslogic.com ThreadX |
Eyring 6912 S. 185 W. Midvale, UT 84047 United States (800) 937-7367 www.eyring.com Eyrx, PDOS |
EUROS Embedded Systems Campestrasse 12 Nuremberg D-90419 Germany +49-911-300328-0 www.kaneff.de EUROS |
FORTH 5155 W. Rosecrans Ave., Ste.1018 Hawthorne, CA 90250 United States (800) 55-FORTH www.forth.com pF/x |
Fujitsu Microelectronics 3545 N. First St. San Jose, CA 95134 United States (800) 866-8608 www.fujitsumicro.com REALOS |
Green Hills Software 30 W. Sola St. Santa Barbara, CA 93101 United States (805) 965-6044 www.ghs.com INTEGRITY |
HighTec EDV-Systeme Feldmannstr. 98 Saarbruecken, 66119 Germany +49 (0)681 92613-0 www.hightec-rt.com PXROS |
Incantation Systems Northern Ireland Science Park, Queen's Rd., Queen's Island, Belfast, Ireland United Kingdom +44 (0)28 90534560 www.incantationsystems.com TxOS — Titanic |
Integrated Chipware 1861 Wiehle Ave., Ste 300 Reston, VA 20190 United States (888) 430–2447 www.chipware.com icWORKSHOP |
JK microsystems 1403 Fifth St., Ste. D Davis, CA 95616 United States (530) 297-6073 www.jkmicro.com eRTOS |
JMI Software Systems Box 237 Dover, NH 03821 United States (408) 287-7090 www.jmi.com PSX, C Executive |
KADAK 206 – 1847 West Broadway Ave. Vancouver, BC V6J1Y5, Canada (604) 734-2796 www.kadak.com AMX |
Keil Software 1501 10th St., Ste. 110 Plano, TX 75074 United States (800) 348-8051 www.keil.com RTX51, RTX51 Tiny, RTX166, RTX166 Tiny |
Lantronix 15353 Barranca Pkwy. Irvine, CA 92618 United States (949) 453-3990 www.lantronix.com SuperTask, TronTask3.0 |
Lineo 390 S. 400 W. Lindon, UT 84042 United States (800) 490-9448 www.lineo.com Embedix RT |
LiveDevices The Innovation Centre York Science Park York, England Y010 5DG United Kingdom +44 1904 562580 www.livedevices.com Realogy Real-Time Architect |
LynuxWorks 2239 Samaritan Dr. San Jose, CA 95124 United States (800) 255-5969 www.lynuxworks.com LynxOS, BlueCat Linux |
Mentor Graphics 8005 SW Boeckman Rd. Wilsonville, OR 97070 United States (800) 547-3000 www.mentor.com VRTX See also Accelerated Technology |
Metrowerks/Motorola 9801 Metric Blvd. Austin, TX 78758 United States (512) 997-4700 www.metrowerks.com OSEKturbo |
Micrium 949 Crestview Circle Weston, FL 33327-1848 United States (954) 217-2036 www.micrium.com mC/OS-II |
Micro Digital 2900 Bristol St. #G-204 Costa Mesa, CA 92626 United States (800) 366-2491 www.smxinfo.com pmDOS, smx/smx++, PSMX Portable smx |
Microsoft One Microsoft Way Redmond, WA 98052 United States (425) 882-8080 www.microsoft.com Windows CE .NET, Windows XP Embedded |
MODCOMP 1650 W. McNab Rd. Ft. Lauderdale, FL 33309 U.S.A. (954) 974-1380 www.modcomp.com REAL/IX PX |
MontaVista Software 1237 East Arques Ave. Sunnyvale, CA 94085 United States (408) 328-9200 www.mvista.com MontaVista Linux |
On Time Software 88 Christian Ave. Setauket, NY 11733 United States (888) 667-8200 www.on-time.com On Time RTOS-32, RTKernel |
OnCore Systems 795 Main St. Half Moon Bay, CA 94019 United States (866) 4-ONCORE www.oncoresystems.com Linux for Real-Time, OnCore OS |
OSE Systems 1731 Technology Dr. San Jose, CA 95110 United States (866) 844-RTOS www.ose.com OSE RTOS |
Pumpkin 750 Naples St. San Francisco, CA 94112 United States (415) 584-6360 www.pumpkininc.com Salvo |
QNX Software Systems 175 Terence Matthews Crescent Kanata, ON K2M 1W8 Canada (800) 676-0566 www.qnx.com QNX, Neutrino |
Quadros 275 Grove St., Ste. 2-400 Newton, MA 02466 United States (866) 879-QUAD www.quadros.com RTXC |
RadiSys 5445 NE Dawson Creek Dr. Hillsboro, OR 97124 United States (800) 950-0044 www.radisys.com Microwave OS-9 |
Red Hat 2600 Meridian Pkwy. Durham, CA 27713 United States (866)-2REDHAT, x3004 www.redhat.com eCos, Red Hat Embedded |
REDSonic 1740 E. Garry Ave., #212 Santa Ana, CA 92705 United States (866) 899-1688 www.redsonic.com REDICE-Linux |
SEGGER Microcontroller System Kleinh¼lsen 4 Hilden, NRW 40721 Germany +49-2103-8958-99 www.segger.com embOS |
SKY Computers 27 Industrial Ave. Chelmsford. MA 01824 United States (800) 486-3400 www.skycomputers.com SKYmpx |
The SCO Group 355 S. 520 W., Ste, 100 Lindon, UT 84042 United States (801) 426-5001 www.sco.com DR-DOS 7.03 | Softools 81 Norwood Rd. West Hartford, CT 06117 United States (860) 236-4201 www.softools.com TurboTask, QuickTask |
TenAsys 1600 NW Compton Dr., Ste. 104 Beaverton, OR 97006 United States (877) 277-9189 www.tenasys.com iRMX III, iRMX for Windows, INtime for Windows |
Texas Instruments 12500 TI Blvd. Dallas, TX 75243 United States (800) 477-8924 www.ti.com Real-Time OS: DSP/BIOS |
TICS Realtime 3333 Bowers Ave., Ste. 130 Santa Clara, CA 95054 United States (408) 727-3100 www.cris.com/~Tics/ Tics |
TimeSys 4516 Henry St., Ste. 401 Pittsburgh, PA 15213 United States (888) 432-TIME www.timesys.com TimeSys Linux/RT, Real-Time Mach |
TTTech Computertechnik Schoenbrunnerstrasse 7 Vienna, A-1040 Austria +43 1 585 34 34 0 www.tttech.com TTPos |
VenturCom 5 Cambridge Center Cambridge, MA 02142 United States (617) 661-1230 www.vci.com PharLap Real-time ETS Kernel, RTX for Windows |
Wasabi Systems 104 W. 14th St., 4th Flr. New York, NY 10011 United States (646) 638-2424 www.wasabisystems.com NetBSD Embedded |
Wind River 500 Wind River Wy. Alameda, CA 94501 United States (800) 545-WIND www.windriver.com BSD/OS, OSEKWorks, pSOSystem 2.5, pSOSystem 3, VSPWorks, VxWorks, VxWorks AE |
OAR 4910-L Corporate Dr. Huntsville, AL 35805 United States (256) 722-9985 www.rtems.com RTEMS |
To compare product listings, go to the RTOS category in the Embedded.com Buyer's Guide at www.embedded.com/bg.