Статья
Версия для печати
Обсудить на форуме
Special Report: Choosing an RTOS



Специальное сообщение: Выбор ОСРВ
Michael Barr
Майкл Барр

Embedded.com

Собираетесь приобрести ОСРВ? Эта статья дает общее представление о  системах реального времени, и как выбрать одну из них для вашего проекта. Вы так же найдете список производителей и их продукцию, и намек сравнить их на embedded.com Byers Guide.

Инженеры часто используют выражение реальное время в описании вычислительных проблем, для которых запоздалый ответ так же плох, как и неверный. Эти проблемы, говорят, имеют конечный срок, и встроенные системы часто работают в условиях таких ограничений. Например, если встроенное программное обеспечение, которое управляет антиблокировкой тормозов, пропустит один из своих предельных сроков отклика, вы можете попасть в аварию. Таким образом, это чрезвычайно важно чтобы разработчики встроенных систем реального времени знали все, что они могут о поведении и производительности своего аппаратного и программного обеспечения.

Большую часть своего времени разработчики систем реального времени проводят, заботясь о производительности в наихудшем случае. Они должны постоянно задаваться таким вопросом как: каково наихудшее время между нажатием человеком педали тормоза и приходом сигнала прерывания в процессоре? Какая наихудшая задержка прерывания? И каково наихудшее время ответа программного обеспечения запускающего механизм торможения. Среднее или ожидаемое значение просто не будут удовлетворять.

Большинство коммерческих встраиваемых операционных систем, доступных в настоящее время, разработаны для возможного использования в системах реального времени. В идеальном случае их наихудшие характеристики хорошо понимаемы и документированы. Для того чтобы заработать отличительный знак операционная система реального времени (ОСРВ), операционная система должна быть детерминированной, и иметь гарантированное наихудшее время задержки прерывания и переключения контекста. Проанализировать характеристики программного обеспечения в наихудшем случае, используя такой метод как анализ монотонности оценки, можно получив  характеристики, соответственные приоритеты задач и прерываний в вашей системе.

Операционная система называется детерминированной, если наихудшее время выполнения каждого из системных вызовов поддаётся измерению. Производитель операционных систем, который серьезно воспринимает поведение своего продукта в реальном времени, обычно публикует информацию, предоставляющую минимальное, среднее и максимальное количество тактовых отсчетов, необходимых для каждого системного вызова. Для разных процессоров, эти числа могут отличаться, но разумно предположить, что если алгоритм детерминистичен на одном процессоре, то, тоже самое будет и на другом. (Фактические времена, тем не менее, могут различаться.)

Задержка прерывания это полное время от прибытия сигнала прерывания в процессор до старта соответствующей подпрограммы обработки прерывания (ISR). Когда происходит прерывание, процессор должен выполнить несколько шагов, прежде чем приступить к выполнению ISR. Первым делом, процессор должен закончить выполнение текущей команды. После этого, должно произойти распознавание типа прерывания. Это происходит аппаратно и не замедляет или приостанавливает выполнение текущей задачи. В завершении, и только в том случае, если прерывания разрешены, текущее состояние процессора сохраняется и запускается ISR, связанная с этим прерыванием.

Конечно, если прерывания всегда запрещены (скажем в пределах системного вызова), наихудшая задержка прерывания увеличивается на максимальное количество времени, в течение которого они отключены. Каждая операционная система должна внутренне запрещать прерывания в отдельных местах и на разные промежутки времени, поэтому очень важно знать каковы требования системы. В одном проекте реального времени может потребоваться гарантированный ответ на прерывание за 1 мкс, в то время как в другом может потребоваться только 100 мкс.

Третьей характеристикой операционной системы реального времени является количество времени необходимого для выполнения переключения контекста. Данный параметр важен потому, что представляет накладные расходы для всей системы в целом. Например, представим, что среднее время выполнения любой задачи, до того как она будет блокирована, составляет 100 мс и время переключения контекста тоже составляет 100 мс. В этом случае, половина процессорного времени полностью тратится на подпрограмму переключения контекста!

