- •Содержание
- •Введение
- •1 Надёжность электронной аппаратуры
- •1.1 Основные определения стандартов надежности
- •1.2 Обеспечение надёжности электронной аппаратуры на этапах проектирования
- •1.2.1 Этап аванпроекта
- •1.2.2 Этап эскизного проектирования
- •1.2.3 Этап технического проектирования
- •1.2.4 Этап изготовления опытных комплектов
- •1.2.5 Этап эксплуатации
- •1.2.6 Контрольные вопросы и задания
- •2 Основные показатели надежности
- •2.1.1 Интенсивность отказов
- •2.1.2 Частота отказов
- •2.1.3 Среднее время наработки на отказ
- •2.1.4 Среднее время между отказами
- •2.1.5 Вероятностные показатели надежности
- •2.1.5.1 Вероятность безотказной работы
- •2.1.5.2 Экспоненциальная модель вероятности безотказной работы
- •2.1.5.3 Модель вбр Вейбулла-Гнеденко
- •2.1.5.4 Модель Пуассона
- •2.1.5.5 Вероятность отказа изделия в работе
- •2.1.6 Поток отказов
- •2.1.7 Коэффициент готовности
- •2.1.7.1 Стационарный коэффициент готовности
- •2.1.7.2 Коэффициент оперативной готовности
- •2.1.8 Погрешность оценки показателей надежности
- •2.1.8.1 Погрешность оценки показателей
- •2.2 Применение показателей надежности
- •2.3 Надёжность невосстанавливаемых систем
- •2.4 Надежность дискретных элементов
- •2.5 Пример расчёта надёжности нерезервированных схем
- •3 Надежность резервированных вычислительных систем
- •3.1 Резервирование изделий
- •3.1.1 Резервирование на уровне эвм
- •3.1.2 Резервирование на уровне устройств
- •3.1.3 Резервирование с использованием к-кодов
- •3.1.4 Резервирование в специализированных эвм
- •3.2 Представление резервированных объектов
- •3.3 Параметры НаДёжносТи при нагруженном резерве
- •3.3.1 Расчет показателя безотказной работы
- •3.3.2 Определение средней наработки на отказ
- •3.4 Параметры надёжносТи при ненагруженном резерве.
- •3.5 Надёжность при сложной структуРе резервирования.
- •3.5.1 Скользящий нагруженный резерв
- •3.6 Скользящий ненагруженный резерв
- •4 Метод минимальных путей и минимальных сечений
- •4.1 Примерный расчет надежности методом мп & мс
- •5 Применение сложных структур резерва
- •5.1 Методы избыточного кодирования
- •5.2 Логика с переплетением
- •5.3 Мажоритарное резервирование
- •6 Надежность компьютерных сетей
- •6.1. Расчёт надёжности компьютерных систем
- •7 Надежность систем массового обслуживания
- •8. Контроль и диагностика систем
- •8.1 Основные положения
- •8.2 Контроль по модулю
- •8.3 Построение контрольных тестов
- •8.4 Системы с программным контролем
- •8.5 Встроенный оперативный контроль
- •8.5.1 Встроенный контроль счетчика
- •8.5.2 Встроенный контроль дешифратора
- •8.5.3 Показатели встроенного контроля
- •8.6 Методы диагностирования
- •8.6.1 Основные положения
- •8.6.2 Методы построения диагностических тестов
- •8.6.2.1 Квазиоптимальные тесты шеннона-фано
- •8.6.3 Метод декомпозиции диагностируемой системы
- •8.7 Системы диагностики при эксплуатации
- •8.7.1 Обнаружение отказов при эксплуатации
- •8.7.2 Диагностика периферийных устройств
- •8.7.3 Диагностика многопроцессорных систем
- •9 Надежность программного обеспечения
- •9.1 Классификация ошибок программирования
- •9.2 Способы повышения надежности по
- •9.3 Основные модели надежности по
- •9.3.1 Модель Литтлвуда - Вералла
- •9.3.2 Модель джелинского - моранды
- •9.3.3 Модель шумана
- •9.3.4 Модель шика-вольвертона
- •9.4 Прогнозирование надежности по
- •9.5 Методы структурной избыточности по
- •9.6 Избыточность операционной системы
- •9.7 Метод контрольных функций
- •9.8 Методы тестирования программ
- •9.9 Функциональные методы тестирования
- •10 Отказоустойчивые компьютерные системы
- •11 Обслуживание систем в эксплуатации
- •11.1 Элементы теории восстановления систем
- •11.2 Оптимальные правила предупредительных замен
- •11.3 Оптимальные правила проверок
- •Список литературы
9.5 Методы структурной избыточности по
Осознание факта, что за счет технологических методов надежность программ повышается, но только до определенного уровня, вызвало необходимость введения методов резервирования.Для этого разрабатываются две или несколько версий программы различными программистами, с различными алгоритмами. Ошибки обнаруживаются при отладке путем сравнения результатов. Корректируется большой процент отклонений. Дальше программы работают псевдопараллельно непосредственно в эксплуатации. Если таких версий две, принято говорить о дуальном программировании. При дуальном программировании необходимы критерии по определению правильного результата при их расхождении.
При N-версионном программировании результат при расхождении определяется мажоритированием.
Недостаток:трудоемкий и дорогой процесс, требующий дополнительной аппаратуры и затрат.
Поэтому, представляет интерес модифицированное дуальное программирование, где наряду с основной работает упрощенная программа, резервная [28]. Если результат отличается больше допустимой погрешности, считают, что отказала основная программа, как менее надежная.
Рассмотрим систему из двух программ.
Рисунок 9.3- Граф состояний дуального программирования
Обозначим q1, q2- вероятности отказов программ. Система дуального программирования может находиться в одном из четырех состояний:
- обе программы работают, вероятность этого события
р = 1 – q1- q2+ q1q2;
-отказала основная программа, вероятность этого события
q01 = q1(1-q2) = q1-q1q2;
отказала резервная программа, вероятность этого события
q10= q2(l – q1) = q2- q1q2;
-отказ основной и резервной программы, вероятность этого события
q11= q1q2.
Тогда, общая вероятность отказа системы
qc= q10+ q11= q2– q1q2+ q1q2= q2
Пусть δ1, δ2, δ3, δ4- погрешность, вносимая системой программ в каждом случае. Тогда средняя погрешность системы из двух программ составит
Пример расчета надежности и точности системыс применением модифицированного дуального программирования.
Пусть δ1= 0.01; δ2- 0.1; q1= 0.05; q2= 0.001,
тогда δ12= 0.95 * 0.01 + 0.05 * 0.1= 0.0145 ; qc = q2 = 0.001.
Т.е. средняя погрешность возросла в 1.5 раза, а вероятность отказа уменьшилась в 50 раз. Система эффективна, если погрешность не имеет решающего значения.
9.6 Избыточность операционной системы
Некоторое повышение надёжности ПО даёт принцип виртуальной машины.При помощи общего монитора М коммутируются индивидуальные операционные системы, создающие иллюзию высокой степени изоляции ОС1, ОС2, ОСЗ и пользователей П1, П2, ПЗ.
Рисунок 9.4-Структура а) — мультипрограммной работы; б) — виртуальной машины;
9.7 Метод контрольных функций
Одновременно с вычисляемой функцией, определяется функция, которая находится в контрольном соотношении с основной. Это позволяет не только обнаружить отказ одной из программ, но также восстановить искажённый результат отказавшей программы на основании результата, полученного по безошибочно работающей программе.
Простейший пример метода вычислений функций sinx или cosx. Контрольное соотношение cos2x + sin2x = 1.
9.8 Методы тестирования программ
Тестирование — проверка реальной работы программы с анализом результатов реакции на специально подобранные наборы входных данных — тесты. Тестирование бывает полное либо выборочное. Полное тестирование часто нереально из-за большого числа тестов. Поэтому, применяютструктурное выборочное тестирование,основанное на разделении исходного пространства данных на классы, подтверждающие работоспособность определённых элементов структуры программы. Строят генераторы тестовых наборов, работающих по алгоритму рисунка 9.5.
Рисунок 9.5- Алгоритм генератора тестов
Исходя из тестируемой программы Т выбирают набор путей П в структуре программы по некоторым критериям К (например, пути должны активизировать работу). Затем вырабатывают ограничения О, преобразующиеся модулем ПВ в ограничения к исходным тестам. Только тогда, по алгоритму А генерируют тестовые наборы ТН.
ТЕСТИРОВАНИЕ ВЕТВЕЙ заключается в том, что выбранные пути должны прерывать не только действие операторов, но и все ветвления программы (динамическое тестирование). Циклы без возврата и с возвратом.
ВЕРИФИКАЦИЯ ПРОГРАММ— доказательство их правильности при помощи математических методов доказательства теорем.
Данный процесс может быть автоматическим, но практические результаты в этом направлении пока незначительны.
В отличие от верификации, символическое тестирование программ заключается в проверке правильности числовых результатовработы программ при специально подобранных значениях входных переменных —тестовых наборов.
В некоторых случаях тестирование может производиться и символически — обозначение входных переменных, позволяющих выразить выходы программы также в символическом виде.
Преимущество символического тестирования перед числовым, заключается в том, что если числовой тест позволяет проверить работу программы на отдельных числовых значениях входных наборов, то символическое тестирование оперирует множествами исходных данных, определяемых ограничениями.