Design and architecture of real-time operating system

Автор: Mallachiev K.M., Pakulin N.V., Khoroshilov A.V.

Журнал: Труды Института системного программирования РАН @trudy-isp-ran

Статья в выпуске: 2 т.28, 2016 года.

Бесплатный доступ

Modern airliners such as Airbus A320, Boeing 787, and Russian MS-21 use so called Integrated Modular Avionics (IMA) architecture for airborne systems. This architecture is based on interconnection of devices and on-board computers by means of uniform real-time network. It allows significant reduction of cable usage, thus leading to reducing of takeoff weight of and airplane. IMA separates functions of collecting information (sensors), action (actuators), and avionics logic implemented by applied avionics software in on-board computers. International standard ARINC 653 defines constraints on the underlying real-time operation system and programming interfaces between operating system and associated applications. The standard regulates space and time partitioning of applied IMA-related tasks. Most existing operating systems with ARINC 653 support are commercial and proprietary software. In this paper, we present JetOS, an open source real-time operating system with complete support of ARINC 653 part 1 rev 3. JetOS originates from the open source project POK, created by French researchers. At that time POK was the only one open source OS with at least partial support for ARINC 653. Despite this, POK was not feasible for practical usage: POK failed to meet a number of fundamental requirements and was executable in emulator only. During JetOS development POK code was significantly redesigned. The paper discusses disadvantages of POK and shows how we solved those problems and what changes we have made in POK kernel and individual subsystems. In particular we fully rewrote real-time scheduler, network stack and memory management. Also we have added some new features to the OS. One of the most important features is system partitions. System partition is a specialized application with extended capabilities, such as access to hardware (network card, PCI controller etc.) Introduction of system partitions allowed us moving large subsystems out of the kernel and limiting the kernel to the minimal functionality: context switching, scheduling and message pass. In particular, we have moved network subsystem to system partition. This moving reduces kernel size and potentially reduces probability on having bug in kernel and simplifies verification process.

Еще

Arinc 653, rtos, ima, partitioning, real-time

Короткий адрес: https://sciup.org/14916338

IDR: 14916338   |   DOI: 10.15514/ISPRAS-2016-28(2)-12

Устройство и архитектура операционной системы реального времени

Современные авиалайнеры, такие как Airbus A320, Boeing 787, перспективный отечественный самолёт МС-21, используют новую архитектуру построения комплекса бортового оборудования, получившую название Интегрированная модульная авионика (ИМА). В её основе лежит объединение приборов и бортовых вычислителей в единую сеть реального времени, что позволяет существенно снизить количество кабелей на борту и, тем самым, уменьшить взлётный вес лайнера. В ИМА разделяются функции сбора информации (датчики), воздействия (актуаторы) и логики оказания управляющих воздействий, которая реализуется специализированным прикладным ПО в бортовых вычислительных модулях. Международный стандарт ARINC 653 описывает требования к операционной системе реального времени, устанавливаемой на таких модулях, и программный интерфейс между прикладным авиационным ПО и операционной системой. Данный стандарт регламентирует временное и пространственное разделение прикладного ПО в соответствии с принципами ИМА. Большинство ОСРВ соответствующих стандарту ARINC 653 являются коммерческим ПО. В данной статье представляется JetOS - ОСРВ с открытым исходным кодом полностью соответствующую требованиям ARINC 653 части 1 версии 3. JetOS была основана на открытом проекте французских исследователей POK. Некогда POK была единственной ОСРВ с открытым исходным кодом, которая хоть сколько-нибудь соответствовала требованиям стандарта ARINC 653, однако была непригодна для практического использования: POK не удовлетворяла ряду фундаментальных требований ARINC 653 и работала только в эмуляторе. При разработке JetOS код POK был существенно переработан. В статье мы обсуждаем недостатки POK и показываем, как нам удалось решить эти проблемы и какие изменения были внесены в архитектуру и реализацию POK и отдельным подсистем. В частности, был полностью переписан планировщик реального времени, сетевой стек и управление памятью. Также в JetOS были добавлены новые возможности. Наиболее интересной является поддержка системных разделов. Системный раздел - специальное прикладное ПО с расширенным набором возможностей, таких как прямой доступ к отдельным аппаратным средствам (сетевой карте, PCI контроллеру и т.п.). Наличие системных разделов позволяет вынести крупные подсистемы из ядра ОС и оставить в ядре минимальный набор задач, связанных с переключением контекстов, планировщиком и обменом сообщениями между компонентами ПО. В частности, в системный раздел вынесена подсистема, отвечающая за взаимодействие через сеть. Данное перемещение кода позволяет уменьшить размер ядра ОС, что теоретически уменьшает вероятность наличия ошибки в ядре и упрощает процесс верификации ядра.

Еще

Список литературы Design and architecture of real-time operating system

  • Avionics application software standard interface part 0 overview of ARINC 653, ARINC specification 653P0-1, August 3, 2015
  • Avionics application software standard interface part 1 -required services, ARINC specification 653P1-3, November 15, 2010
  • G. Bloom, J. Sherrill. 2014. Scheduling and thread management with RTEMS. SIGBED Rev. 11, 1 (February 2014), 20-25. DOI= DOI: 10.1145/2597457.2597459
  • C. S. Stangaciu, M. V. Micea, V. I. Cretu; Hard real-time execution environment extension for FreeRTOS Conference: IEEE International Symposium on RObotic and SEnsors Environments (ROSE 2014), At Timisoara DOI: 10.1109/ROSE.2014.6953035
  • VxWorks 653 http://www.windriver.com/products/product-overviews/PO_VxWorks653_Platform_0210.pdf
  • R. Kaiser, S. Wagner: Evolution of the PikeOS Microkernel, MIKES: 1st International Workshop on Microkernels for Embedded Systems. 2007
  • LynxOS http://www.lynx.com/products/real-time-operating-systems/lynxos-rtos/
  • M. Masmano, Y. Valiente, P. Balbastre, I. Ripoll, A. Crespo, J.J. Metge, 2010. LithOS: a ARINC-653 guest operating for XtratuM. In Proc. of the 12th Real-Time Linux Workshop, Nairobi (Kenya).
  • M. Masmano, I. Ripoll, A. Crespo, and J.J. Metge. XtratuM: a Hypervisor for Safety Critical Embedded Systems. 11th Real-Time Linux Workshop. Dresden. Germany. http://www.xtratum.org/files/xm_rtlw09.pdf
  • S. H. VanderLeest. ARINC 653 hypervisor. In Proc. Of IEEE/AIAA DASC, Oct. 2010.
  • J. Delange, L. Lec, 2011. POK, an ARINC653-compliant operating system released under the BSD license. In 13th Real-Time Linux Workshop (Vol. 10). http://julien.gunnm.org/data/publications/articledl11-osadl11.pdf
  • S. Han and H.-W. Jin. 2012. Kernel-level ARINC 653 partitioning for Linux. In Proceedings of the 27th Annual ACM Symposium on Applied Computing (SAC '12). ACM, New York, NY, USA, 1632-1637. DOI= DOI: 10.1145/2245276.2232037
Еще