diplom (Разработка отказоустойчивой операционной системы реального времени для вычислительных систем с максимальным рангом отказоустойчивости), страница 11

2016-07-31СтудИзба

Описание файла

Документ из архива "Разработка отказоустойчивой операционной системы реального времени для вычислительных систем с максимальным рангом отказоустойчивости", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "diplom"

Текст 11 страницы из документа "diplom"

В заключении произведена оценка надежностных характеристик ВС с рангом отказоустйчивости 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, так как на данном этапе не ставилась задача тестирования ПО ВС в условиях жесткого реального времени, а семантически механизмы обеспечения многопроцессности, синхронизации, ввода-вывода практически идентичны механизмам большинства ОСРВ.

Рис. 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 ConnectServerSocket (const char *ServName, int Port)

Создание клиентского сокета номером Port и соединение его с сервером.

static SOCKET CreateServerSocket (SOCKET *PrimSock, int Port)

Создание серверного сокета номером Port и ожидание соединения с клиентом.

static int CreatePipeServer (int Port, HANDLE *pipeRead, HANDLE *pipeWrite)

Создание серверного неименованного канала с номером Port. По указателям pipeRead и

pipeWrite возвращаются файловые дескрипторы на чтение и запись.

static int CreatePipeClient (int Port, HANDLE *pipeRead, HANDLE *pipeWrite)

Создание клиентского неименованного канала с номером Port. По указателям pipeRead и

pipeWrite возвращаются файловые дескрипторы на чтение и запись.

int LinkOut (int Link, void *Addr, int Length)

Посылка данных по заданному каналу связи Link, начиная с адреса Addr, Length байт с приемом квитанции от адресата.

int LinkIn (int Link, void *Addr, int Length)

Прием данных по заданному каналу связи Link, в буфер начиная с адреса Addr, Length байт с контролем целостности пакета и отправкой квитанции.

int Receive (int Chan, int From, void *DataAddr, int DataLength)

Выборка данных из канального буфера Chan, пришедших от ПЭ From, начиная с адреса Addr, Length байт.

int Send (int Chan, void *DataAddr, int DataLength)

Посылка данных по каналу Chan, начиная с адреса DataAddr, длиной DataLength байт.

static DWORD WINAPI LinkThreadFunc (LPVOID lpvThreadParm)

Задача прослушивания канала связи 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 CheckCpuLinks (int Cpu)

Проверка изолированности ПЭ Cpu.

void reconfig(struct SYSTEM* M)

Процедура реконфигурации, путем изменения системных таблиц по информации об отказе. Активизация маршрутизатора для перестройки системных таблиц.

Таблица 3.6

Функции, реализующие функциональную задачу

Имя

Описание

void TaskLoop()

Функция исполнения ФЗ (на данном этапе ФЗ – набор последовательных простейших операторов) по информации от объекта управления. Завершается отсылкой результатов для голосования другим ПЭ и передачей управления задачам прослушивания и голосования.

Дополнительные функции, обеспечивающие моделирование отказов в рамках своего ПЭ, представлены в таблице 3.7.

Таблица 3.7

Функции, реализующие моделирование отказа

Имя

Описание

void KillCpu( int Cpu, int type )

type=1 – фатальный отказ ПЭ, приостановка всех канальных потоков и ФЗ.

type=0 – отказ ФЗ, внесение искажений при вычислении ФЗ.

void KillLink( int Link, int type )

Завершает соответствующий канальный поток, в случае фатального отказа (type=0), или дает указание модулю коммуникации отсылать ошибочные пакеты (type=1).

Диспетчеризация процессов в ПЭ происходит на уровне операционной системы, передача управления происходит с помощью таких механизмов, как семафоры и события. Во время ожидания на прием управления задачи находятся в спячке, почти не занимая процессорного времени. Процесс передачи управления приведен на рис. 3.2. При этом:

Процесс 1: Функциональная задача;

