Почему не каждая ОС в режиме реального времени? - PullRequest
12 голосов
/ 28 марта 2011

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

Ответы [ 4 ]

10 голосов
/ 28 марта 2011

RTOS обычно обмениваются пропускной способностью и функциями для предсказуемости и управляемости. Обычное определение «в реальном времени» применяется людьми как «детерминистический»; Вы не можете иметь детерминизм, не заплатив за это.

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

Да, можно создавать гибриды, такие как потоки Windows или даже Linux в реальном времени. Но где-то вы обычно платите штраф, потому что в конечном итоге существует только конечный набор доступных ресурсов (процессоры, пропускная способность ввода-вывода и т. Д.), А потребительские ОС и ОС RTOS оптимизируются по различным критериям. Некоторые из подходов RT Linux имеют дело с этим явно, имея разделы. Различные допущения и разные критерии оптимальности оптимизированы для каждого раздела.

Какие функции продаются? Я не могу предложить точный список - более того, ОС общего назначения, как правило, имеют миллионы драйверов и способны не отставать от оттока новые устройства; ОСРВ, как правило, сосредоточены на гораздо меньшем наборе, для которого своевременность может быть либо хорошо понята, либо явно не мешать другим действиям. Вероятно, у вас не будет такого же выбора драйверов в обычной ОСРВ, поскольку обычно их нецелесообразно реализовывать

Пропускная способность Помните "в реальном времени"! = "Очень быстро". Когда система работает в режиме реального времени, это означает, что время завершения действий является частью их правильности. В некоторых случаях это означает очень быструю обработку многих действий (высокая пропускная способность); в других это может быть обработка в относительно медленном, но чрезвычайно предсказуемом периоде. Структуры в ОСРВ могут иметь высокую пропускную способность, но, как правило, не могут достичь пропускной способности эквивалентной ОСРВ, потому что методы, используемые для достижения этой пропускной способности справедливо (кэширование, причудливые подходы планирования, основанные на интерактивности, «справедливая» постановка в очередь и конфликты блокировок), препятствуют против предсказуемости своевременности любой отдельной задачи.

2 голосов
/ 28 марта 2011

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

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

С переходом Blackberry Playbook на QNX мы можем впервые увидеть дружественную среду разработки (библиотеки и инструменты) для ОСРВ.

2 голосов
/ 28 марта 2011

Я не уверен, является ли это серьезной причиной, но я считаю, что наличие функций не в реальном времени, таких как Режим управления системой в процессоре, на самом деле не позволяет использовать ОС реального времени, потому что SMM может занять произвольно столько времени, сколько он хочет, чтобы ответить на SMI, и лучшее, что может сделать ОС, - это просто перерыв и сбой, когда она получает контроль назад - , если , то она своевременно получает контроль обратно манера. Таким образом, вам нужно, чтобы BIOS также работал в режиме реального времени, что не так просто, как если бы одна компания, например Microsoft, сделала свою ОС в реальном времени (что само по себе непросто в любом случае).

И, вероятно, для обычного пользователя, в любом случае, выигрыш не будет слишком большим.

1 голос
/ 28 марта 2011

Это в основном та же причина, что и "почему не все пишут веб-приложения на C?".Это намного быстрее, но гораздо сложнее.ОСРВ в большой системе становятся громоздкими, потому что большая часть контроля предоставляется прикладному программисту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...