TO THE QUESTION OF IMPLEMENTATION OF MULTI-VERSION EXECUTION ENVIRONMENT SOFTWARE OF ONBOARD AUTONOMOUS PILOTLESS OBJECTS BY MEANS OF REAL-TIME OPERATING SYSTEM


Дәйексөз келтіру

Толық мәтін

Аннотация

The article deals with the functional and algorithmic implementation of multi-version execution environment of modules as components of the onboard software of autonomous pilotless objects by means of real-time operating system. One of the approaches to implement multi-version execution environment implementation of the principle of a pseudo-parallelism (imitation of concurrent execution of tasks (threads) by dividing the time of their execution) are given. It was determined that the functional capacity of the operating system, expressed in the presence of threads scheduler and time base, as a tool for the implementation of actions through a strictly selected intervals, queuing mechanism, messaging, capable of being used as a functional support of sought environment. The article also announced the possibility of porting, which is adapting to the execution on the single-chip microcomputers (microcontrollers), which, in turn, contributes to capability of testing the idea on available workbench. Messaging process between multiple threads has been implemented by cyclogram, as the procedure of returning of voting result by queuing mechanism, which is a safe way of interaction of threads with each other and solves the problem of sharing multiple threads to the same hardware resources, whose role in this case played by memory. The main API-functions accompanying process of algorithmization of the exchange of messages, such as start scheduler, the creation of threads, creating of the queue, entry in the queue, reading out and others are shown. In the article it is viewed messaging mechanism, in conjunction with the scheduler and priority system implemented by real-time operating system, allow building more flexible algorithms of voting, that can vary the weights of N-versioned modules, and as a result, affect the reliability indices of multi-version software, including for implementation multi-version execution environment of onboard software of autonomous pilotless objects.

Толық мәтін

