Разработка отказоустойчивой операционной системы реального времени для вычислительных систем с максимальным рангом отказоустойчивости
как сбой ПЭ или канала связи ПЭ.
. Отсутствие квитанции трактуется как сбой ПЭ или канала связи ПЭ.
. Неверный код квитанции трактуется как сбой канала связи ПЭ.
Для принятия решения об отказе (сбое) того или иного элемента ВС (ПЭ,
канала связи) по набору выводов от каждого узла сети, был предложен
следующий эвристический алгоритм, при выполнении условия об ординарности
потока отказов:
1. Создается матрица состояния ВС, которая размерностью идентична
модифицированной матрице связности ПЭ, но по главной диагонали
находятся данные о ПЭ, а в ячейках матрицы – о каналах связи.
2. Матрица состояния ВС инициализируется единицами.
3. После обмена предварительными результатами голосования, у каждого
ПЭ оказывается результаты голосования от всех ПЭ ВС и
диагностическая информация от модуля коммуникации.
4. Последовательно, в соответствии с логикой, изложенной выше,
делается вывод по каждой записи, и очередное предположение
заносится в матрицу состояния ВС путем вычитания единицы из ячейки,
соответствующей элементу ВС, не в пользу которого делается это
предположение.
5. Если выводом по очередной записи становится отсутствие отказов по
определенным элементам, то это предположение заносится в матрицу
состояния ВС путем инкрементирования ячейки, соответствующей
элементу ВС, в пользу которого делается это предположение.
6. После обработки всех записей, матрица состояний ВС просматривается
на предмет поиска минимального отрицательного значения.
7. Если такое значение есть, то соответствующий элемент признается
отказавшим, иначе принимается решение об отсутствии оказов.
Данный алгоритм создан так, что в матрице состояний после его завершения,
не окажется больше двух минимальных отрицательных значений, причем эти
значения не будут принадлежать одинаковым функциональным элементам (то есть
одновременно 2-м ПЭ или 2-м каналам связи). В случае присутствия одинаковых
минимальных значений, делается выбор в пользу отказа канала связи.
Проиллюстрируем его на примере ВС, изображенной на рис. 2.7, и отказа
ПЭ5 в этой конфигурации. Обмен для голосования в сети осуществляется
следующим образом:
ПЭ1->ПЭ2, ПЭ3;
ПЭ2->ПЭ3, ПЭ5;
ПЭ3->ПЭ5, ПЭ1;
ПЭ5->ПЭ1, ПЭ2.
Обмен результатами голосования для принятия консолидированного решения – по
всей ВС. Приведем логику анализа неисправности с точки зрения выбранной
эвристики.
Вариант 1: ПЭ5 продолжает функционирование, обмен и голосование, но
функциональная задача выполняется неверно. Таким образом, сигналов о
неисправности от модулей коммуникации ПЭ сети поступать не будет.
В таблице 2.23 представлены записи от всех ПЭ, расшифрованные в
соответствии с выбранной логикой.
Таблица 2.23
|ПЭ№ |Данные |Информация от |Возможная причина |Вывод |
| |голосования|модуля |неисправности | |
| |от ПЭ № |коммуникации |ПЭ № или Линк | |
| | | |№ | |
| |1 |Нет |5 | |
| | | |1-5 | |
|1 |2 |Нет |5 |Неисправен |
| | | |2-5 |ПЭ5 |
| |3 |Нет |Нет неисправности | |
| |5 |Нет |5 | |
| | | |1-5, 3-5 | |
| |1 |Нет |5 | |
| | | |1-5 | |
|2 |2 |Нет |5 |Неисправен |
| | | |2-5 |ПЭ5 |
| |3 |Нет |Нет неисправности | |
| |5 |Нет |5 | |
| | | |1-5, 3-5 | |
| |1 |Нет |5 | |
| | | |1-5 | |
|3 |2 |Нет |5 | Неисправен |
| | | |2-5 |ПЭ5 |
| |3 |Нет |Нет неисправности | |
| |5 |Нет |5 | |
| | | |1-5, 3-5 | |
Составим матрицу состояния ВС, получившуюся у ПЭ1 (см. таблицу 2.24).
Таблица 2.24
|№/№ |1 |2 |3 |5 |
|1 |2 |1 |2 |-1 |
|2 |1 |2 |2 |0 |
|3 |2 |2 |2 |0 |
|5 |-1 |0 |0 |-2 |
Таким образом, делается вывод о неисправности ПЭ5. Аналогичный вывод,
судя по таблице 1, делают и ПЭ1 и ПЭ2.
Вариант 2: Наступил фатальный отказ ПЭ5, при котором он прекращает
обмен с ВС, либо выдает неинформативные данные.
Таблица 2.25 содержит расшифровку записей всех ПЭ в этом случае.
Таблица 2.25
|ПЭ№ |Данные |Информация от |Возможная причина |Вывод |
| |голосования|модуля |неисправности | |
| |от ПЭ № |коммуникации |ПЭ № или Линк № | |
| |1 |Нет | 1 или 3 или 5 | |
| | | |3-5 или 1-5 | |
|1 |2 |Нет |5 |Неисправен |
| | | |2-5 |ПЭ5 |
| |3 |Тайм-аут или | 3 или 5 | |
| | |КС |3-5 или 1-5 | |
| |5 |Тайм-аут или |5 | |
| | |КС |1-5 | |
| |1 |Нет | 1 или 3 или 5 | |
| | | |3-5 или 1-5 | |
|2 |2 |Нет |5 |Неисправен |
| | | |2-5 |ПЭ5 |
| |3 |Тайм-аут или | 3 или 5 | |
| | |КС |3-5 или 2-5 | |
| |5 |Тайм-аут или |5 | |
| | |КС |2-5 | |
| |1 |Тайм-аут или |1 или 5 3-5 или | |
| | |КС |1-5 | |
|3 |2 |Тайм-аут или |2 или 5 |Неисправен |
| | |КС |3-5 или 2-5 |3-5 |
| |3 |Нет |1 или 2 или 3 или 5 | |
| | | |3-5 или 1-5 или 2-5 | |
| |5 |Тайм-аут или |5 | |
| | |КС |3-5 | |
Таким образом :
. В ПЭ1 оказывается 4 голоса против ПЭ5 и 3 голоса против канала
связи 1-5. Решение – отказ ПЭ5.
. В ПЭ2 оказывается 4 голоса против ПЭ5 и 3 голоса против канала
связи 2-5. Решение – отказ ПЭ5.
. В ПЭ3 оказывается 4 голоса против ПЭ5 и 4 голоса против канала
связи 3-5. Решение – отказ канала связи 3-5.
Ситуация, аналогичная наступившей в ПЭ3, возникает, когда у ПЭ остается
лишь один канал связи. После его утраты ПЭ становится изолированным и
отключается.
2.6. Оценка надежностных характеристик отказоустойчивой ВС
Выбранная концепция построения специализированной распределенной
операционной системы реального времени позволит однородной системе
функционировать при возникновении N -1 отказа ПЭ в системе.
Если не учитывать вероятность отключения работоспособных процессорных
модулей, то можно провести оптимистическую оценку вероятности отказа всей
системы за определенный период функционирования и среднего времени
наработки на отказ системы.
Будем предполагать, что поток отказов в каждом узле системы является
простейшим, т.е. стационарным, ординарным и без последствия, с
показательным законом распределения длины интервала между соседними
событиями (отказами):
[pic] (1)
где: [pic] - вероятность того, что за время t произойдет ровно “K”
событий (отказов);
( - параметр потока, интенсивность потока отказов;
T0 – математическое ожидание длины интервала между соседними
событиями – среднее время наработки на отказ;
P0(t) – вероятность того, что за время t не произойдет ни одного
события (отказа), вероятность безотказной работы.
Обозначим через [pic]– среднее время наработки на отказ одного узла
системы. Для отказоустойчивых систем под состоянием отказа будем понимать
состояние фатального отказа, т.е. для ОС-N(m), это состояние, при котором
произошел отказ более чем “m” узлов системы (m+1, m+2, …).
В произвольный момент времени t мы можем застать систему в одном из
двух состояний:
- работоспособном, с вероятностью R(t),
- в состоянии фатального отказа, с вероятностью P(t).
Если взглянуть на систему с учетом состояний работоспособности
каждого из N ее элементов (узлов), то в произвольный момент времени t мы
можем застать систему в одном из 2N состояний (см. рис. 2.10).
[pic]
Рис 2.10. Состояния N-узловой системы
Если поставить в соответствие каждому узлу системы разряд двоичного N
разрядного числа (0 – узел работает, 1 – узел отказал), то каждому такому
состоянию системы можно поставить в соответствие свой номер, равный
значению введенного двоичного N разрядного числа и каждому такому состоянию
соответствует некоторая вероятность нахождения системы в момент времени t в
этом состоянии.
Все 2N состояний системы можно разбить на несколько групп состояний,
каждое из которых отличается от других количеством отказавших узлов.
Нулевая группа (группа с номером 0) содержит одно состояние ([pic]= 1), в
котором все узлы системы находятся в состоянии работоспособности, т.е.
имеется ровно 0 отказавших элементов. Первая группа включает в себя все
состояния, в которых отказал ровно один узел (двоичные номера этих
состояний содержат лишь одну единицу в N разрядном двоичном коде).
Количество состояний, входящих в первую группу равно [pic]=N – числу
сочетаний из N по 1 ([pic]).
Вторую группу составляют состояния, в которых в системе имеется два
отказавших элемента, таких состояний ровно [pic] и т.д.
В i-ю группу включаются все состояния, в которых в системе отказало
ровно i узлов, таких состояний [pic].
Предпоследняя (N-1) –я группа включает в себя [pic]состояний, т.е. N
состояний.
Последняя N-я группа содержит одно состояние ([pic]=1), в котором
отказали все N узлов системы.
Т.к. в произвольный момент времени система может находится только в
одном из всех 2N состояний, то эти события являются несовместными. Поэтому
вероятность нахождения системы в любом из состояний, относящихся к одной из
упомянутых выше групп можно получить как сумму вероятностей нахождения
системы во всех состояниях данной группы. А если учесть, что внутри каждой
i-й группы все состояния характеризуются наличием ровно i отказавших узлов,
то вероятности для всех состояний одной группы равны между собой, поэтому:
[pic] (2)
где: Pi – вероятность нахождения системы (в произвольный момент
времени t) в любом из состояний, отнесенных к i-й группе;
[pic]- вероятность нахождения системы в одном конкретном состоянии,
отнесенном к i-й группе.
Все состояния, отнесенные к i-й группе характеризуются наличием в
системе (в произвольный момент времени t) ровно i отказавших узлов и ровно
(N-i) исправных узлов.
В соответствии с введенным выше предположением о простейшем потоке
отказов (1) вероятность [pic]можно оценить следующим образом:
[pic] (3)
где первая скобка соответствует тому, что (N-i) элементов находятся в
работоспособном состоянии, а вторая тому, что i элементов отказали.
Подставляя (3) в (2) можно получить выражение для вычисления вероятностей
Pi.
Очевидно, что для системы ОС-N(m) (N узловой системы с рангом
отказоустойчивости m) все состояния системы, входящие в группы 0,1,2,…m
относятся к тем состояниям, в которых система нормально функционирует. В
этой связи вероятность R(t) можно оценить следующим образом:
[pic] (4)
Вероятность фатального отказа системы ОС – N(m) можно оценить как
сумму вероятностей нахождения системы в состояниях, отнесенных к группам
m+1, m+2, … N-1, N:
[pic] (5)
Критерием правильности предложенной методики является выполнение
условия R(t)+P(t)=1 для любых систем и любых значений t.
Объединяя выражения (2) (3) (4) и (5), получим окончательные формулы
для вычисления вероятностей безотказной работы – RN(m)(t) и фатального
отказа –PN(m)(t) систем ОС-N(m) для произвольного момента времени t:
[pic] (6)
Для практических расчетов целесообразно использовать одну из этих
формул, а именно ту, у которой (в зависимости от значений N и m) меньше
суммируемых членов, т.е. при [pic] целесообразно использовать формулу
PN(m)(t) в противном случае – формулу RN(m)(t). При этом второй параметр
получается из соотношения RN(m)(t)+PN(m)(t)=1.
Таким образом для систем типа N(N-1) выражения (6) принимают вид:
[pic] (6а)
Рассмотрим теперь определение среднего времени наработки на отказ
T0N(m) отказоустойчивых систем ОС-N(m).
Невосстанавливаемая N-узловая отказоустойчивая система m-го ранга (ОС-
N(m)) может быть представлена марковской моделью с количеством состояний
(N+1):
[pic]
где: 0 – состояние, в котором ни один узел системы не отказал;
1 – состояние (объединяющее группу из [pic] состояний системы – см.
рис. 2.4), в котором отказал ровно 1 узел;
2 – состояние (объединяющее группу из [pic] состояний системы), в
котором отказали ровно 2 узла;
m – состояние (объединяющее группу из [pic] состояний системы), в
котором отказало ровно m узлов и т.д.
Переход из одного состояния в другое (по мере постепенной деградации
системы) определяется интенсивностью потока отказов, воздействующих на
систему, находящуюся в соответствующем состоянии. Интенсивность потока
отказов, воздействующих на систему, находящуюся в i-м состоянии,
определяется количеством работоспособных узлов (N-i). Т.о. среднее время
нахождения системы в i-м состоянии определяется следующим образом:
[pic] (7)
где: [pic]- интенсивность потока отказов одного узла системы.
Фатальный отказ системы ОС-N(m) произойдет только при переходе
системы из состояния m в состояние m+1, поэтому среднее время наработки
системы ОС-N(m) на отказ равно среднему времени последовательного
нахождения системы в состояниях 0,1,2….m:
[pic] (8)
Выражение (8) получено на основании одного фундаментального свойства
показательного закона распределения: «если промежуток времени,
распределенный по показательному закону, уже длился некоторое время t, то
это никак не влияет на закон распределения оставшейся части промежутка: он
будет таким же, как и закон распределения всего промежутка»[12]. Это
свойство показательного закона представляет собой, по существу, одну из
формулировок для «отсутствия последействия», которое является основным
свойством простейшего потока, принятого нами в качестве модели потока
отказов.
Если ввести обозначение:
[pic] (8а)
то этот «коэффициент надежности» в соответствии с (8) представляет
собой отношение T0N(m) к T0y:
[pic],
и показывает, во сколько раз по сравнению с T0y – средним временем
наработки на отказ одного узла, изменилось среднее время наработки на отказ
системы ОС-N(m) в целом.
Используя формулы (6а) и (8а) можно производить оценку надежностных
характеристик отказоустойчивых систем типа N(N-1). Примем среднее время
наработки на отказ узла [pic]=105 часов. В таблице 2.26 приведены
характеристики, рассчитанные по формулам (6а) и (8а).
Таблица 2.26
Харктиристики отказоустойчивых систем типа N(N-1)
|№№ |N(N-1) – тип системы |1(0) |3(2) |4(3) |5(4) |6(5) |7(6) |8(7) |9(8) |10(9) |
|п/п|/ Характеристика | | | | | | | | | |
|1 | |4 часа |4?10-5 |6,4?10-14 |2,56?10-18|1,0?10-2|4,1?10-2|1,6?10-3|6,5?10-3|2,62?10-|1,05?10|
| | | | | | |2 |7 |1 |6 |40 |-44 |
|2 | |24 часа |2.4?10-|1,38?10-11|3,31?10-15|8,0?10-1|1,9?10-2|4,6?10-2|1,1?10-2|2,64?10-|6,3?10-|
| | | |4 | | |9 |2 |6 |9 |33 |37 |
|3 | |1год= |0.084 |5,91?10-4 |4,96?10-5 |4,2?10-6|3,5?10-7|2,9?10-8|2,46?10-|2?10-10 |1,7?10-|
| | | | | | | | | |9 | |11 |
| | |8766 час| | | | | | | | | |
|4 | |5лет= |0.355 |0,047 |1,586?10-2|5,6?10-3|2?10-3 |7,1?10-4|2,5?10-4|8,9?10-5|3,16?10|
| | | | | | | | | | | |-5 |
| | |43830 | | | | | | | | | |
| | |час | | | | | | | | | |
|5 | |10лет= |0.584 |0,2 |0,116 |0,068 |0,04 |0,023 |0,0135 |7,9?10-3|4,6?10-|
| | | | | | | | | | | |3 |
| | |87660час| | | | | | | | | |
|6 | |11,4г.= |0.632 |0,252 |0,16 |0,1 |0,064 |0,04 |0,025 |0,016 |0,01 |
| | |105час | | | | | | | | | |
|7 | |15лет= |0.73 |0,391 |0,286 |0,21 |0,153 |0,11 |0,082 |0,06 |0,044 |
| | |131490ча| | | | | | | | | |
| | |с | | | | | | | | | |
|8 |KN(N-1) |1 |1,83 |2,08 |2,28 |2,45 |2,59 |2,72 |2,82 |2,92 |
Для упрощения анализа таблицы построим два графика, отражающих
увеличение надежности системы с наращиванием аппаратной части (рис. 2.10 и
рис. 2.11).
[pic]
Рис. 2.10. Коэффициент надежности.
[pic]
Рис 2.11. Вероятность отказа ВС типа N(N-1) за 10 лет.
Анализ кривых показывает, что среднее время безотказной работы
увеличивается в 2-3 раза по сравнению со средним временем безотказной
работы одного ПЭ при наращивании вычислительных ресурсов в 5-7 раз и далее
стабилизируется и возрастает незначительно. Вероятность отказа систем с
рангом отказоустойчивости N(N-1) резко уменьшается при рассмотрении ВС типа
5(4) – 7(6) и далее ее снижение незначительно.
Таким образом, при построении отказоустойчивых вычислительных систем
рекомендуется выбирать системы с характеристиками 5(4) – 7(6), с учетом
ограничения массы, энергопотребления и др. характеристик.
2.7. Выводы к главе 2
Подводя итог, стоит еще раз отметить, что надежность ВС в процессе
эксплуатации складывается из надежности аппаратной и программной компонент
системы. В связи с этим были рассмотрены виды и причины отказов при работе
ВС, причем особое внимание уделялось возникновению ошибок вследствие
неисправностей аппаратных компонент системы, так как ошибки программного
обеспечения означают, что они не были выявлены на этапе тестирования.
Для обеспечения надежного решения задач в условиях отказов
применяются два подхода – восстановление и предотвращение отказа системы
(отказоустойчивость). При создании специализированной ОСРВ, предпочтение
отдано второму подходу, поскольку восстановление в ряде случаев может быть
связано со значительными затратами процессорного времени и (или)
прерыванием вычислительного процесса. В связи с этим рассмотрены механизмы
обеспечения отказоустойчивости, основными из которых являются протоколы
голосования и принятия коллективного решения.
Введено понятие ранга отказоустойчивости, описана структура ОСРВ и
концепция работы системы с рангом отказоустойчивости N(N-1). Дано описание
системных таблиц, структуры и взаимодействия модулей ОСРВ таких как
маршрутиатор, реконфигуратор, модуль коммункации, голосования и анализа
отказов.
Рассмотрен пример организации отказоустойчивых вычислений на примере
пятиузловой полносвязной ВС в условиях постоянной деградации, приведена
логика анализа отказа в условиях ординарного потока отказов.
В заключении произведена оценка надежностных характеристик ВС с
рангом отказоустйчивости N(N-1) и рассчитаны характеристики систем 1(0) –
10(9). Анализ характеристик выявил значительне увеличение времени
безотказной работы системы с увеличением числа ПЭ и уменьшение вероятности
отказа всей системы. Например, вроятность отказа системы 5(4) за 10 лет с
временем безотказной работы одного ПЭ 10000 часов составила 0,068, что
меньше вероятности отказа одного ПЭ за тот же период в 8,5 раз. Исходя из
этих результатов были сделаны рекомендации по выбору типа ВС при ее
проектировании.
3. Программное обеспечение модели отказоустойчивой ВС
Основными задачами при разработке программной модели отказоустойчивой
ВС, функционирующей под управлением распределенной ОСРВ, стали следующие:
1. Реализовать аппаратно-независимые модули обеспечения
отказоустойчивости ОСРВ.
2. Моделировать ВС любой топологии (3-10 ПЭ).
3. Возможность обеспечить логику проверки модулей ОСРВ с помощью
команд оператора.
4. Обеспечить работу модели в условиях «мягкого» реального времени.
Таким образом, программное обеспечение было разбито на две части:
1. ПО узла ВС Proc.
2. ПО подсистемы проверки Host.
3.1 Программное обеспечение модели узла ВС
Структура программного обеспечения модели узла ВС представлена на рис
3.1. В общем виде функционирование ПО узла ВС осуществляется по графу
управления (циклограмме), представленной на рис. 6.3 технологической части,
а логика работы подробно описана в главе 2.
Для реализации модели была выбрана ОС Windows 98/2000, так как на
данном этапе не ставилась задача тестирования ПО ВС в условиях жесткого
реального времени, а семантически механизмы обеспечения многопроцессности,
синхронизации, ввода-вывода практически идентичны механизмам большинства
ОСРВ.
[pic]
Рис. 3.1. Взаимодействие модулей узла ВС
ПО узла ВС разбито на модули, структура которых представлена в таблице
3.1. Описание функций, реализующих данные модули, представлено в таблицах
3.2, 3.3, 3.4, 3.5.
Таблица 3.1
Описание составляющих модулей текстового редактора
|Модуль |Описание |
|Main.cpp |Центральный модуль. Запуск инициализации системы. Запуск|
| |маршрутизатора. Запуск модуля эмуляции каналов связи. |
| |Запуск ФЗ. |
|Router.cpp |Функции маршрутизатора |
|Commun.cpp |Функции модуля коммуникации |
|Vote.cpp |Функции голосования и анализатора отказов. |
|task.cpp |Функциональная задача. |
Таблица 3.2
Функции, реализующие маршрутизатор
|Имя |Описание |
|void router() |Формирование таблиц рассылки методом волны |
|void GetRoute(int |Поиск всех кратчайших по числу транзитных |
|CpuNum) |передач путей в графе ВС до узла CpuNum. |
Таблица 3.3
Функции, реализующие модуль коммуникации
|Имя |Описание |
|int InitLinkEmul (const|Инициализация модуля эмуляции каналов связи по |
|char *IniFile) |файлу инициализации IniFile, выделение буферов |
| |приема информации для каждого канала, создание |
| |и соединение каналов связи (неименованные |
| |каналы или сокеты). |
| |Возвращает 0 в случае успеха, -1 – в случае |
| |ошибки в файле IniFile. |
|void FinishLinkEmul |Завершение работы модуля эмуляции каналов |
|(void) |связи. |
|static SOCKET |Создание клиентского сокета номером Port и |
|ConnectServerSocket |соединение его с сервером. |
|(const char *ServName, | |
|int Port) | |
|static SOCKET |Создание серверного сокета номером Port и |
|CreateServerSocket |ожидание соединения с клиентом. |
|(SOCKET *PrimSock, int | |
|Port) | |
|static int |Создание серверного неименованного канала с |
|CreatePipeServer (int |номером Port. По указателям pipeRead и |
|Port, HANDLE *pipeRead,|pipeWrite возвращаются файловые дескрипторы на |
|HANDLE *pipeWrite) |чтение и запись. |
|static int |Создание клиентского неименованного канала с |
|CreatePipeClient (int |номером Port. По указателям pipeRead и |
|Port, HANDLE *pipeRead,|pipeWrite возвращаются файловые дескрипторы на |
|HANDLE *pipeWrite) |чтение и запись. |
|int LinkOut (int Link, |Посылка данных по заданному каналу связи Link, |
|void *Addr, int Length)|начиная с адреса Addr, Length байт с приемом |
| |квитанции от адресата. |
|int LinkIn (int Link, |Прием данных по заданному каналу связи Link, в |
|void *Addr, int Length)|буфер начиная с адреса Addr, Length байт с |
| |контролем целостности пакета и отправкой |
| |квитанции. |
|int Receive (int Chan, |Выборка данных из канального буфера Chan, |
|int From, void |пришедших от ПЭ From, начиная с адреса Addr, |
|*DataAddr, int |Length байт. |
|DataLength) | |
|int Send (int Chan, |Посылка данных по каналу Chan, начиная с адреса|
|void *DataAddr, int |DataAddr, длиной DataLength байт. |
|DataLength) | |
|static DWORD WINAPI |Задача прослушивания канала связи lpvThreadParm|
|LinkThreadFunc (LPVOID |в фоновом режиме, расшифровка заголовка пакета,|
|lpvThreadParm) |прием информационных частей посылки, запись в |
| |канальный буфер, выдача сигнала о приходе |
| |данных. |
Таблица 3.4
Функции, реализующие модуль голосования и анализатора отказов
|Имя |Описание |
|void |Переинициализация буферов голосования |
|InitializeVoteBuffers()| |
|void RestoreCpuFault() |Сброс информации о накопленных отказах ПЭ |
|void RestoreLinkFault()|Сброс информации о накопленных отказах каналов |
| |связей |
|int compare(struct |Провести элементарную проверку (сравнение) |
|BUFFER b1,struct BUFFER|буферов функциональной информации |
|b2) | |
|int TrippleFault() |Определение сбоя одного и того же элемента ВС |
| |на протяжении трех циклов. |
|void consolidate() |Функция анализа отказов, принятие |
| |консолидированного решения, активизации |
| |реконфигуратора. |
|void VoteThread() |Задача голосования, активизирующаяся по |
| |заполнению канальных буферов, активизирующая |
| |обмен в сети результатами голосования и |
| |передающая управление анализатору отказов. |
Таблица 3.5
Функции, реализующие реконфигуратор
|Имя |Описание |
|static int |Проверка изолированности ПЭ Cpu. |
|CheckCpuLinks (int Cpu)| |
|void reconfig(struct |Процедура реконфигурации, путем изменения |
|SYSTEM* M) |системных таблиц по информации об отказе. |
| |Активизация маршрутизатора для перестройки |
| |системных таблиц. |
Таблица 3.6
Функции, реализующие функциональную задачу
|Имя |Описание |
|void TaskLoop() |Функция исполнения ФЗ (на данном этапе ФЗ – |
| |набор последовательных простейших операторов) |
| |по информации от объекта управления. |
| |Завершается отсылкой результатов для |
| |голосования другим ПЭ и передачей управления |
| |задачам прослушивания и голосования. |
Дополнительные функции, обеспечивающие моделирование отказов в рамках
своего ПЭ, представлены в таблице 3.7.
Таблица 3.7
Функции, реализующие моделирование отказа
|Имя |Описание |
|void KillCpu( int |type=1 – фатальный отказ ПЭ, приостановка всех |
|Cpu, int type ) |канальных потоков и ФЗ. |
| |type=0 – отказ ФЗ, внесение искажений при |
| |вычислении ФЗ. |
|void KillLink( int |Завершает соответствующий канальный поток, в |
|Link, int type ) |случае фатального отказа (type=0), или дает |
| |указание модулю коммуникации отсылать ошибочные |
| |пакеты (type=1). |
Диспетчеризация процессов в ПЭ происходит на уровне операционной системы,
передача управления происходит с помощью таких механизмов, как семафоры и
события. Во время ожидания на прием управления задачи находятся в спячке,
почти не занимая процессорного времени. Процесс передачи управления
приведен на рис. 3.2. При этом:
Процесс 1: Функциональная задача;
Процесс 2: Прослушивание канала связи с ОУ;
Процесс 3: Процесс голосования и анализа отказов;
Процесс 4: Реконфигурация;
Процесс 5: Отправка согласованных данных;
Процесс 6 .. N+6: Прослушивание N каналов связи с ПЭ ВС;
[pic]
Рис. 3.2. Диспетчеризация процессов.
Поскольку используются функции блокирующего ввода-вывода базовой ОС,
в случае отсутствия данных на входе задача прослушивания канала связи
помещается в состояние спячки, практически не занимая при этом
процессорного времени, и активизируется только по приходу данных. После
этого загружается тело посылки. Далее определяется адресат, и если посылка
предназначена другому ПЭ, то посылка передаётся дальше по информации от
маршрутизатора, в противном случае производится контроль заголовка
(ошибочные посылки игнорируются). При наличии места данные попадают в
соответствующий буфер. При наличии данных во всех предварительных буферах,
производится голосование и запись результата во входной буфер канала.
3.2 Программное обеспечение подсистемы проверки
Данный модуль призван обеспечить следующие функции:
. Отображение текущей топологической информации ВС.
. Отображение вычислительного процесса в ВС.
. Возможность моделирования различных отказов ВС.
Для обеспечения удобного интерфейса, приложение было сделано в виде
диалогового окна с помощью библиотеки классов Windows MFC (Microsoft
Foundation Classes).
[pic]
Рис. 3.3. Диалоговое окно программы Host.
Функциональное назначение элементов диалогового окна представлено в таблице
3.6.
Таблица 3.6
Назначение и функции элементов диалога
|Элемент |Описание |
|Панель «Отказ |Содержит три связанных элемента: |
|линка» | |
| |Переключатели (Radio Group) задания вида отказа линка, |
| |при этом «Фатальный отказ» означает полное прекращение |
| |передачи информации, а «Некорректная передача» - |
| |искажение передаваемых пакетов. |
| |Поля «ПЭ» и «Линк» задают номер ПЭ и номер канала связи|
| |для моделирования отказа. |
| |Кнопка «Задать» активизирует передачу управляющей |
| |информации заданному ПЭ. |
Страницы: 1, 2, 3, 4, 5
|