Разработка специализированной распределенной операционной системы реального времени для отказоустойчивых ВС с рангом отказоустойчивости N(N-1)

Описание и общие требования к системам реального времени. Поддержка отказоустойчивости вычислительных систем средствами операционных систем реального времени, их параметры. Анализ концепции построения и работы системы с рангом отказоустойчивости N-1.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 18.09.2018
Размер файла 214,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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. Модуль коммуникации выполнен так же, как и модуль коммуникации ПЭ ВС.

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

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

3.3 Портирование ОСРВ на платформу TMS320C30

Под портированием (от англ. porting) понимается изменение программного обеспечения для функционирования в услвиях разных архитектур процессорных элементов.

Унивеpсальность и pабота в pеальном масштабе вpемени пpоцессоpов семейства TMS320 позволяют использовать их в шиpоком кpуге pазpаботок, таких как:

ЦОС ОБЩЕГО НАЗНАЧЕНИЯ:

цифpовая фильтpация;

свертка;

коppеляция;

пpеобpазование Гильбеpта;

быстpое пpеобpазование Фуpье;

адаптивная фильтpация и др.

ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА :

спектpальный анализ;

генеpиpование функций;

сейсмическая обpаботка;

анализ переходных процессов;

цифpовая фильтpация и др.

ВОЕННАЯ ТЕХНИКА, управляющие системы и др.

секpетная связь;

обpаботка сигналов pадаpа;

навигация;

упpавление pакетами;

автоматические системы;

бортовые системы и др.

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

Ниже пеpечислены основные параметры TMS320C30:

60 нс вpемя выполнения однотактной команды

33.3 MFLOPS (миллион операций с плавающей точкой в секунду)

16.7 MIPS (миллион инструкций в секунду)

Блок ПЗУ 4К х 32 двойного доступа без такта ожидания

Два блока ОЗУ 1К х 32 двойного доступа без такта ожидания

Кэш-память команд 64 х 32

32-pазpядные слова данных и команд, 24-pазpядный адpес

40/32-бит плавающая точка/целые числа умножитель и АЛУ

32-pазpядный кольцевой сдвиговый pегистp

Восемь pегистpов pасшиpенной точности (аккумулятоpы)

Два адpесных генеpатоpа с восемью вспомогательными pегистpами и два аpифметических блока вспомогательных pегистpов

Внутpикpистальный контpоллеp пpямого доступа в память (DMA) для независимых опеpаций ввода/вывода и центpального пpоцессоpного блока

Целочисленные, с плавающей точкой и логические опеpации

Двух- и тpехопеpандные команды

Паpаллельная pабота АЛУ и умножителя в одном такте

Возможность повтоpения блоков команд

Циклы с нулевыми непроизводительными издержками и пеpеходы за один цикл

Условные переходы и возвраты

Команды для поддеpжки мультипpоцессоpной pаботы

Два последовательных порта для обмена 8/16/32 - pазpядными сообщениями

Два 32-pазpядных таймера

Два внешних флага общего назначения, четыре внешних прерывания

3.4 Обзор базовых ОСРВ для платформы TMS320C30

Для построения отказоустойчивой системы реального времени на базе процессора TMS320C30 необходимы базовые механизмы и средства, которые были перечислены в главе 1. В настоящее время существует достаточно много базовых ОСРВ для процессоров серии TMS320. Качественно они мало чем отличаются друг от друга, различия могут возникать из-за специфики применения этих ОСРВ. Приведем характеристики одной из самых известных ОСРВ, переносимых на TMS320C30.

Операционная система SPOX.

SPOX поддерживает несколько различных вариантов архитектур:

дополнительные вычислительные среды для рабочих станций;

однородные встраиваемые системы;

неоднородные встраиваемые системы;

персональные компьютеры с процессором Intel Pentium под управлением Microsoft Windows 95.

Среда SPOX состоит из четырех основных компонентов (рис. 4.1):

ядро SPOX (SPOX-KNL) обеспечивает вытесняющую приоритетную многозадачность, высокоскоростную обработку прерываний, распределение памяти, различные механизмы межзадачного обмена информацией и синхронизации, а также независимый от устройств ввод-вывод. Результатами тестирования SPOX-KNL стали следующие цифры:

Время захвата семафора - 7.9 мкс;

Время переключения задач одинакового приоритета - 15 мкс;

Время реакции на прерывание - 33 мкс;