Повторюсь, нет магических чисел, и фактические времена обычно зависят от процессора, так как они зависят от количества регистров, которые должны быть сохранены и где. Обязательно получите данную информацию от любого производителя операционных систем, программное обеспечение которых, вы подумываете использовать. Таким путем вы избежите неожиданных неприятностей. 

Процесс выбора

Принимая во внимание стоимость времени разработки в наше время, несколько тысяч долларов за коммерческую ОСРВ - это не дорого. Большое разнообразие операционных систем удовлетворяет большинству проектам и наметкам. Смотрите список производителей, следующий за этой статьёй, или посетите www.embedded.com/bg для более детальной информации по их продуктам.

Коммерческие операционные системы образуют непрерывный диапазон функциональности, эксплуатационных качеств и цен. Те, что на нижнем конце спектра предлагают только базовый вытесняющий планировщик и немного других ключевых системных вызовов. Подобные операционные системы обычно дешевы, поставляются с исходными кодами, которые вы можете модифицировать, и не требуют оплаты каких-либо отчислений.

Операционные системы на другом конце спектра обычно содержат уйму выполняемых функций сверх базового планировщика. Данные операционные системы могут быть очень дорогими, стартовая цена находится в диапазоне от 10000$ до 50000$ и плюс обязательные отчисления за каждую копию, зашитую в ROM. Тем не менее, такая цена часто включает бесплатную техническую поддержку и обучение, а также набор средств разработки.

Между двумя этими крайностями находятся системы, которые имеют умеренные цены и/или отчисления, но не содержат исходных кодов; техническая поддержка может стоить дополнительных денег. Большинство коммерческих операционных систем попадают в эту категорию.

При таком разнообразии операционных систем и выбираемых свойств, может быть не просто решить какая из них лучше всего подходит вашему проекту. Попробуйте поставить на первое место используемый процессор, характеристики реального времени и бюджетные требования. Это критерии, которые вы не можете изменить, поэтому их можно использовать для уменьшения области поиска до более маленького набора продуктов. Потом запросить у производителей оставшихся операционных систем более детальную техническую информацию.

В данное время, многие делают свой выбор, основываясь на совместимости с выбранным кросс-компилятором, отладчиком и другими средствами разработки. Но это действительно ваше дело решать, какие дополнительные фишки вам более важны. Не важно, что вы решите купить, основной стержень будет почти тем же самым. Различия в основном будут измеряться в количестве поддерживаемых процессоров, минимальных и максимальных требованиях к памяти, возможности добавлять расширяющие программные модули (например, стеки сетевых протоколов, драйвера устройств, файловая система для flash) и совместимости с системами разработки сторонних производителей.

Наилучшим повод выбрать коммерческую операционную систему является выгода использования чего-то, что хорошо оттестировано, более надежно, чем ядро собственной разработки. Таким образом, одной и изюминок, которые вы должны найти в производителе вашей операционной системы  опыт.

Список ОС РВ
  • 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)

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

http://www.aonix.com/