Описание проблемы. Задача проектирования и программной реализации модулей обеспечения функционирования бортового программного обеспечения автономных беспилотных объектов в контексте методологии мультиверсионного программного обеспечения не является тривиальной [1; 2]. При этом не менее важной является задача формирования мультиверсионной среды исполнения программно-реализованных модулей, поскольку минимально необходимыми требованиями обеспечения функционирования подобной среды является соблюдение ряда условий. Во-первых, необходимо обеспечить реализацию адекватного механизма вотирования [3], т. е. механизма принятия решения о достоверности возвращаемого модулем результата путем голосования; во-вторых, обеспечить обмен данными между модулями; в-третьих, обеспечить механизм вытеснения модуля в случае принятия подобного решения арбитром - программным компонентом, реализующим механизм вотирования, а также последующим добавлением нового модуля для сохранения заданного показателя надежности бортового программного обеспечения автономных беспилотных объектов (АБО). Поиск решения. Одним из подходов к реализации мультиверсионной среды исполнения, в том числе бортового программного обеспечения АБО, является реализация принципа псевдопараллельности, а именно, имитации параллельного исполнения тредов путем разделения времени их исполнения. Подобный функциональный принцип реализуем операционной системой жесткого реального времени RTOS (real-time operating system), а именно, одной из версий - FreeRTOS [4] - портированной, т. е. адаптированной к исполнению на SoC (System On a Chip), что способствует возможности апробации идеи на доступных инструментальных средствах [5]. Рассмотрим циклограмму (см. рисунок) реализации процесса обмена сообщениями между несколькими тредами как процедуры возврата результата голосования посредством механизма очередей, реализуемых FreeRTOS. Тред-приемник - это задача, реализующая сбор данных от N-версионных модулей (Тред-1, Тред-2, …, Тред-N) с целью последующего принятия решения арбитром, однако в описываемом процессе выполняющая только функцию приемника [5; 6]. Тред-1, -2 - это задачи, интерпретирующие N-версионные модули [7; 8], реализующие функции бортового программного обеспечения управления АБО. Алгоритмизация процесса обмена сообщениями. Временная составляющая данной циклограммы распределена по равным квантам времени. Момент времени «0» - инициализируется запуск планировщика FreeRTOS, который задействует состояние «Выполнение» треда с наиболее высоким приоритетом, в данном случае это Тред-приемник. Примечание. За запуск планировщика отвечает API-функция vTaskSrartScheduler(), за создание треда - API-функция xTaskCreate(). Момент времени «1» - Тред-приемник инициирует попытку произвести чтение элемента из очереди, но переходит в состояние «Блокирование», поскольку очередь пуста в момент ее создания. В данном состоянии Тред-приемник находится до момента возникновения данных в очереди или до момента истечения тайм-аута 120 мс. Следующим этапом является переход в состояние «Выполнение» одного из тредов-передатчиков (Тред-1 или Тред-2). Однозначно декларировать, какой из тредов перейдет в данное состояние, нельзя, поскольку каждый из них имеет равный приоритет. Предположим, это Тред-1. Примечание. За переход в состояние «Блокирование» и выход из него отвечает API-функция vTaskSuspend() и vTaskResume() соответственно. Момент времени «2» - Тред-1 записывает значение «25» в созданную пустую очередь. В этот момент происходит возврат из состояния «блокирование» Треда-приемника, поскольку функцией данного треда является захват данных из очереди, и приоритет его наиболее высокий. Примечание. За создание очереди отвечает API-функция xQueueCreate(), для записи элемента в конец очереди - реализация принципа FIFO, используется API-функция xQueueSendToBack(), для записи элемента в начало очереди - реализация принципа LIFO, используется API-функция xQueueSendToFront(). Момент времени «3» - получив доступ к очереди и считав данные из нее, вновь происходит его блокирование, так как очередь теперь пуста. Управление возвращается к прерванному Треду-1, который выполняет API-функцию вызова планировщика taskYIELD (). Примечание. За чтение элемента с последующим удалением его из очереди отвечает API-функция xQueueReceive(). Момент времени «4» - планировщик переводит в состояние «выполнение» равноприоритетный Тред-2, который, в свою очередь, записывает значение «50» в очередь. Циклограмма процесса обмена сообщениями между тредами Момент времени «5» - выходит из состояния «блокирование» высокоприоритетный Тред-приемник и производит считывание данных из очереди. Далее происходит следующая итерация цикла. Примечание. Текущее значение счетчика квантов времени может быть получено с помощью API-функции xTaskGetTickCount(). Заключение. Данный пример демонстрирует механизм обмена сообщениями, согласно которому значение, помещаемое в очередь задачей, интерпретирующей N-версионные модули (Тред-1, -2), представлено литерой (константой). Истинное значение, возвращаемое модулем как результат голосования, требует дополнительной алгоритмизации N-версионного модуля [9; 10], при этом значение, формируемое модулем, может принимать различный формат, в том числе формат булевых и целочисленных переменных [11], в зависимости от механизма вотирования [12]. Таким образом, механизм обмена сообщениями совместно с планировщиком и системой приоритетов, реализуемые средствами FreeRTOS, позволяют выстраивать более гибкие алгоритмы вотирования (голосования), способные варьировать весами N-версионных модулей и, как следствие, влиять на показатели надежности мультиверсионного программного обеспечения [13-15], в том числе для реализации мультиверсионной среды исполнения бортового программного обеспечения АБО.
×

Авторлар туралы

I. Kovalev

Reshetnev Siberian State Aerospace University

31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation

V. Losev

Reshetnev Siberian State Aerospace University

Email: basilos@mail.ru
31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation

M. Saramud

Reshetnev Siberian State Aerospace University

31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation

D. Kovalev

Reshetnev Siberian State Aerospace University

31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation

M. Petrosyan

Reshetnev Siberian State Aerospace University

31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation

