Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
7.4. Способы обеспечения отказоустойчивости системы
131
ление возможно только для ограниченного множества сбоев, которые уда­лось ранее обнаружить, проанализировать и выработать методы предупре­ждения или, на крайний случай, ликвидации последствий.
При возвратном восстановлении производится возврат процесса (или
системы в целом) к их предыдущему состоянию. Этот процесс невозможен без надежного хранения текущего состояния процессов и самой системы. Естественно, что на это тратится время и ресурсы, система становится мед­леннее, появляются дополнительные инструменты. К тому же отсутствует гарантия того, что сбой повторится и все придется делать сначала.
Для восстановления состояния обычно применяется два метода:
промежуточная фиксация; ведение журнала.
Следует заметить, что применение любого из этих методов затруд-
няется в случае распределенной системы, так как хранить состояние одного объекта – это одно, а хранить состояние нескольких взаимодействующих или работающих параллельно объектов – совсем другое.
Чтобы избежать этих сложностей, сразу создают системы, изна­чально устойчивые к распространенным типам сбоев и отказов. Такие си­стемы либо нивелируют влияние отказов, либо их попросту маскируют. Кроме того, подобные системы имеют определенные шаблоны поведения в критических ситуациях и средства обнаружения сбоев. При возникнове­нии сбоя система уже оказывается готова к ней и запускается процесс лик­видации последствий.
Обеспечение живучести в общем виде – это методика применения специализированных средств, которая позволяет системе продолжить правильную работу при возникновении отказа ее аппаратных элементов или программ с возможностью ограничения снижения качества выполне­ния задач.
Обеспечение живучести несколько отличается от отказоустойчиво­сти. С отказом не связано качество работы системы, и средства обеспече­ния живучести позволяют рационально распределять вычислительные ре­сурсы и повысить среднее время наработки до отказа.
В обеспечение живучести включены три основные функции:
диагностика;
локализация неисправности;
7. Отказоустойчивость операционных систем реального времени
132
перестройка системы. В основе живучести системы лежит способность к повторению или
к дублированию функционала. Поэтому, например, многопроцессорные системы или кластеры естественным образом претендуют на положение отказоустойчивых.
Другим аспектом является применение защитных инструментов си-
стем, позволяющих поддерживать связь между компонентами и восстанав­ливаться при сбоях, в том числе, отключая узел с нарушениями в работе.
Для любой системы со средствами защиты и восстановления харак-
терны программная, информационная и временная избыточность.
Под временной избыточностью будем понимать выделение части ре­сурсов и квантов производительности для слежения за системой и получе­ния диагностических данных о ее состоянии. Подсистемы постоянного мо­ниторинга занимают почти столько же ресурсов системы, сколько ее основ­ные компоненты.
Программная избыточность применяется для обеспечения достовер­ности решений по управлению системы и достоверности обрабатываемой информации. Она заключается в применении не одной программы для каж­дой задачи, а целого набора программ, обеспечивающих несколько подхо­дов к ее решению и расположенных сразу на нескольких дублирующих уз­лах системы. Данный подход также носит название N-версионное програм­мирование.
Для синхронизации работы таких подсистем существуют протоколы согласования. Они применяются для синхронизаций решения одной и той же задачи на разных узлах и заключаются, как минимум, в элементарной проверке сравнением для полученных результатов.
Несовпадение результатов – это основной признак сбоя узла. В ре­зультате проверки выбираются результаты работы, полученные одновре­менно всеми исправными исполнителями.
В настоящее время существует несколько основных способов обес­печения отказоустойчивости работы систем:
фиксация константного отказа или сбоя системы в целом;
обеспечение отказоустойчивости с маскированием сбоев.
7.5. Построение систем с рангом отказоустойчивости
133
Фиксация константного отказа системы сопряжена с последующей реконфигурацией программ или оборудования, а также с прерыванием ра­боты системы. Данный способ плохо применим в операционных системах реального времени, так как он нарушает принципы детерминированности рабочего процесса.
Обеспечение отказоустойчивости системы с маскированием сбоев работает по принципу мажорирования, т.е. использование 2*n + 1-каналов и схемы голосования. Схема голосования отбирает данные, прошедшие проверку на достоверность. Этот способ применяется в системах реального времени, так как наоборот ведет к детерминированности.
При аппаратной реализации потеря производительности связана с необходимостью синхронизации процессов в резервированных каналах связи. Однако здесь также присутствуют потери времени на обмен инфор­мацией и на синхронизацию каналов. Кроме того, каждая маскировка сбоя сопровождается локальной потерей производительности на 30 % в среднем и увеличением числа связей.
При аппаратном мажорировании ситуация с производительностью хуже, чем при программном. Увеличение кратности маскируемых сбоев, в отличие от аппаратного мажорирования, где это можно осуществить путем организации многократного голосования при прохождении сигналов по си­стеме или соответственно путем введения аппаратной избыточности, не­возможно.
Частично озвученная проблема решается внедрением в систему спе­циального детектора сбоев, генерирующего специальные сигналы, пере­хватываемые остальной системой. При перехвате сигнала обычно произво­дится блокировка дальнейшего прохождения сигналов от некорректно ра­ботающего канала с пропусканием на выход сигналов от следующего пра­вильно работающего узла.
7.5. Построение систем с рангом отказоустойчивости
В многопроцессорных системах, которые разрабатываются как отка­зоустойчивые, “рангом” будем называть максимальное число отказов функциональных элементов (ФЭ), после которых система продолжает свое нормальное функционирование. Можно ввести обозначение N(m), которое
7. Отказоустойчивость операционных систем реального времени
134
описывает систему, содержащую N узлов ФЭ и выдерживает m отказов этих узлов. Система работает стабильно пока остаются рабочими N–m функциональных элементов.
Следует отметить, что самыми быстродействующими являются си-
стемы N (0), а самыми надежными – N(N–1).
Естественно, что каждый ФЭ имеет в своем составе достаточное ко-
личество аппаратных и программных инструментов для обеспечения устойчивости и способен работать отдельно от остальной системы, т.е. в каждом рабочем цикле он выполняет полную обработку входных данных без участия других ФЭ.
Можно выделить свойства отказоустойчивых систем с ФЭ.
1. Операционная система являет собой совокупность связанных и
надежно функционирующих элементов, обеспечивающих информацион­ное взаимодействие и решение пользовательских и системных задач. При этом работоспособность каждого ФЭ также обеспечивается благодаря об­мену следующей информацией:
результат сравнения информации, поступающей в данных ФЭ; результат оценки информации, поступившей от других узлов си-
стемы;
результат голосования, т.е. вывод о состоянии других Ф.
2. Внутренняя структура распределенной операционной системы ре-
ального времени представляется в виде иерархии с различными уровнями. Каждый уровень наследует функциональные возможности предыдущего.
3. Новые конфигурации системы могут появляться путем добавле-
ния новых модулей и ФЭ.
4. Система является открытой, т.е. допускает масштабирование как
по горизонтали (увеличение числа ФЭ одного уровня), так и по вертикали (наращивание мощности отдельных ФЭ и системы в целом).
5. В системе всегда должен присутствовать запас по времени не ме-
нее 20 % с учетом производительности аппаратной платформы и быстро­действия программного обеспечения.
В системе ведется диспетчеризация вычислительного процесса, сво-
дящаяся к следующим процедурам.
7.5. Построение систем с рангом отказоустойчивости
135
1. Синхронизация вычислительных процессов посредством выдачи
управляющих сигналов таймера ведущего узла или узла с высоким прио­ритетом, на который возложена функция синхронизации.
2. Полная обработка задач в пределах одного выделенного цикла.
3. Использование сторожевого таймера как средства защиты от за-
цикливания или средства выведения процесса из цикла.
4. Разделение процесса работы системы на отдельные периоды:
ввод данных в систему;
решение ФЭ;
обмен функциональными данными;
обмен результатами голосования;
обмен предварительными выводами о состоянии системы;
принятие совместного (консолидированного) решения о текущем
состоянии системы;
реконфигурация системы в случае отказа.
Рассмотрим общую концепцию работы такой системы.
После получения результатов расчета на очередном цикле, система должна получить информацию о своем состоянии, для чего осуществляется обмен результатами с остальными ПЭ системы. При этом следует отме­тить, что обмен результатами счета со всеми узлами ВС в некоторой мере избыточен, так как для выявления некорректного результата достаточно двух верных (в предположении об ординарности потока отказов). Таким образом, протокол голосования может быть построен так, что результаты счета отдельного ПЭ в ВС троируются, т.е. могут не присутствовать в не­которых отчетах.
7. Отказоустойчивость операционных систем реального времени
136
ЗАКЛЮЧЕНИЕ
Задачи реального времени составляют одну из сложнейших и крайне важных областей применения вычислительной техники. Как правило, они связаны с контролем и управлением процессами, являющимися неотъемле­мой частью современной жизни. Управление прокатными станами, робо­тами, движение на автомагистралях, контроль за состоянием окружающей среды, управление атомными и космическими станциями и многое другое – область задач реального времени. Эти задачи предъявляют такие требо­вания к аппаратному и программному обеспечению, как надежность, высо­кая пропускная способность передающей среды в распределенных систе­мах, своевременная реакция на внешние события и т.д. Для выполнения этих требований и создаются системы реального времени, аппаратное и программное обеспечение.
Важнейшим свойством систем реального времени является предска­зуемость временных реакций системы на внешние события. Только исходя из этого свойства можно говорить о состоятельности и обоснованности ре­шений, заложенных в конкретной СРВ. И именно в свете временной пред­сказуемости необходимо рассматривать возможности выбора конкретной операционной системы под конкретную задачу реального времени.
Также необходимо отметить, что при анализе систем реального вре­мени важным является выбор модели диспетчеризации потоков в рамках конкретной задачи. Определение метода распределения приоритетов, обос­нование диспетчеризации всех потоков жесткого реального времени, все это является важнейшими действиями при проектировании систем реаль­ного времени. Дополнительные сложности создает отсутствие строгих ма­тематических методов в оценке диспетчеризации непериодических, дина­мических потоков.
В связи с этими требованиями выбор операционной системы для ре­ализации конкретной системы жесткого реального времени является ответ­ственным шагом, могущим определить успех или не успех разработки си­стемы в целом.
7.5. Построение систем с рангом отказоустойчивости
137
СПИСОК ЛИТЕРАТУРЫ
1. Таненбаум, Э. Современные операционные системы [Текст] / Э. Та-
ненбаум, Х. Бос. – 4-е изд. – Санкт-Петербург: Питер, 2015. – 1120 с.
2. Зыль, С. Н. Операционные системы реального времени QNX: от тео-
рии к практике [Текст] / С. Н. Зыль. – 2- е изд., перераб. и доп. – Санкт­Петербург: БХВ-Петербург, 2004. – 192 с.
3. Олифер, Н. А. Сетевые операционные системы [Текст] / Н. А. Олифер,
В. Г. Олифер. –Санкт-Петербург: Питер, Центр информационных тех­нологий, 2002. – 544 с.
4. Ослэндер, Д. М. Управляющие программы для механических систем:
Объектно-ориентированное проектирование систем реального вре­мени [Текст] / Д. М. Ослэндер, Дж. Р. Риджли, Дж. Д. Рингенберг. – Москва: Бином. Лаборатория знаний, 2004. – 416 с.
5. Бурдонов, И. Б. Операционные системы реального времени [Элек-
тронный ресурс] / И. Б. Бурдонов, А. С. Косачев, В. Н. Пономаренко // Институт системного программирования им. В. П. Иванникова РАН. – URL:
6. https://www.ispras.ru/preprints/docs/prep_14_2006.pdf (дата обращения:
20.10.2019).
7. Богачев, К. Ю. Операционные системы реального времени: материалы
лекций [Текст] / К. Ю. Богачев. – Москва: МГУ, 2000. – 100 с.
8. Дорогов, А. Ю. Синхронизация и взаимодействие программных пото-
ков в операционной среде реального времени [Текст]: учебное посо­бие / А. Ю. Дорогов. – Санкт-Петербург: Изд-во СПбГЭТУ «ЛЭТИ»,
2007. – 64 с.
9. Лисс, А. Р. Программирование в системах реального времени [Текст]:
учеб. пособие / А. Р. Лисс, Г. Ц. Селеджи, С. М. Селеджи. – Санкт­Петербург: ГЭТУ, 1995. – 79 с.
10. Операционные системы реального времени QNX Neutrino 6.3. Систем-
ная архитектура [Текст]: пер. с англ. / под ред. Е. Кондукова. – Санкт­Петербург: BHV, 2006. – 336 с.
11. Стивенс, У. UNIX: взаимодействие процессов [Текст] / У. Стивенс. –
Санкт-Петербург: Питер, 2003. – 576 с.
Список литературы
138
12. Хоар, Ч. Взаимодействующие последовательные процессы [Текст] /
Ч. Хоар: пер. с англ. – Москва: Мир, 1989. – 264 с.
13. Сайт компании SWD Software Ltd. – официального дистрибьютора
компании QNX Software Systems Ltd. на территории России и стран бывшего СССР [Электронный ресурс]. – URL: http://swd.ru (дата обра­щения: 20.10.2019)
14. Столлингс, В. Операционные системы [Текст] / В Столлингс: пер. с
англ. – 4-е изд. –Москва: Издательский Дом “Вильямс”, 2002. – 848 с.
7. Отказоустойчивость операционных систем реального времени
139
Учебное издание
БЕСПАЛОВ Дмитрий Анатольевич
ГУШАНСКИЙ Сергей Михайлович
КОРОБЕЙНИКОВА Наталия Михайловна
ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО
ВРЕМЕНИ И ТЕХНОЛОГИИ РАЗРАБОТКИ
КРОССПЛАТФОРМЕННОГО ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
ЧАСТЬ 1
Учебное пособие
Редакторы:
Т. Ф. Кочергина, Н. И. Селезнева
Корректоры:
Т. Ф. Кочергина, Н. И. Селезнева
Компьютерная верстка
И. А. Клочко
Подписано в печать
Бумага офсетная. Формат 60х84 1/16. Усл. печ. л. 8,69.
Уч.-изд. л. – 8,1. Тираж 40 экз. Заказ №
Издательство Южного федерального университета
Отпечатано в отделе полиграфической, корпоративной и сувенирной продукции
Издательско-полиграфического комплекса КИБИ МЕДИА ЦЕНТРА ЮФУ.
344090, г. Ростов-на-Дону, пр. Стачки, 200/1. Тел. (863) 243-41-66.
Подписано в печать 23.12.2019 г.
Бумага офсетная. Формат 60×84
1
/16. Усл. печ. лист. 8,08.
Уч. изд. л. 6,8. Заказ № 7429. Тираж 30 экз.
Издательство Южного федерального университета.
Отпечатано в отделе полиграфической, корпоративной и сувенирной продукции
Издательско‐полиграфического комплекса КИБИ МЕДИА ЦЕНТРА ЮФУ.
344090, г. Ростов‐на‐Дону, пр. Стачки, 200/1, тел (863) 243‐41‐66.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]