Опубликован: 22.12.2006 | Доступ: свободный | Студентов: 1234 / 134 | Оценка: 4.73 / 4.45 | Длительность: 18:17:00
ISBN: 978-5-94774-546-7
Специальности: Программист
Лекция 12:

Эффективность вычислительных систем

< Лекция 11 || Лекция 12: 123 || Лекция 13 >

Помехоустойчивые вычисления

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

В этом смысле под надежностью ВС будем понимать вероятность решения поставленной перед ней задачи.

Тогда надежность ВС в составе сложной системы управления определяется следующими факторами:

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

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

Дерево логических возможностей для расчёта надёжности

Рис. 12.2. Дерево логических возможностей для расчёта надёжности

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

  1. Одной из определяющих характеристик надежности является коэффициент готовности К Г
    \begin{align*}
K_{\text{Г}} = \frac{T_0}{T_0 + T_{\text{ВОССТ}}}
\end{align*}
    где Tвосстсреднее время восстановления (в т.ч. ремонта) после отказа. Т.е. к началу цикла управления с вероятностью КГ ВС приступит к решению своей задачи.
  2. Если ВС приступила к решению задачи, то возможны три варианта:

    • в течение всего времени t решения задачи (или t — цикл управления) ВС работала безотказно. Т.е. без каких-либо осложнений задача решена в предположении, что программы составлены правильно;
    • произошел сбой (не усложняя проблемы, учитывая обычную быстротечность процессов, считаем, что сбой — единственный);
    • произошел отказ.

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

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

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

Напомним модель надежности.

Пусть \lambda _{1} — частота сбоев (количество сбоев в единицу времени), найденная как одна из характеристик данной ЭВМ; \lambda _{2} — частота отказов; \lambda _{1} + \lambda _{2} = \lambda. Тогда \lambda  t — количество сбоев и отказов за интересующее нас время t — цикл управления.

Разобьем отрезок t на множество n элементарных отрезков. Можно считать вероятность сбоя или отказа на таком элементарном отрезке равной \lambda t/ n. Вероятность бессбойной и безотказной работы на элементарном отрезке равна 1 - \lambda t/ n. Вероятность того, что на всех элементарных отрезках не произойдет сбоя или отказа, приведет к нахождению степени n этого выражения, а далее найдем предел (рис. 12.3)

\begin{align*}
\lim_{n \rightarrow \infty} (1 - \frac{\lambda t}{n})^n = e^{-\lambda t} =
p_1(t).
\end{align*}

К нахождению вероятности безотказной работы

Рис. 12.3. К нахождению вероятности безотказной работы

Тогда p_{2}(t)+ p_{3}(t) = 1 - e^{-\lambda  t}, и разделив пропорционально частотам событий, получим

\begin{align*}
p_2(t) = \frac{\lambda_1}{\lambda} (1 - e^{-\lambda t}) ,\\
p_3(t) = \frac{\lambda_2}{\lambda} (1 - e^{-\lambda t}).
\end{align*}

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

P = KГ P1(t) + KГ P2(t) Pвосст + KГ P3(t) Pрез = KГ(P1(t) + P2(t)Pвосст + P3(t)Pрез).

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

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

Практически (в АСУ) времени для этого нет. Используют методы программного (алгоритмического) контроля. Например, пусть производится интегрирование уравнения движения летательного аппарата с необходимой точностью. После получения очередных значений координат производится приближенная линейная экстраполяция для получения тех же координат на основе предыдущих положений объекта. Тогда точно полученные координаты должны попасть в определенную \delta - окрестность координат, полученных приближенно. Так производится оценка достоверности результатов. Т.е. программно-алгоритмический контроль основан на способности предсказания ограниченной области, которой должны принадлежать результаты счета.

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

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

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

Иногда резервируют не отдельно ЭВМ, а весь комплекс — ЭВМ плюс внешние устройства памяти, связи и обмена. Такой комплекс называют линейкой.

Различают горячий и холодный резерв.

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

Повышение характеристик надежности управляющего ВК можно видеть на примере роста коэффициента готовности ВК. Пусть для одной ЭВМ К Г = 0,9.

Тогда использование двух (одна резервная) одинаковых ЭВМ обеспечивает

KГ(2) = 1 - (1 - KГ)2 = 0,99 ("две девятки") ;

Использование трех (две резервные) одинаковых ЭВМ обеспечивает

KГ(3) = 1 - (1 - KГ)3 = 0,999 ("три девятки").

Если в системе несколько ЭВМ, то каждая из них может иметь одну или более резервных. Это — распределенный резерв.

Но возможен скользящий резерв, когда несколько ЭВМ являются резервными, и каждая из них способна заменить каждую из основных. Количество резервных ЭВМ в этом случае согласуется с \lambda -характеристикой ЭВМ и количеством основных ЭВМ и приводит к созданию более надежных и более дешевых комплексов.

< Лекция 11 || Лекция 12: 123 || Лекция 13 >