注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

dp: 生活的脚步,进步的点滴...

Cam、DSP、FPGA、PM、Life、More ...

 
 
 

日志

 
 

如何选择实时操作系统?  

2014-04-11 14:43:42|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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 mbarr@cmp.com.

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

 

  评论这张
 
阅读(561)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016