Специальное сообщение: Выбор ОСРВ
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)
Information
- Posted on 31.01.2010 22:00
- Просмотры: 3085