Программное обеспечение модели отказоустойчивой ВС

Разработка отказоустойчивой операционной системы реального времени для вычислительных систем с максимальным рангом отказоустойчивости
Найти, подготовить и загрузить затребованную задачу; Управление взаимодействием частей системы (например, менеджеров процессов и файлов) Поддержка отказоустойчивости вычислительных систем средствами операционных систем реального времени ОС представляет собой совокупность информационно взаимосвязанных и согласовано функционирующих операционных систем каждого отдельного узла сети ВС Описание системных таблиц Модуль маршрутизатора Процедура голосования Инициализация Недостоверность переданной информации была вызвана кратковременным сбоем, при этом ПЭ1 получил достоверные результаты счета, а ПЭ3 – недостоверные Методика анализа отказов Оценка надежностных характеристик отказоустойчивой ВС Программное обеспечение модели отказоустойчивой ВС Программное обеспечение подсистемы проверки Обзор базовых ОСРВ для платформы TMS320C30 Проверка содержимого памяти Системные исследования Разработка алгоритмов Метод сквозного структурного контроля
148576
знаков
34
таблицы
0
изображений

3. Программное обеспечение модели отказоустойчивой ВС


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

Реализовать аппаратно-независимые модули обеспечения отказоустойчивости ОСРВ.

Моделировать ВС любой топологии (3-10 ПЭ).

Возможность обеспечить логику проверки модулей ОСРВ с помощью команд оператора.

Обеспечить работу модели в условиях «мягкого» реального времени.

Таким образом, программное обеспечение было разбито на две части:

ПО узла ВС Proc.

ПО подсистемы проверки 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. Диспетчеризация процессов.


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



Информация о работе «Разработка отказоустойчивой операционной системы реального времени для вычислительных систем с максимальным рангом отказоустойчивости»
Раздел: Информатика, программирование
Количество знаков с пробелами: 148576
Количество таблиц: 34
Количество изображений: 0

Похожие работы

Скачать
172056
0
5

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

Скачать
200314
8
2

... , практически, не используются. Проблема информатизации Минторга может быть решена путем создания Автоматизированной Информационной системы Министерства Торговли РФ (АИС МТ РФ) в соответствии с настоящим Техническим предложением.   ГЛАВА 2. МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ КОМПЛЕКСА ЗАДАЧ "СИСТЕМА ДОКУМЕНТООБОРОТА УЧЕРЕЖДЕНИЯ”. функции поиска и архивации 2.1. Постановка задачи и её спецификация ...

Скачать
152655
7
3

... дейст­вий одной из них; • обращение к внешним устройствам только через операционную систему, что по­зволяет программистам использовать уже написанные драйверы, и не заниматься проблемами обеспечения совместимости с ними вновь разработанных программ; • возможность использования звуковых и видеоприложений. В отличие от Windows З.х новая операционная система не нуждается в установке на компьютере ...

Скачать
214673
1
8

... Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. М.: Госстандарт СССР. ГОСТ 31078-2002. Защита информации. Испытания программных средств на наличие компьютерных вирусов. Типовое руководство. СТБ ИСО/МЭК 9126-2003. Информационные технологии. Оценка программной продукции. Характеристики качества и руководства по их применению. СТБ ИСО/МЭК ТО ...

0 комментариев


Наверх