Процесс 2: Прослушивание канала связи с ОУ;

Процесс 3: Процесс голосования и анализа отказов;

Процесс 4: Реконфигурация;

Процесс 5: Отправка согласованных данных;

Процесс 6 .. N+6: Прослушивание N каналов связи с ПЭ ВС;

Рис. 3.2. Диспетчеризация процессов.

Поскольку используются функции блокирующего ввода-вывода базовой ОС, в случае отсутствия данных на входе задача прослушивания канала связи помещается в состояние спячки, практически не занимая при этом процессорного времени, и активизируется только по приходу данных. После этого загружается тело посылки. Далее определяется адресат, и если посылка предназначена другому ПЭ, то посылка передаётся дальше по информации от маршрутизатора, в противном случае производится контроль заголовка (ошибочные посылки игнорируются). При наличии места данные попадают в соответствующий буфер. При наличии данных во всех предварительных буферах, производится голосование и запись результата во входной буфер канала.

3.2 Программное обеспечение подсистемы проверки

Данный модуль призван обеспечить следующие функции:

  • Отображение текущей топологической информации ВС.

  • Отображение вычислительного процесса в ВС.

  • Возможность моделирования различных отказов ВС.

Для обеспечения удобного интерфейса, приложение было сделано в виде диалогового окна с помощью библиотеки классов Windows MFC (Microsoft Foundation Classes).

Рис. 3.3. Диалоговое окно программы Host.

Функциональное назначение элементов диалогового окна представлено в таблице 3.6.

Таблица 3.6

Назначение и функции элементов диалога

Элемент

Описание

Панель «Отказ линка»

Содержит три связанных элемента:

  • Переключатели (Radio Group) задания вида отказа линка, при этом «Фатальный отказ» означает полное прекращение передачи информации, а «Некорректная передача» - искажение передаваемых пакетов.

  • Поля «ПЭ» и «Линк» задают номер ПЭ и номер канала связи для моделирования отказа.

  • Кнопка «Задать» активизирует передачу управляющей информации заданному ПЭ.

Панель «Отказ ПЭ»

Содержит два связанных элемента:

  • Переключатели задания вида отказа ПЭ, при этом «Фатальный отказ» означает полное прекращение функционирования (например зависание), а «Отказ ФЗ» - неправильный расчет ФЗ, с сохранением функций обмена и голосования.

  • Поле «ПЭ» задает номер ПЭ для моделирования отказа.

  • Кнопка «Задать» активизирует передачу управляющей информации заданному ПЭ.

Поле вывода (Rich Edit) «Топология»

Обеспечивает отображение текущей топологической информации в виде модифицированной матрицы связности (текстовый вид), обновляющейся на каждом такте работы ВС.

Поле вывода «Процесс»

Обеспечивает вывод в текстовом или графическом виде согласованных результатов счета ФЗ.

Кнопка «ПУСК»

По нажатию обеспечивает создание конфигурационных файлов для каждого ПЭ, запуск процессов, моделирующих ВС, связывание каналов связи с каждым ПЭ и вывод из спячки канальных потоков прослушивания.

Кнопка «Выход»

Обеспечивает освобождение памяти, уничтожения потоков исполнения, завершение программы.

Для каждой кнопки диалогового окна существует свой обработчик, выполняющий вышеописанные функции. Помимо этого функция InitInstance(), инициализирующая работу диалога, выполняет анализ топологии ВС, создает приостановленные потоки прослушивания каналов для связи с каждым ПЭ, аналогичные описанным в таблице 3.3. Модуль коммуникации выполнен так же, как и модуль коммуникации ПЭ ВС.

При работе с интерфейсом задания отказа, канальные потоки прослушивания приостанавливаются, и возобновляются после отсылки информации ВС. На каждом цикле модуль коммуникации обеспечивает прием текущей топологии ВС, согласованные результаты счета ФЗ и передает их на отображение в соответствующие поля вывода.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее