Преимущества использования ОСРВ, такой как QNX или VxWorks, вместо Linux?

15

При разработке решения, которое требует операционной системы реального времени, какие преимущества будет иметь операционная система, такая как QNX или VxWorks, перед Linux?

Или, другими словами, поскольку эти операционные системы предназначены специально для встроенного использования в реальном времени - в отличие от Linux, который является более общей системой, которая может быть адаптирована для использования в реальном времени, - когда вам нужно будет использовать одну из эти операционные системы вместо Linux?

Джастин этир
источник

Ответы:

14

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

Если вы не можете изменить оборудование, то есть несколько ситуаций, когда вы вынуждены исключить Linux и использовать что-то другое:

  • Возможно, процессор даже не имеет MMU, что делает невозможным запуск Linux (кроме uClinux, и, насколько я знаю, uClinux не работает в режиме реального времени).
  • Возможно, процессор относительно медленный, и задержка прерывания в худшем случае в Linux не удовлетворяет некоторым жестким требованиям, и некоторые другие ОСРВ, настроенные на крайне низкую задержку прерывания в худшем случае, могут удовлетворить это требование.
  • Возможно, в системе очень мало оперативной памяти. Несколько лет назад для минимальной установки Linux требовалось около 2 МБ ОЗУ; минимальная настройка eCos (со слоем совместимости, позволяющим запускать некоторые приложения, изначально предназначенные для работы в Linux) требовала около 20 КБ ОЗУ.
  • Возможно, на вашем оборудовании нет порта Linux, и у вас недостаточно времени, чтобы портировать Linux, прежде чем вам понадобится запустить (каламбур!) Вашу систему. Многие из более простых ОСРВ для переноса на новое оборудование занимают гораздо меньше времени, чем Linux.
Дэвид Кэри
источник
Какой код переносим между различными ОСРВ? Я также слышал, что некоторые решения работают сверху вниз (с использованием ОСРВ), в то время как другие построены снизу вверх (добавляя функции ОС к голому металлу постепенно, по мере необходимости).
CMCDragonkai
@CMCDragonkai: Программы, написанные для EL / IX API, могут работать на любой EL / IX-совместимой ОС. Программы, написанные для POSIX API, могут работать на любой POSIX-совместимой ОС. Программы, написанные для API uITRON, могут работать на любой uITRON-совместимой ОС.
Дэвид Кэри
@CMCDragonkai: Может быть, programmers.stackexchange.com будет более подходящим местом, чтобы задавать вопросы о различных ОСРВ?
Дэвид Кэри
8

Я вообще не работал в режиме реального времени, так что возьми это с крошкой соли ...

Мне сказали, что есть две категории «реального времени»: жесткое в реальном времени и мягкое в реальном времени.

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

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

Вы бы использовали RTOS в последней ситуации. RTOS часто гарантирует доставку прерывания менее чем за столько инструкций, тактов или чего-либо еще.

Другое соображение может заключаться в том, что ОСРВ спроектирована, протестирована и / или «доказана», чтобы не использовать пространство стека без ограничений. Он может жить в определенном минимальном объеме памяти, и таких вещей, как «OOM Killer», не существует, потому что они доказуемо никогда не нужны. Некоторые черты раннего Фортрана происходят из этого типа требований. Когда вы компилировали программу на FORTRAN II, вы точно знали, сколько стека и кучи ей нужно, поскольку вы не могли выполнять рекурсию и не могли ничего динамически распределять.

Реально, второе соображение (гарантированное максимальное потребление памяти) может быть более важным в некоторых критически важных для безопасности приложениях, чем «гарантированная задержка прерывания 0,001 секунды».

Я также предположил бы, что, отбросив процесс выбора фигового листа поддержки словоблудия, вы обнаружите, что инженеры выбирают ОСРВ, потому что «требования говорят».

Брюс Эдигер
источник