ЖУРНАЛ СТА 3/2011
совместимые вызовы open/read/write/ ioctl. Разделяемая память управляется через POSIX-совместимый вызов mmap. Задачи реального времени реали- зуются в данном подходе как стандарт- ные потоки POSIX, и их программиро- вание не требует знаний об устройстве ядра Linux. Таким образом, разработка приложений реального времени, во- первых, значительно упрощается, а во- вторых, никак не влияет на происходя- щее в Linux-среде. Сравнение Wind River Real-Time Core и PREEMPT_RT Подход с использованием патча PREEMPT_RT несёт в себе возмож- ность оставаться в рамках «официаль- ной» Linux и хорошо подходит для ряда приложений реального времени типа обработки потоков аудио- и видео- информации, но не способен обеспе- чить 100-процентную гарантию требуе- мой производительности. Wind River Real-Time Core, с другой стороны, не входит в стандартную ком- плектацию Linux и не подпадает под условия лицензии General Public Licen- se (GPL), но зато предоставляет разра- ботчику специализированную среду с гарантированными значениями време- ни реакции, одновременно позволяя выполнять приложения Linux без из- менений. ОС РЕАЛЬНОГО ВРЕМЕНИ W IND R IVER V X W ORKS Оба описанных подхода подразуме- вают «изготовление» ОС реального времени из ОС общего назначения. Другой диаметрально противополож- ный подход заключается в том, чтобы добавить в ОС реального времени сер- висы общего назначения. Этот подход используется в ОС VxWorks. VxWorks – самая распространённая коммерческая ОС РВ в индустрии встраиваемых приложений. Она изна- чально разрабатывалась как ОС, кото- рая обеспечивала бы быстрое и пред- сказуемое переключение контекста. Микроядро VxWorks поддерживает вы- тесняющее и карусельное планирова- ние с 256 уровнями приоритета при неограниченном количестве задач. VxWorks определяет, какой задаче пре- доставить процессор, на основании дисциплины планирования; по умол- чанию используется вытесняющее пла- нирование, то есть задача с более высо- ким приоритетом всегда вытесняет менее приоритетную. В VxWorks для всех задач используется общее адрес- ное пространство, что позволяет избе- жать затрат на трансляцию виртуаль- ных адресов в физические. Модель процесса реального времени (RTP) Исторически в VxWorks присутство- вали только задачи, выполняющиеся в контексте ядра, что позволяло полу- чить выигрыш в производительности, скорости отработки системных вызо- вов и времени доступа к оборудова- нию, жертвуя при этом защитой ком- понентов ядра и абстракцией модели программирования. Такой компромисс требовал от разработчиков детальных знаний о работе с оборудованием и привносил дополнительный риск воз- никновения невосстанавливаемых от- казов. Начиная с версии 6.0 и старше, ком- пания Wind River реализовала в VxWorks модель процесса реального времени (Real-Time Process – RTP), в рамках которой контексты ядра и пользователя разграничиваются. Мо- дель RTP вводит возможность про- граммирования в пользовательском кольце, полностью сохраняя и допол- няя классический подход. Она также обеспечивает защиту памяти, не сни- жая при этом производительность тра- диционных приложений, работающих в пространстве ядра. Приложения, построенные в рамках модели RTP, выигрывают одновременно и от про- изводительности ядра VxWorks, и от надёжности при работе с памятью и другими ресурсами. Модель RTP также значительно рас- ширяет набор средств, доступных при- кладному программисту. Приложения, работающие в пользовательском коль- це, выполняются в собственных адрес- ных пространствах даже в отсутствие MMU (Memory Management Unit – аппаратный диспетчер памяти – отве- чает за трансляцию виртуальных адре- сов в физические, защиту памяти, управление кэш-памятью, арбитраж на шине данных и т.п. Реализован не во всех процессорах. – Прим. пер. ), а при наличии MMU эти адресные про- странства являются защищёнными, что увеличивает надёжность. Кроме того, модель RTP при сохра- нении всех существующих преиму- ществ VxWorks, таких как масштаби- руемость, производительность и пред- сказуемость, а также доступности всех необходимых подмножеств API (App- lication Programming Interface – интер- фейс прикладного программирова- ния. – Прим. пер. ) ядра ОС обеспечи- вает бо ' льшую совместимость со стан- дартами POSIX и позволяет реализо- вать в VxWorks проверенную парадигму программирования – процесс . (В совре- менной трактовке многозадачности роль задачи в ОС, то есть исполняемой единицы, подлежащей планированию, выполняет поток – thread; процесс – process при этом является сущностью пассивной, то есть представляет собой контейнер потоков с общим адресным пространством. Модель RTP полнос- тью соответствует этой трактовке. – Прим. пер. ) Сравнение Linux и VxWorks Wind River Real-Time Core реализует поддержку реального времени в Linux посредством выделения необходимых функций в независимое микроядро, имеющее свой собственный планиров- щик. Приложения, компонуемые с этим микроядром, работают в режиме гаран- тированного реального времени, и им обеспечиваются предсказуемые значе- ния времени реакции на прерывание и переключения контекста; все остальные сервисы обеспечиваются традиционны- ми задачами Linux. Таким образом, в распоряжении приложения оказывается больше функциональных возможно- стей, хотя далеко не все они будут являться сервисами реального времени. В VxWorks, с другой стороны, в режи- ме реального времени работает вся система; функциональная расширяе- мость на прикладном уровне достига- ется за счёт применения процессной модели программирования с использо- ванием вызовов POSIX API. Р ЕЗЮМЕ Постоянно растущая сложность тре- бований к встраиваемому ПО и много- образие доступного на рынке инстру- ментария способны значительно усложнить жизнь современного разра- ботчика. Решения компании Wind Ri- ver позволяют выбрать соответству- ющий инструмент разработки прило- жений реального времени в зависимо- сти от требований конкретной задачи. ● Авторизованный перевод Николая Горбунова, сотрудника фирмы ПРОСОФТ Телефон: (495) 234-0636 E-mail: info@prosoft.ru 18 СТА 3/2011 ОБ ЗОР / П РОГ РАММНОЕ ОБ Е СП Е Ч Е НИЕ www.cta.ru © СТА-ПРЕСС
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy