Александр Годунов

Avatar1

Годунов Александр Николаевич, кандидат физико-математических наук, Лауреат Премии Совета Министров СССР, Заслуженный конструктор РФ, заведующий отделом системного программирования НИИСИ РАН. В 1970 г. отличием закончил механико-математический факультет МГУ и поступил в аспирантуру мех.-мата МГУ, а 1974 г. защитил диссертацию в МГУ. В 1973-1977 гг. работал в Институте проблем управления АН СССР. С 1977 по 1994 гг. работал во ВНИИСИ АН СССР в должности старшего, затем ведущего научного сотрудника. Разработчик СУБД ИНЕС, внедренной более 1000 организации СССР. С 1994 по 1996 гг. работал в Межэкономсбербанке в должности начальника отдела автоматизации. С 1994 г. по настоящее время работает во НИИСИ РАН, руководитель разработки операционных систем реального времени семейства Багет


Спецификация ARINC 653

Годунов А. Н., НИИСИ РАН, Солдатов В. А., НИИСИ РАН

Спецификация ARINC 653 определяет интерфейс (APEX — APplication EXecutive) прикладного программного обеспечения с операционной системой (ОС) на основе концепции, обеспечивающей временное и пространственное разделение ресурсов. Эта спецификация разрабатывалась для использования в авионике, но может применяться в системах управления другого назначения с повышенными требованиями к обеспечению безопасности.
Первая версия ARINC 653 вышла в октябре 1996 года. В дальнейшем было опубликовано несколько дополнений, последние из которых датируются декабрём 2014 года. Спецификация нашла широкое применение при разработке операционных систем реального времени как за рубежом (VxWorks 653, LynxOS-178, Integrity-178B и др.), так и в нашей стране (ОСРВ Багет 3 и др.) и фактически стала отраслевым стандартом.



Спецификация ARINC 653 определяет интерфейс (APEX — APplication EXecutive) прикладного программного обеспечения с операционной системой (ОС) на основе концепции, обеспечивающей временное и пространственное разделение ресурсов. Эта спецификация разрабатывалась для использования в авионике, но может применяться в системах управления другого назначения с повышенными требованиями к обеспечению безопасности.

Первая версия ARINC 653 вышла в октябре 1996 года. В дальнейшем было опубликовано несколько дополнений, последние из которых датируются декабрём 2014 года. Спецификация нашла широкое применение при разработке операционных систем реального времени как за рубежом (VxWorks 653, LynxOS-178, Integrity-178B и др.), так и в нашей стране (ОСРВ Багет 3 и др.) и фактически стала отраслевым стандартом.

Современное описание спецификации содержится в документах, состоящих из введения (Part 0 — Overview of ARINC 653) и пяти частей. Первая часть (Part 1 — Required Services) описывает основные (обязательные) требования к интерфейсу прикладных программ с операционной системой. Во второй части (Part 2 — Extended Services) указаны дополнительные возможности. Третья часть (Part 3 — Conformity Test Specification For ARINC 653 Required Services) определяет тесты для проверки соответствия интефейса спецификации ARINC 653. В четвёртой части (Part 4 — Subset Services) описывается подмножество интерфейсов. И, наконец, пятая часть (Part 5 — Core Software Recommended Capabilities) относится к ядру ОС.

Во введении (Overview of ARINC 653) делается общий обзор всех документов, которые относятся к спецификации ARINC 653, представлены сведения о выпущенных и планирумых редакциях документов, указывается назначение каждой из частей спецификации.
Первая часть (Required Services) описывает стандартный (базовый) интерфейс для программных систем в авионике и определяет структуры XML-таблиц конфигурирования для прикладных систем, разработанных на основе этого интерфейса. Она описывает:
- управление разделами (атрибуты, режимы работы, останов и запуск, планирование);
- взаимодействие разделов (атрибуты портов, queuing и sampling порты);
- управление процессами (атрибуты, состояния процессов, порождение, запуск и останов процессов, планирование и приоритет, разрешение и запрет планирования, очереди процессов);
- взаимодействие процессов (семафоры и события, буфера и доски объявлений);
- управление памятью и временем;
- обработка ошибок (уровни ошибок, управление обработкой ошибок, процесс обработки ошибок);
конфигурирование.

