Кузнец, Саймон
- 1 year ago
- 0
- 0
VxWorks — операционная система реального времени , разрабатываемая компанией Wind River Systems ( США ), ориентированная на использование во встраиваемых компьютерах, работающих в системах жёсткого реального времени . VxWorks является системой с кросс-средствами разработки прикладного программного обеспечения. Иначе говоря, разработка происходит на инструментальном компьютере, называемом host, для последующего применения его на целевой машине — target.
Как и большинство других ОС реального времени, VxWorks включает в себя многозадачное ядро с вытесняющим планировщиком и быстрым откликом на прерывания , средства межпроцессного взаимодействия и синхронизации , а также файловую систему и сетевую подсистему (стек протоколов TCP/IP ). В комплект поставки входят средства для кросс-компиляции , ( ), удалённой символьной отладки, а также эмуляции различных процессоров . Дополнительно поставляется значительное количество различных стеков протоколов, графических подсистем и др. как от самой Wind River Systems, так и от третьих фирм. Множество поддерживаемых VxWorks встраиваемых платформ является одним из самых обширных среди операционных систем реального времени.
4 июня 2009 года компания Intel объявила о планах приобрести Wind River Systems и VxWorks. 17 июля 2009 года поглощение компании было завершено .
Название «VxWorks», как считается, получилось из игры слов с названием ОС , созданной компанией (сейчас этот продукт принадлежит Mentor Graphics ). В начале 1980-х VRTX была достаточно новым и сырым продуктом, она работала не слишком хорошо. VRTX имела размер всего 4 КБ, и её нельзя было использовать как полноценную операционную систему. Компания Wind River приобрела права на распространение расширенной версии VRTX под названием VxWorks. Доработки и расширения, внесённые компанией WindRiver, позволили создать систему, которая работала (например, VXWorks имела файловую систему и интегрированную среду разработки ). Таким образом, название VxWorks может означать англ. VRTX now Works («VRTX теперь работает») или англ. VRTX that Works («VRTX, которая работает»).
Когда стало ясно, что Ready Systems может разорвать контракт на распространение VRTX, в Wind River было разработано собственное ядро операционной системы, которое заменило VRTX. Базовая функциональность нового ядра VxWorks была такой же, как у VRTX.
VxWorks имеет архитектуру клиент-сервер и, как и большинство ОС жёсткого реального времени, построена по технологии монолитного ядра . На самом нижнем непрерываемом уровне ядра (WIND Microkernel) выполняются только базовые функции планирования задач и управления коммуникацией/ синхронизацией между задачами. Все остальные функции ОСРВ более высокого уровня — управление памятью, сетевые средства и т. д. — реализуются через простые функции нижнего уровня. За счёт такой иерархической организации достигается быстродействие и детерминированность ядра системы, также это позволяет легко строить необходимую конфигурацию операционной системы.
VxWorks можно скомпоновать как для систем с жёсткими аппаратными ограничениями, так и для систем с развитой функциональностью. Отдельные модули системы сами могут быть масштабируемыми. При сборке системы можно отключать определённые функции системы, не нужные в данный момент, также можно убирать специфические объекты синхронизации ядра, если в них нет необходимости.
Но, несмотря на то, что система является конфигурируемой, нельзя сказать, что в ней реализован компонентный подход, так как все модули построены над базовым ядром и не могут быть использованы в других средах.
Ядро VxWorks обладает следующими свойствами :
В VxWorks обеспечиваются и механизмы планирования, основанные на POSIX , и собственные механизмы планирования (wind scheduling). Оба варианта обладают вытесняющим и циклическим планированием. Различие заключается в том, что алгоритмы POSIX-планирования применяются попроцессно, а wind scheduling применяется на уровне всей системы .
Все задачи системы и приложения в VxWorks используют одно адресное пространство, что может привести к нарушению стабильности работы системы в случае неисправности какого-либо приложения. Решение этой проблемы достигается установкой отдельно предоставляемого компонента , который даёт возможность каждому процессу использовать собственное виртуальное пространство.
Для достижения быстрой обработки внешних прерываний программы обработки прерываний ( — interrupt service routines) в VxWorks работают в специальном контексте вне контекстов потоков, что даёт преимущество во времени, которое обычно тратится на переключение контекстов. С-функция, которую пользователь присоединяет к вектору прерывания, на самом деле не является фактической ISR. Прерывания не могут напрямую обращаться к С-функциям. Вместо этого в таблице векторов прерываний, которая вызывается аппаратно, запоминается адрес ISR. ISR выполняет начальную обработку (подготовку стека и сохранение регистров), а потом вызывается С-функция, которая была присоединена пользователем .
VxWorks обладает следующими сетевыми средствами :
В сетевые средства VxWorks входят также функции, необходимые при разработке устройств, подключаемых к Internet:
VxWorks поддерживает следующие протоколы маршрутизации:
В стандартную поставку VxWorks входит протокол RIP, протокол OSPF поставляется как дополнительный продукт.
VxWorks поддерживает протокол SNMP (Simple Network Management Protocol) как версии v1, так и версии v2c. Компилятор MIB (Management Information Base) поддерживает объекты MIB-II и расширения.
Стандартным интерфейсом для подключения переносимых сетевых протоколов к операционным системам является интерфейс STREAMS. Под VxWorks можно инсталлировать любой протокол, имеющий STREAMS-реализацию: как стандартный ( Novell SPX / IPX , , AppleTalk , SNA , …), так и специализированный. ОС VxWorks поддерживает STREAMS версии UNIX System V.4.
В 1994 году Wind River Systems анонсировала программу WindNet, по которой ряд фирм-производителей программных средств в области коммуникаций интегрировали свои программные продукты с VxWorks, тем самым обеспечив поддержку (это неполный перечень) :
В VxWorks поддерживаются следующие файловые системы :
Мультипроцессорная система реального времени, с точки зрения программного обеспечения, бывает двух видов: асимметричная ASMP ( англ. Asymmetrical MultiProcessing ) и симметричная SMP ( англ. Symmetrical MultiProcessing ). При асимметричном мультипроцессинге ASMP каждый микропроцессор, а в случае многоядерного микропроцессора — каждое процессорное ядро исполняет свой собственный экземпляр ОС, а за распределение процессов (потоков, задач) по процессорам отвечает разработчик прикладного ПО. В таком случае многопроцессорная система сложна в программировании, но обладает предсказуемостью (детерминированностью) характеристик реального времени.
При симметричном мультипроцессинге SMP прикладной программист видит многопроцессорную систему как виртуальную однопроцессорную, что значительно упрощает разработку ПО, но нет 100 % гарантии предсказуемости исполнения из-за того, что нагрузка между процессорами распределяется не вручную, а автоматически.
До появления на рынке встраиваемых микропроцессоров многоядерных устройств потребность в симметричном мультипроцессинге практически отсутствовала. Сложность разработки ПО для слабосвязанных многопроцессорных систем была невелика, и простоту программирования ставили на второе место после предсказуемости поведения системы реального времени. Поэтому в версиях VxWorks 5.x и 6.x вплоть до версии 6.5 поддерживался только асимметричный мультипроцессинг, реализованный в виде библиотеки (поставляется как дополнительный продукт), обеспечивающей коммуникацию между процессорами через объекты в разделяемой памяти. По мере появления встраиваемых многоядерных микропроцессоров с сильно связанными процессорными ядрами на кристалле на первое место выдвинулась простота разработки ПО, что привело к необходимости поддерживания встраиваемыми ОС реального времени симметричного мультипроцессинга.
С версии 6.6, вышедшей в ноябре 2007 года , VxWorks начала поддерживать симметричный мультипроцессинг SMP . Поддержка SMP-систем включена в интегрированную среду разработки for VxWorks и . Поддержка SMP-систем в VxWorks поставляется как дополнительный компонент. Поддерживаются следующие многоядерные микропроцессоры:
Поддерживаемые целевые архитектуры (targets) | Поддерживаемые инструментальные платформы (hosts) | Поддерживаемые интерфейсы |
---|---|---|
|
VxWorks сравнивают с другими операционными системами реального времени .
ОСРВ | Архитектура | Среда разработки | POSIX | Макс. число задач |
---|---|---|---|---|
VxWorks | Клиент-сервер, микроядро | Tornado, Workbench, Qt Creator Commercial | POSIX 1003.1, .1b, .1c (включая pThreads) | ограничивается только объёмом памяти |
QNX | Клиент-сервер, микроядро и взаимодействующие процессы | QNX Momentics IDE, Qt Creator (Community и Commercial) с версии 3.0 , Solaris, QNX4, QNX6 (до версии Neutrino 6.3.2 включительно) | POSIX 1003.1-2001, с потоками и расширенным. РВ | 4095 процессов, в каждом процессе до 32767 потоков |
LynxOS | монолитное ядро | Luminosity на базе среды Eclipse | POSIX 1003.1a/b/c, 1003.1-2003 | ограничено памятью |