Анализ: Linux в сравнении с RTOS

Новости из мира электроники


  новости

Анализ: Linux в сравнении с RTOS

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


Жесткие и мягкие в реальном масштабе времени

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

Существуют два основных подхода для систем реального времени: "мягкого" в режиме реального времени и "жесткого" реального времени.
Софт в режиме реального времени вычислений обеспечивает гарантию определенного уровня процессорного полосы пропускания в конкретных единицу времени. Например, приложение, которое нуждается 10 миллисекунд процессорного полосу пропускания и должно быть требование о том, что встречался в течение 100 миллисекунд имеет мягкие реального времени требования. Это часто, когда общего назначения операционной системы, такие как Linux используется.
Жесткие реального времени вычислительные смотрит на время отклика, а не в пропускной способности гарантировать, когда заявка должна реагировать на события в конкретное время. Примером будет включать отвечая на периодические прерывания где наихудшему время отклика должно быть меньше, чем прерывать временем, так что не прерывать событий теряются.

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

Жесткие реальном масштабе времени является специализированным подхода, которые могут быть смягчены в некоторых приложениях, таких как оказание аудио в компьютер. На популярных 44.1KHz кадров, заявка о передаче 32 бит данных во всех аппаратных 22,7 микросекунд. Потому что другие операционные системы услуг могут задержать этой операции, буферизация используется для компенсации каких-либо задержек.

Добавление 4096 32-битный буфер сокращает сроки применения требованием для заполнения этого буфера примерно каждые 0,1 секунды, решение жестком режиме реального времени проблема с мягкой реального времени операционной системы.

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

Прервать латентность

В реальном времени реакции обычно измеряется прерывать латентность: прерывать блокирование времени, в течение которого ядро находится в ожидании в ответ на прерывание, экономия задача контексте определения прерывать и со ссылкой на источник прерывания обработчик.

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

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

Планирование латентность

Контексте перехода латентности является количество времени, необходимое для перехода контроля к высоким приоритетом процесса в ответ на событие.

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

Есть много методов для достижения реального времени реагирования в составе операционных систем. В реальном времени операционные системы были разработаны специально для решения этой проблемы, тогда как Linux предназначен для общего назначения операционной системы.

Преобразование в Linux RTOS

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

Существуют два основных подхода к этому: избежать ядра и в режиме реального времени ядра.

Избежать ядра подход

В ядро избежать подхода, ядро Linux будет изменен сократить количество времени проводит в ядре nonpreemptible секции кода. Потому что этот подход требует модификации ядра Linux (через патч) для достижения минимума nonpreemptive пути, то постоянных усилий и, возможно, требует много времени, revalidation, когда патч это сделал.

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

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

Многие проекты с открытым исходным кодом были сформированы для создания низкой латентности ядро, используя различные подходы preemption. Наиболее значительным проектом была начата Инго Молнар, и в настоящее время включены в стандартные ядра Linux с течением времени.

Но есть, безусловно, преимущества такого подхода. Наиболее примечательной из них является PREEMPT_RT проект, который широко рассматривается в качестве "основного Linux", и качество и степень зрелости улучшается с течением времени. Многие пути код в ядро (как, например, драйверов устройств) были изменены в основной код для поддержки preemption.

Однако есть еще некоторые ограничения, с PREEMPT_RT поддержка - особенно в код - получающих менее сообщества охвата. Эта архитектура включает в себя индивидуальный код, а также драйверов устройств.

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

В реальном времени исполнительной подход

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

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

Основные общается с Линуксом задач путем блокировки без очереди и разделяемой памяти, с применением программист с точки зрения очереди с нетерпением очень хотелось стандартные Linux характер устройства, с помощью POSIX чтение / запись / открыть / ioctl системных вызовов. Разделяемой памяти в настоящее время доступны через POSIX ММАП звонки.

В то время как ядро Linux во многом нетронутыми и не нуждается в revalidation, прерывать абстракции модель имеет некоторые отличия от "стандартных" Linux, что разработчики должны быть известны.

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

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

С другой стороны, в режиме реального времени не является основной частью стандартной операционной системы Linux и не имеет лицензии на General Public License. Сразу же возможностями предоставления гарантированных жестком режиме реального времени условий для надлежащего письменного заявления в среде Linux.

Другой подход

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

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

Модель RTP

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

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

Последние RTOS технологии внедряет в режиме реального времени процесс модель, или RTP, который создает оба пользователя и ядра режимах. Это создает режим среды приложений без устранения традиционной модели программирования и RTOS позволяет защиты памяти без ущерба для производительности для традиционных приложений в ядро пространства.

Заявки на основе модели RTP пользу от высокой производительности ядра RTOS, с добавлением надежных ресурсов, мелиорации и защиты памяти.

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

Сравнение Linux и ОИТ

В режиме реального времени основные обеспечивает в режиме реального времени в Linux, предоставляя небольшое реального времени "микроядра" со своим собственным планировщиком. Заявления о том, что ссылка на микроядро будет трудно получить в реальном масштабе времени для прерывания связи и коммутации.

Для других услуг, заявка должна передать для Linux не в реальном масштабе времени задача, которая будет делать работу. Что RTOS, где вся система построена будет в режиме реального времени, заявка может иметь больше возможностей в своем распоряжении в режиме реального времени. Все это зависит от того, как независимые приложения на самом деле являются.

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

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

Существующие решения, RTOS, как было доказано в течение десятилетий использовать в то время как PREEMPT_RT патчи относительно незрелой, и RTOS также легче сертифицирован для военных и правительственных заявлений, которые требуют строгого сертификации. Размер операционной системы Linux делает его очень трудным и дорогостоящим сертифицировать.

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

Резюме

Увеличение разнообразия в режиме реального времени инструментов разработки и применения требований устройство сделало жизнь более сложной для разработчиков. Определение целесообразности использования RTOS или Linux для удовлетворения в режиме реального времени требования не должны быть дополнительным источником риска.

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



По материалам зарубежной прессы: RBI

...подробнее