Время завершения прерывания - 1.4 мкс;

Задержка диспетчеризации (время вытеснения задачи с большим приоритетом задачу с меньшим) - 12.24 мкс;

Время переключения контекста - 7 мкс;

Минимальный размер системы 1532 слова.

модуль SPOX-LINK поддерживает «прозрачное» взаимодействие между целевой платформой и хост-системой и дающее доступ к основным ресурсам хост-машины, таким как консоли, файловые системы и сети;

библиотека (SPOX-MATH) содержит свыше 175 математических функций;

высокоуровневый отладчик SPOX-DBUG.

Рис. 4.1. Структурная схема ОС SPOX

Все четыре подсистемы реализованы как библиотеки C-вызываемых перемещаемых модулей. При этом системные функции SPOX подключаются к объектному коду приложения на этапе связывания.

С помощью дополнительного модуля SPOX-MP становится возможной многопроцессорная обработка сигналов. Настройка на конкретную конфигурацию сети процессорных элементов задается в конфигурационном файле, что позволяет не привязываться к конкретной топологии в процессе разработки приложения. SPOX-MP обеспечивает динамическую передачу данных и сообщений по сети процессорных элементов, глобальное пространство имен, а также лавинообразную первоначальную загрузку сети.

Таким образом ОСРВ SPOX имеет необходимые механизмы для создания отказоустойчивой распределенной операционной системы реального времени, концепция построения которой описана в главе 2.

Модули маршрутизации, реконфигурации, голосования реализованы как аппаратно-независимые процедуры операционной системы. Модули оперируют данными, заданными в конфигурационном файле, что не привязывает их к конкретной топологии. Реализованные методом структурного программирования на языке Си, модули могут быть перенесены на большинство платформ, включая и TMS320C30.

Модуль коммуникации оперирует высокоуровневыми функциями обмена, опирающимися на драйвера операционной системы. Обмен данными осуществляется через последовательные порты с помощью встроенных механизмов передачи маркера между соседними процессорными элементами.

Зависимость программного обеспечения в рамках рассматриваемой операционной системы возникает на этапе самодиагностирования процессора с целью получения информации о своем состоянии.

Модуль диагностики, реализованный в виде набора функций, возвращающих код ошибки, призван решать следующие задачи:

На этапе инициализации:

Тестирование регистров общего назначения процессора;

Проверка правильности выполнения арифметических, логических и др. операций;

Занесение в соответствующую таблицу контрольных сумм неизменных во время выполнения программ областей памяти (исполняемый код, константы), размещение которых в памяти проводится на этапе сборки рабочего кода в соответствии с картой памяти;

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

Тестирование регистров общего назначение;

Проверка правильности выполнения арифметических, логических и др. операций;

Вычисление контрольных сумм указанных областей памяти и сопоставление их с вычисленными на этапе инициализации.

Этот тест выполняется первым для проверки регистров повышенной точности (R0-R7) и вспомогательных регистров (АR0-АR7). Тестирование сводится к проверке регистров на запись/чтение из памяти/в память и проверке правильности перемещения данных из регистра в регистр. Тест разбивается на два этапа:

Проверка вспомогательных регистров (целочисленные значения). Проверка реализована по следующему алгоритму:

Инициализировать две целочисленные переменные начальным и ожидаемым значением тестирования;

Загрузить начальное значение в регистры (АR0-АR7).

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

Запись в стек модифицированных регистров.

Произвести операцию сдвига влево содержимого стека на N разрядов в соответствии с номером записанного регистра.

Записать данные из стека в регистры.

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

Сравнить содержимое регистра АR7 с ожидаемым, заранее рассчитанным значением.

Проверка регистров повышенной точности (значения с плавающей точкой) проводится аналогично.

Функция register_test реализована на языке Ассемблер в соответствии с архитектурой и системой команд TMS320C30.

Данный тест разделен на три различных модуля. Вместе они проверяют следующие числовые операции:

1. Логические, сдвиг, циклический сдвиг.

2. Операции с плавающей запятой, выполненные над одним значением и соответствующие параллельные команды.

3. Операции с плавающей запятой и целочисленные, выполняющие сложение, вычитание, и умножение и соответствующие параллельные команды.

В тестах проверяются команды, перечисленные в Таблице 4.1.

Таблица 4.1 Перечень тестируемых команд

Тест

Команды

1

2

Тест 1

ROL - циклический сдвиг влево,

ROLC - циклический сдвиг влево через перенос,

ROR - циклический сдвиг вправо,

RORC - циклический сдвиг вправо через перенос,

AND3 || STI - поразрядное логическое И с сохранением,

LSH3 || STI - логический сдвиг с сохранением,

NOT || STI - дополнение с сохранением,

OR3 || STI - поразрядное логическое ИЛИ с сохранением,

XOR3 || STI - поразрядное исключающее ИЛИ с сохранением,

ABSI || STI - абсолютное значение целого с сохранением,

NEGI || STI - отрицание целого с сохранением,

ASH3 || STI - арифметический сдвиг с сохранением,

1

2

NOT - поразрядное логическое дополнение,

ABSI - абсолютное значение целого числа,

NEGB - отрицание целого с заемом,

ASH - арифметический сдвиг,

NEGI - отрицание целого,

TSTB3 - проверка битовых полей,

CMPI3 - сравнение целых,

STI || STI - сохранение целых,

LDI || LDI - загрузка целых,

XOR - поразрядное исключающее ИЛИ.

Тест 2

STF - сохранить значение с плавающей точкой,

LDF - загрузить значение с плавающей точкой,

LDE - загрузка значения экспоненты с плавающей точкой,

LDM - загрузка значения мантиссы с плавающей точкой,

FIX - преобразование в целое,

FLOAT - преобразование в значение с плавающей точкой,

ABSF - абсолютное значение числа с плавающей точкой,

NEGF - отрицание значения с плавающей точкой,

NORM - нормирование значения с плавающей точкой,

RND - округление значения с плавающей точкой,

POPF - выталкивание значения с плавающей точкой из стека,

PUSHF - загрузка в стек значения с плавающей точкой,

ABSF || STF - абсолютное значение числа с плавающей точкой с сохранением значения с плавающей точкой,

FIX || STI - преобразование в целое с сохранением,

FLOAT || STF - преобразование в значение с плавающей точкой с сохранением значения с плавающей точкой,

PUSH - загрузка целого в стек,

POP - выталкивание целого из стека,

LDF || STF - загрузить значение с плавающей точкой с сохранением значения с плавающей точкой,

1

2

NEGF || STF - отрицание значения с плавающей точкой с сохранением значения с плавающей точкой,

STF || STF - сохранения значений с плавающей точкой,

LDF || LDF - загрузка значений с плавающей точкой.

Тест 3

SUBF3 - вычитание значений с плавающей точкой,

SUBF3 || STF - значения с плавающей точкой с сохранением значения с плавающей точкой,

SUBB - вычитание целых с заемом,

SUBC - условное вычитание целых,

SUBF - вычитание значений с плавающей точкой,

SUBRB - вычитание целых в обратном порядке с заемом,

SUBRF - вычитание с плавающей точкой в обратном порядке,

SUBI3 || STI - вычитание целых с сохранением,

ADDC - сложение целых с переносом,

ADDF - сложение значений с плавающей точкой,

ADDF3 - сложение значений с плавающей точкой,

ADDF3 || STF - значений с плавающей точкой с сохранением значения с плавающей точкой,

ADDI3 || STI - сложение целых с сохранением,

MPYF- умножение значений с плавающей точкой,

MPYF3 - умножение значений с плавающей точкой,

MPYI - умножение целых,

MPYF3 || STF - умножение значений с плавающей точкой с сохранением значения с плавающей точкой,

MPYF3 || ADDF3 - умножение и сложение с плавающей точкой,

MPYF3 || SUBF3 умножение и вычитание с плавающей точкой,

MPYI3 || STI - умножение целых с сохранением,

MPYI3 || ADDI3 - умножение и сложение целых,

MPYI3 || SUBI3 - умножение и вычитание целых,

CMPF - сравнение значений с плавающей точкой,

CMPF3 - сравнение значений с плавающей точкой.

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

Данный тест формирует по одному из самых простых алгоритмов так называемый CRC (Cyclic Redundancy Check) блока памяти, указанный в параметрах теста. Правильный (ожидаемый) CRC подтверждает правильность данных (кода) в указанной, неизменной (nonvolatile) в процессе исполнения задач области памяти.

Формирование CRC происходит по следующему алгоритму:

Инициализация начального значения CRC нулем; маска контрольных битов выбирается произвольно, например - 80200003(Н).