Әдебиет тізімі

  1. Ковалев И. В., Семенько Т. И., Царев Р. Ю. Методология оценки и повышения надежности программно-информационных технологий и структур : монография / Федер. агентство по образованию ; Краснояр. гос. техн. ун-т. Красноярк, 2005. 160 c.
  2. Multiversion environment creation for control algorithm execution by autonomous unmanned objects / I. V. Kovalev [et al.] // IOP Conference Series : Materials Science and Engineering V International Workshop on Mathematical Models and their Applications - 2016 (7-9 November 2016, Krasnoyarsk). 2017. Vol. 173. P. 012025.
  3. Ковалев И. В. Анализ проблем в области исследования надежности программного обеспечения: многоэтапность и архитектурный аспект // Вестник СибГАУ. 2012. Вып. № 3 (55). С. 78-92.
  4. Barry R. Using the FreeRTOS Real Time Kernel: ARM Cortex-M3 Edition. Real Time Engineers, 2010. P. 196.
  5. Инструментальные средства формирования мультиверсионной архитектуры отказоустойчивых программных систем / И. В. Ковалев [и др.] / М-во сельского хоз-ва Российской Федерации ; Краснояр. гос. аграрный ун-т. 2011. С. 152.
  6. Стельмах В. О., Ковалев И. В. Построение отказоустойчивых систем управления на основе мультиверсионного подхода // Информационно-телекоммуникационные системы и технологии (ИТСИТ-2012) : материалы Всерос. молодеж. конф. 2012. С. 172-173.
  7. Ковалёв П. В. Графоаналитический метод анализа мультиверсионных архитектур программного обеспечения // Международный журнал прикладных и фундаментальных исследований / Академия естествознания. 2009. № 6. С. 70.
  8. Kovalev I., Zelenkov P., Ognerubov S. The minimization of inter-module interface for the achievement of reliability of multi-version software // IOP Conference Series : Reshetnev Readings : Materials Science and Engineering XVII International Scientific Conference. 2015. Р. 012006.
  9. Kovalev I. V., Zelenkov P. V., Tsarev M. Y. The control of developing a structure of a catastrophe-resistant system of information processing and control // IOP Conference Series : Reshetnev Readings : Materials Science and Engineering XVII International Scientific Conference. 2015. Р. 012008.
  10. Ковалев И. В., Юнусов Р. В. Мультиверсионный метод повышения программной надежности информационно-телекоммуникационных технологий в корпоративных структурах // Телекоммуникации и информатизация образования. 2003. № 2. С. 50-55.
  11. Kovalev I. V., Dgioeva N. N., Slobodin M. Ju. The mathematical system model for the problem of multiversion software design // International Conference on Modelling and Simulation, MS’2004. AMSE, French Research Council, CNRS, Rhone-Alpes Region, Hospitals of Lyon. Lyon-Villeurbanne, 2004.
  12. Ковалев И. В., Слободин М. Ю., Ступина А. А. Математическая постановка задачи проектирования n-версионных программных систем // Проблемы машиностроения и автоматизации. 2005. № 3. С. 16-23.
  13. Engel E. А., Kovalev I. V. Information processing using intelligent algorithms by solving wcci 2010 tasks // Вестник СибГАУ. 2011. № 3 (36). С. 4-8.
  14. Лосев В. В., Ковалев И. В. Реинжиниринг информационного обеспечения интегрированных систем управления производством // Приборы. 2010. № 3 (117). С. 31-36.
  15. Оценка надежности АСУ с блокирующими модулями защиты / И. В. Ковалев [и др.] // Приборы. 2013. № 6. С. 20-23.

Қосымша файлдар

Қосымша файлдар
Әрекет
1. JATS XML

© Kovalev I.V., Losev V.V., Saramud M.V., Kovalev D.I., Petrosyan M.O., 2017

Creative Commons License
Бұл мақала лицензия бойынша қолжетімді Creative Commons Attribution 4.0 International License.

Осы сайт cookie-файлдарды пайдаланады

Біздің сайтты пайдалануды жалғастыра отырып, сіз сайттың дұрыс жұмыс істеуін қамтамасыз ететін cookie файлдарын өңдеуге келісім бересіз.< / br>< / br>cookie файлдары туралы< / a>