Безопасность авиационных бортовых систем повысили ученые из МГУ
Новый уровень безопасности авиационных бортовых систем и других систем ответственного назначения предлагает исследование, проведенное учеными факультета вычислительной математики и кибернетики (ВМК) Московского государственного университета им. М.В. Ломоносова. Работа помогает решить проблемы функционирования критически важного программного обеспечения, связанные с компиляцией. О полученных результатах корреспонденту «Научной России» рассказал один из авторов нового подхода, кандидат физико-математических наук, доцент кафедры системного программирования факультета ВМК МГУ Виктор Вячеславович Кулямин.
Программное обеспечение для критически важных систем, включая авиационные, регулируется специальными стандартами. Оно должно быть максимально безопасным и предсказуемым. Одна из проблем на пути к надежности подобных систем — последствия компиляторных оптимизаций.
«Компилятор представляет собой систему, преобразующую программы, написанные на некотором языке программирования (обычно удобном для человека), в код, который может быть непосредственно выполнен на определенной вычислительной платформе, включающей аппаратное обеспечение и операционную систему. Современные компиляторы выполняют при этом довольно сложные преобразования, называемые оптимизациями. Они нацелены на то, чтобы итоговый код выполнялся как можно быстрее и расходовал при выполнении как можно меньше памяти и электроэнергии, — объяснил В.В. Кулямин. — Если целевая платформа — бортовая система реального времени, используемая в авиации и смежных областях, некоторые оптимизации могут создавать проблемы. От такой системы ожидается, что она работает детерминированно, устойчива к ошибкам, а также может быть достаточно тщательно и с приемлемыми усилиями проанализирована как на предмет отсутствия ошибок и уязвимостей, так и с целью получения гарантий детерминированности и соблюдения ограничений на время выполнения отдельных действий. Многие оптимизации разрушают детерминированность и значительно затрудняют (а иногда делают невозможным) анализ и верификацию получаемого при их применении кода, снижая или даже нарушая безопасность его применения».