Наложить маску на CRC и суммировать по модулю два значения контрольных битов.

Сдвинуть CRC влево на 1 разряд и прибавить результат шага 2.

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

Если блок закончился шаг 6, иначе шаг 2.

Сравнить полученный CRC с ожидаемым.

Ожидаемые значения могут быть получены на этапе инициализации. Функция crc_test реализована на языке Ассемблер в соответствии с архитектурой и системой команд TMS320C30.

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

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

Дальнейшее наращивание функций ОСРВ может вестись в нескольких направлениях:

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

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

Усовершенствование подсистемы сбора и анализа отказов для диагностирования множественных отказов на одном такте работы системы. Однако, следует учесть, что обнаружение большего числа отказов требует пропорциональное увеличение числа обменов между модулями голосования, а также числа процессорных элементов, участвующих при голосовании.

Расширить возможности самодиагностирования ПЭ подсистемой промежуточных тестов ввода-вывода, тестом таймеров и др.

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

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

Заключение

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

Время реакции системы;

Время переключения контекста;

Наличие средств диспетчеризации;

Наличие средств синхронизации, межзадачного и межпроцессорного взаимодействия;

Однако требования, предъявляемые к надежности вычислительных систем, таковы, что этих средств зачастую оказывается недостаточно. В ходе аналитической работы, была доказана необходимость и описана структура таких встроенных механизмов обеспечения отказоустойчивости ОСРВ, как:

Средства маршрутизации пакетов данных в сети ПЭ;

Средства высокоуровневого межпроцессорного обмена;

Протокол голосования, анализа отказов в ВС, и принятия консолидированного решения;

Средства реконфигурации ВС.

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

Далее была предложена вероятностная модель отказоустойчивой ВС, рассчитаны ее надежностные характеристики, показавшие увеличение среднего времени наработки ВС на отказ в 2,5 - 3,5 раз с расширением ВС до 5-7 узлов, даны рекомендации по выбору типа ВС при ее проектировании.

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

Реализация модели позволила выделить ключевые особенности системного ПО, характерного для организации отказоустойчивых вычислений в целом:

Наличие глобального системного цикла, задаваемого организацией внешних устройств или объекта управления.

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

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

Использование сторожевых таймеров во всех активных модулях ПО, для предотвращения зависания вычислительного процесса и межпроцессорного обмена.

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

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

Даны рекомендации по портированию системного ПО на платфртму TMS320C30. Выбор платформы осуществлялся по таким критериям, как: наличие широкого спектра совместимых базовых ОСРВ, оптимизация микропроцессора под задачи управления, тактовая частота микропроцессора, объем оперативной памяти, наличие сред разработки и отладки и т.д. Реализованы аппаратно-зависимые модули ПО в части процедур самодиагностики процессора и памяти.

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

Дальнейшее развитие реализованных в представленной работе принципов в еще более сложные системы позволит решать еще более широкий круг задач в рамках обеспечения надежности вычислительных систем.

Список источников

1. Затуливетер Ю.С. Введение в проблему параметризованного синтеза программ для параллельных компьютеров. -М., 1993 (Препринт/Институт проблем управления).

2. Харченко В.С., Лысенко И.В., Мельников В.А. Оценка и обеспечение живучести информационно-вычислительных и управляющих систем технических комплексов критического использования. Зарубежная радиоэлектроника. 1996. №1.

3. Э.В. Евреинов. Однородные вычислительные системы и среды. -М. Радио и связь, 1981.

4. А. Вильямс. Системное программирование в Windows 2000. -СПб. Питер, 2001.

5. С. Кейслер. Проектирование операционных систем для малых ЭВМ,-М., Мир, 1986.

6. А. Шоу. Логическое проектирование операционных систем.-М.,Мир, 1981.

7. К.А. Иыуду, С.А. Кривощеков, Математические модели отказоустойчивых ВС. -М., МАИ, 1989.

8. К.А. Иыуду. Надежность, контроль и диагностика вычислительных машин и систем. -М., Высшая школа,1989.

9. Л.П. Глазунов и др. Основы теории надежности автоматических систем управления. -М.,Энергоатомиздат, 1984.

10. Р.Л. Лонер, Г.Н. Уилкинсон, Устойчивые статистические методы оценки данных: Москва, Машиностроение, 1984