Вторая часть (Extended Services) описывает дополнительные возможности (расширения) к базовому интерфейсу и структуры XML-таблиц конфигурирования, соответствующие системам с расширенным интерфейсом. Вторая часть описывает:
- файловые системы;
- управление планированием разделов (использование нескольких расписаний);
- книги записей (logbook);
- дополнительные возможности sampling портов;
- SAP-порты;
- управление именами;
- блоки памяти;
- дополнительные возможности при обработке ошибок;
- списки портов.

Третья часть (Conformity Test Specification For ARINC 653 Required Services) определяет состав и порядок выполнения тестовых процедур для проверки соответствия интефейса спецификации ARINC 653. Там содержатся тесты относящиеся к первой, второй и четвертой частям спецификации ARINC 653.

В четвёртой части (Subset Services) определены функции, которые можно использовать в рамках подмножества интерфейсов, а также описаны особенности их реализации. Одной из целей разработки этого подмножества было создание более простых и надежных систем. Для этого средства управления процессами были значительно сокращены. В частности, в рамках одного раздела может выполняться не более двух процессов: один периодический и/или один непериодический процесс.

И, наконец, в пятой части (Core Software Recommended Capabilities) даются рекомендации по организации ядра ОС. Эта часть носит описательный характер и не содержит конкретных интерфейсов.
При сравнении спецификации ARINC 653 со стандартом POSIX (Portable Operating System Interface), который также описывает интерфейс между прикладными программами и ОС, можно отметить следующие основные отличия. POSIX создавался в первую очередь для операционных систем общего назначения, а ARINC 653 изначально был ориентирован на ОС реального времени с высокими требованиями к надёжности их эксплуатации.

Количество интерфейсных функций в POSIX составляет свыше тысячи, а в ARINC 653 их количество на порядок меньше.
Терминология, используемая в ARINC 653, отличается от терминологии, принятой в стандарте POSIX. В ARINC 653 единицей планирования ресурсов является раздел (partition). В стандарте POSIX этому термину соответствует понятие процесс (process). В рамках одного раздела возможно параллельное выполнение нескольких процессов (process). Тогда как в POSIX в. рамках одного процесса возможно параллельное выполнение нескольких потоков управления (thread).

В спецификации ARINC 653 каждый раздел может находиться в одном из предопределённых состояниях (режимах), аналогичное понятие в POSIX отсутствует.
Ещё одной особенностью спецификации ARINC 653 являются жёстко определенные требования к порядку выделения ресурсов, требуемых разделу, все необходимые ресурсы выделяются только на этапе инициализации раздела. Однажды выделенные ресурсы не освобождаются, пока работает раздел. Отсутствуют средства для динамического выделения оперативной памяти, вся память, необходимая для выполнения программ раздела, определяется при конфигурировании. В POSIX же обычной практикой является динамическая работа с ресурсами, когда они многократно запрашиваются и освобождаются, что может приводить к ряду неприятных последствий, например, к фрагментации памяти.

В ARINC 653 детально прописан порядок обработки ошибок. Ошибки, в зависимости от их уровня и этапа выполнения раздела, могут обрабатываться либо средствами ОС, либо прикладной программой. При конфигурировании каждому типу ошибки присваивается соответствующий ей уровень и определяется реакция системы на ошибку каждого уровня в зависимости от этапа выполнения раздела. Прикладная программа может обрабатывать только ошибки уровня процесса. Для этой цели используется «обработчик ошибок» (Error Handler) — специальный процесс раздела с наивысшим приоритетом, который создаётся при инициализации раздела вызовом соответствующей функции. Аналогичных понятий в POSIX нет.

В ARINC 653 все требуемые ресурсы и взаимосвязи между отдельными частями системы определяются системным интегратором при конфигурировании системы. Структура таблиц конфигуратора описывается в спецификации ARINC 653 на языке XML-схема. В POSIX понятие конфигурирования системы отсутствует.

Организаторы

При поддержке