При разработке решения, которое требует операционной системы реального времени, какие преимущества будет иметь операционная система, такая как QNX или VxWorks, перед Linux?
Или, другими словами, поскольку эти операционные системы предназначены специально для встроенного использования в реальном времени - в отличие от Linux, который является более общей системой, которая может быть адаптирована для использования в реальном времени, - когда вам нужно будет использовать одну из эти операционные системы вместо Linux?
Я вообще не работал в режиме реального времени, так что возьми это с крошкой соли ...
Мне сказали, что есть две категории «реального времени»: жесткое в реальном времени и мягкое в реальном времени.
«Мягкий режим реального времени» неофициально означает «сделать это как можно быстрее». Я думаю, что Linux на современном процессоре хорош для такого рода вещей.
«Трудно в реальном времени» неофициально означает «сделать это в течение требуемого временного окна». Окно может быть довольно маленьким, миллисекунды или что-то. Системы управления полетом для крылатых ракет или ракет-носителей спутников кажутся каноническим примером. Системы управления производственными процессами могут также нуждаться в этом. Червь Stuxnet, по-видимому, вмешивался в системы, которые осуществляют такой контроль.
Вы бы использовали RTOS в последней ситуации. RTOS часто гарантирует доставку прерывания менее чем за столько инструкций, тактов или чего-либо еще.
Другое соображение может заключаться в том, что ОСРВ спроектирована, протестирована и / или «доказана», чтобы не использовать пространство стека без ограничений. Он может жить в определенном минимальном объеме памяти, и таких вещей, как «OOM Killer», не существует, потому что они доказуемо никогда не нужны. Некоторые черты раннего Фортрана происходят из этого типа требований. Когда вы компилировали программу на FORTRAN II, вы точно знали, сколько стека и кучи ей нужно, поскольку вы не могли выполнять рекурсию и не могли ничего динамически распределять.
Реально, второе соображение (гарантированное максимальное потребление памяти) может быть более важным в некоторых критически важных для безопасности приложениях, чем «гарантированная задержка прерывания 0,001 секунды».
Я также предположил бы, что, отбросив процесс выбора фигового листа поддержки словоблудия, вы обнаружите, что инженеры выбирают ОСРВ, потому что «требования говорят».
источник