11. Артамонов Г.Т., Тюрин В.Д. Топология сетей ЭВМ и многопроцессорных систем. -- М.: Радио и связь, 1991.

12. Е.С. Вентцель, Теория вероятностей. М. НАУКА, 1969.

13. В.Н. Агафонов. Спецификация программ. -М., Наука, 1987.

14. А. Мешков, Ю. Тихомиров. Visual C++ и MFC. -СПб. БХВ-Санкт-Петербург, 2001.

15. Л.Б. Богуславский. Управление потоками данных в сетях ЭВМ. -М., Энергоатомиздат, 1984.

16. В.И. Матов и др. Теория проектирования вычислительных машин систем и сетей. -М., МАИ, 1999.

17. В.В. Липаев. Надежность программного обеспечения АСУ. -М., Энергоиздат, 1981.

17. Д.И. Козлов и др., Управление космическими аппаратами зондирования земли. - М.: Машиностроение, 1998.

18. Б. Страуструп. Язык программирования С++. - Киев. ДиаСофт, 1993.

19. А.Г. Додонов и др. Введение в теорию живучести вычислительных систем. - Киев, Наук. Думка, 1990.

20. Э.М. Мамедли, Р.Я. Самедов, Методы восстановления вычислительного процесса в отказоустойчивых цифровых систем управления реального времени, Препринт Института Проблем Управления Российской Академии Наук, Москва, 1998.

21. Гуляев В.А., Додонов А.Г. , Пелехов С.Л. Организация живучих вычислительных структур.- Киев.: Наукова Думка , 1987

22. Гришин Ю.П., Казаринов Ю.М. Динамические системы, устойчивые к отказам.- М.: Радио и связь, 1985.

23. Транспьютеры. Архитектура и программное обеспечение: Пер. с англ. Под ред. Г.Харпа.-М.: Радио и связь, 1993

24. TMS320C3x User's Guide, Texas Instruments, Inc., Dallas, Texas, 1994

25. Дейтел Г., Введение в операционные системы. М, Мир, 1987.

26. Дансмур М., Дейвис Г. Операционная система UNIX и программирование на языке Си. М. "Радио и связь". 1989.

27. К.Ю. Богачев. Операционные системы реального времени. М. 2001.

28. Артамонов Г.Т. Топология регулярных вычислительных сетей и сред. -- М.: Радио и связь, 1985.

29. Мартин Дж. Программирование для вычислительных систем реального времени. - М.: Наука, 1975.

Экономическое обоснование дипломных проектов. Методическое пособие. -М., МАИ, 1991.

Руководство Р2.2.013-94 Гигиенические критерии оценки условий труда по показателям вредности и опасности факторов производственной среды, тяжести и напряженности трудового процесса.

Юдин Е.Я., Белов С.В. и др. Охрана труда в машиностроении. М.: Машиностроение, 1983, 432с.

ГОСТ 27954 - 88 Видеомониторы персональных электронных вычислительных машины. Типы, основные параметры, общие технические требования.

СаНПин 2.2.2.542-96. Гигиенические требования к видеодисплейным терминалам (ВДТ). персональным электронно-вычислительным машинам (ПЭВМ) и организации работы. М.: Информационно-издательский центр Госкомэпиднадзора России, 1996. 65 с.

ГОСТ 12.1.006 - 84 Электромагнитные поля радиочастот. Допустимые уровни на рабочих местах и требования к проведению контроля. Изменение к ГОСТ.

ГОСТ 12.1.005-88. Воздух рабочей зоны. Общие санитарно - гигиенические требования. М.: Изд-во стандартов, 1990. 14 с.

СНиП 23-05-95 Естественное и искусственное освещение.

www.pcweek.ru

www.osp.ru

www.realtime-info.be

www.rtsoft-training.ru

www.ti.com

www.windriver.com

www.eonic.com

Размещено на Allbest.ru

...

