Рефераты. Разработка отказоустойчивой операционной системы реального времени для вычислительных систем с максимальным рангом отказоустойчивости p> [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() |Задача голосования, активизирующаяся по |
| |заполнению канальных буферов, активизирующая |
| |обмен в сети результатами голосования и |
| |передающая управление анализатору отказов. |

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.