RAVEN
Applied Dynamics
International
3800 Stone School Rd.
Ann Arbor, MI 8108
United States
(734) 973-1300
http://www.adi.com/
RTexec    
ARC International
2025 Gateway Place, Ste. 140
San Jose, CA 95110
United States
(408) 437-3400
http://www.arc.com/
Precise/MQX    
Ardro Engineering
431 Ohio Pike, Ste. 210N
Cincinnati, OH 45255
United States
(800) 369-1009
http://www.ardro.com/
Spartos
Auriga
1 Overlook Dr., Unit 2
Amherst, NH 03031
United States
(603) 673-300
http://www.auriga.com/
Starlight Linux    
Avocet Systems
P.O. Box 490
Rockport, ME 04856
United States
(800) 448-8500
http://www.avocetsystems.com/
AvSYS Real-Time
Blackhawk
3 Eves Dr., Ste. 316
Marlton, NJ 08053
United States
(877) 983-4514
http://www.blackhawk-dsp.com/
Blackhawk OS
Blunk Microsystems
6576 Leyland Park Dr.
San Jose, CA 95120
United States
(408) 323-1758
http://www.blunkmicro.com/
TargetOS    
CMX Systems,
12276 San Jose Blvd., Ste. 119
Jacksonville, FL 32223
United States
(904) 880-1840
http://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
http://www.datalight.com/
ROM-DOS
DSP OS
327 Dahlonega Rd., Ste. 1801A
Cumming, GA 30040
United States
(678) 208-2250
http://www.dspos.com/
Fusion RTOS    
EBSnet
39 Court St.
Groton, MA 01450
United States
(800) 428-9340
http://www.ebsnetinc.com/
RTKernel-RISC    
esmertec
Lagerstrasse 14
Duebendorf, 8600
Switzerland
+41 1 823 89 00
http://www.esmertec.com/
Jbed
ETAS
3021 Miller Rd.
Ann Arbor, MI 48103
United States
(888) 382-7462
http://www.etasinc.com/
ERCOSEK    
Express Logic
11423 W. Bernardo Ct.
San Diego, CA 92127
United States
(888) THREADX
http://www.expresslogic.com/
ThreadX    
Eyring
6912 S. 185 W.
Midvale, UT 84047
United States
(800) 937-7367
http://www.eyring.com/
Eyrx, PDOS
EUROS Embedded Systems
Campestrasse 12
Nuremberg D-90419
Germany
+49-911-300328-0
http://www.kaneff.de/
EUROS    
FORTH
5155 W. Rosecrans Ave., Ste.1018
Hawthorne, CA 90250
United States
(800) 55-FORTH
http://www.forth.com/
pF/x    
Fujitsu Microelectronics
3545 N. First St.
San Jose, CA 95134
United States
(800) 866-8608
http://www.fujitsumicro.com/
REALOS
Green Hills Software
30 W. Sola St.
Santa Barbara, CA 93101
United States
(805) 965-6044
http://www.ghs.com/
INTEGRITY    
HighTec EDV-Systeme
Feldmannstr. 98
Saarbruecken, 66119
Germany
+49 (0)681 92613-0
http://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
http://www.incantationsystems.com/
TxOS -- Titanic
Integrated Chipware
1861 Wiehle Ave., Ste 300
Reston, VA 20190
United States
(888) 430--2447
http://www.chipware.com/
icWORKSHOP    
JK microsystems
1403 Fifth St., Ste. D
Davis, CA 95616
United States
(530) 297-6073
http://www.jkmicro.com/
eRTOS    
JMI Software Systems
Box 237
Dover, NH 03821
United States
(408) 287-7090
http://www.jmi.com/
PSX, C Executive
KADAK
206 - 1847 West Broadway Ave.
Vancouver, BC V6J1Y5, Canada
(604) 734-2796
http://www.kadak.com/
AMX    
Keil Software
1501 10th St., Ste. 110
Plano, TX 75074
United States
(800) 348-8051
http://www.keil.com/
RTX51, RTX51 Tiny, RTX166, RTX166 Tiny    
Lantronix
15353 Barranca Pkwy.
Irvine, CA 92618
United States
(949) 453-3990
http://www.lantronix.com/
SuperTask, TronTask3.0
Lineo
390 S. 400 W.
Lindon, UT 84042
United States
(800) 490-9448
http://www.lineo.com/
Embedix RT    
LiveDevices
The Innovation Centre
York Science Park
York, England Y010 5DG
United Kingdom
+44 1904 562580
http://www.livedevices.com/
Realogy Real-Time Architect    
LynuxWorks
2239 Samaritan Dr.
San Jose, CA 95124
United States
(800) 255-5969
http://www.lynuxworks.com/
LynxOS, BlueCat Linux
Mentor Graphics
8005 SW Boeckman Rd.
Wilsonville, OR 97070
United States
(800) 547-3000
http://www.mentor.com/
VRTX
See also Accelerated Technology    
Metrowerks/Motorola
9801 Metric Blvd.
Austin, TX 78758
United States
(512) 997-4700
http://www.metrowerks.com/
OSEKturbo    
Micrium
949 Crestview Circle
Weston, FL 33327-1848
United States
(954) 217-2036
http://www.micrium.com/
mC/OS-II
Micro Digital
2900 Bristol St. #G-204
Costa Mesa, CA 92626
United States
(800) 366-2491
http://www.smxinfo.com/
pmDOS, smx/smx++, PSMX Portable smx    
Microsoft
One Microsoft Way
Redmond, WA 98052
United States
(425) 882-8080
http://www.microsoft.com/
Windows CE .NET, Windows XP Embedded    
MODCOMP
1650 W. McNab Rd.
Ft. Lauderdale, FL 33309 U.S.A.
(954) 974-1380
http://www.modcomp.com/
REAL/IX PX
MontaVista Software
1237 East Arques Ave.
Sunnyvale, CA 94085
United States
(408) 328-9200
http://www.mvista.com/
MontaVista Linux    
On Time Software
88 Christian Ave.
Setauket, NY 11733
United States
(888) 667-8200
http://www.on-time.com/
On Time RTOS-32, RTKernel    
OnCore Systems
795 Main St.
Half Moon Bay, CA 94019
United States
(866) 4-ONCORE
http://www.oncoresystems.com/
Linux for Real-Time, OnCore OS
OSE Systems
1731 Technology Dr.
San Jose, CA 95110
United States
(866) 844-RTOS
http://www.ose.com/
OSE RTOS    
Pumpkin
750 Naples St.
San Francisco, CA 94112
United States
(415) 584-6360
http://www.pumpkininc.com/
Salvo    
QNX Software Systems
175 Terence Matthews Crescent
Kanata, ON K2M 1W8
Canada
(800) 676-0566
http://www.qnx.com/
QNX, Neutrino
Quadros
275 Grove St., Ste. 2-400
Newton, MA 02466
United States
(866) 879-QUAD
http://www.quadros.com/
RTXC    
RadiSys
5445 NE Dawson Creek Dr.
Hillsboro, OR 97124
United States
(800)950-0044
http://www.radisys.com/
Microwave OS-9    
Red Hat
2600 Meridian Pkwy.
Durham, CA 27713
United States
(866)-2REDHAT, x3004
http://www.redhat.com/
eCos, Red Hat Embedded
REDSonic
1740 E. Garry Ave., #212
Santa Ana, CA 92705
United States
(866) 899-1688
http://www.redsonic.com/
REDICE-Linux    
SEGGER Microcontroller System
Kleinhьlsen 4
Hilden, NRW 40721
Germany
+49-2103-8958-99
http://www.segger.com/
embOS    
SKY Computers
27 Industrial Ave.
Chelmsford. MA 01824
United States
(800) 486-3400
http://www.skycomputers.com/
SKYmpx
The SCO Group
355 S. 520 W., Ste, 100
Lindon, UT 84042
United States
(801) 426-5001
http://www.sco.com/
DR-DOS 7.03    
Softools
81 Norwood Rd.
West Hartford, CT 06117
United States
(860) 236-4201
http://www.softools.com/
TurboTask, QuickTask    
TenAsys
1600 NW Compton Dr., Ste. 104
Beaverton, OR 97006
United States
(877) 277-9189
http://www.tenasys.com/
iRMX III, iRMX for Windows, INtime for Windows
Texas Instruments
12500 TI Blvd.
Dallas, TX 75243
United States
(800) 477-8924
http://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
http://www.timesys.com/
TimeSys Linux/RT, Real-Time Mach
TTTech Computertechnik
Schoenbrunnerstrasse 7
Vienna, A-1040
Austria
+43 1 585 34 34 0
http://www.tttech.com/
TTPos    
VenturCom
5 Cambridge Center
Cambridge, MA 02142
United States
(617) 661-1230
http://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
http://www.wasabisystems.com/
NetBSD Embedded
Wind River
500 Wind River Wy.
Alameda, CA 94501
United States
(800) 545-WIND
http://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
http://www.rtems.com/
RTEMS


Автор: NeilPride
Версия для печати
Обсудить на форуме