Подобные документы

  • Основные характеристики систем реального времени, типы архитектур. Система приоритетов процессов (задач) и алгоритмы диспетчеризации. Понятие отказоустойчивости, причины сбоев. Отказоустойчивость в существующих системах реального времени (QNX Neutrino).

    контрольная работа [428,8 K], добавлен 09.03.2013

  • Характеристики, основы применения, архитектура жестких и операционных систем реального времени. Последовательное программирование задач реального времени. Структура и языки параллельного программирования, мультипрограммирования и многозадачности.

    курсовая работа [195,9 K], добавлен 17.12.2015

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

    реферат [391,5 K], добавлен 28.12.2007

  • Обзор требований проблемной области. Особенности управления задачами. Исполнительные системы реального времени. Программирование на уровне микропроцессоров. Модели и методы предметной области. Реализация прототипа системы реального времени.

    курсовая работа [263,1 K], добавлен 15.02.2005

  • Рассмотрение основных принципов и методов проектирования систем реального времени. Описание конструктивных и функциональных особенностей объекта управления, построение диаграммы задач. Выбор аппаратной архитектуры, модели процессов-потоков, интерфейса.

    курсовая работа [1,2 M], добавлен 19.01.2015

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

    реферат [55,0 K], добавлен 11.12.2011

  • Планирование задач в операционной системе реального времени. Основные виды планирования применительно к задачам реального времени. Выбор приемлемого алгоритма планирования при проектировании RTS. Статическое прогнозирование с использованием таблиц.

    контрольная работа [40,7 K], добавлен 28.05.2014

  • Понятие и функции операционной системы. Основная особенность операционных систем реального времени. Работа с электронными таблицами. Фильтрация записей в таблице MS Excel. Установка пользовательского автофильтра в оборотную ведомость движения товаров.

    контрольная работа [547,8 K], добавлен 21.11.2013

  • Современные SCADA-системы и их безопасность. Диспетчерское управление и сбор данных. Основные компоненты SCADA-систем. Система логического управления. База данных реального времени. Автоматическая конвертация проектов для разных операционных систем.

    реферат [253,7 K], добавлен 25.11.2014

  • Определение необходимости применения средств промышленной автоматизации, контроллеров, промышленных сетей и компьютеров, операционных систем реального времени для повышения производительности предприятия. Концепция построения "интеллектуальных" зданий.

    контрольная работа [689,6 K], добавлен 13.10.2010

  • Сущность концепции ГРИД-системы как типа суперкомпьютера, ее проектирование и эксплуатация, обзор существующих разработок. Подход к моделированию, описание образов состояний в пространстве признаков. Оценка отказоустойчивости, надежности и эффективности.

    дипломная работа [1,8 M], добавлен 16.05.2017

  • Характеристика устройств реального времени: принципы их создания, виды, практическое применение к операционным системам для персональных компьютеров. Основные свойства системы LynxOS, поддержка приложений, сетевые возможности. Средства кросс-разработки.

    реферат [33,1 K], добавлен 02.12.2013

  • История развития вычислительной техники. Понятие высокой готовности и отказоустойчивости системы. Разработка функциональной схемы отказоустойчивого кластера и структурной схемы виртуального стенда. Технико-экономическое обоснование объекта проектирования.

    дипломная работа [2,7 M], добавлен 26.02.2013

  • Признаки открытой магистрально-модульной системы. Требования к УЭВМ. Основные группы открытых стандартов и протоколов ОММС. Требования к аппаратным средствам, модель и свойства архитектуры. Принципы работы шин. Конструктивное исполнение магистралей.

    презентация [2,0 M], добавлен 23.07.2015

  • Инструментальные средства проектирования интеллектуальных систем. Анализ традиционных языков программирования и представления знаний. Использование интегрированной инструментальной среды G2 для создания интеллектуальных систем реального времени.

    контрольная работа [548,3 K], добавлен 18.05.2019

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

    курсовая работа [40,7 K], добавлен 18.04.2012

  • Визуальная среда моделирования в масштабе реального времени, типичные проблемы разработки робототехнических систем. Описание среды Apartment Environment, перемещение камеры по осям координат. Описание системы координат и алгоритма перемещения объектов.

    контрольная работа [2,1 M], добавлен 20.09.2010

  • Общая характеристика задач фиксации времени выполнения программ: выполнение процессов реального времени, профилирование. Программируемый интервальный таймер как весьма сложная система. Анализ основных функций, возвращающих стандартное время Windows.

    курсовая работа [82,7 K], добавлен 18.05.2014

  • Основні вимоги до операційних систем реального часу, забезпечення передбачуваності або детермінованості поведінки системи в найгірших зовнішніх умовах. Процеси, потоки та завдання, планування та пріоритети, пам'ять, переривання, годинники і таймери.

    реферат [29,4 K], добавлен 21.05.2010

  • Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.

    дипломная работа [1,7 M], добавлен 14.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.