Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FINAL.doc
Скачиваний:
80
Добавлен:
04.06.2015
Размер:
1.29 Mб
Скачать

Модель восстанавливающихся блоков

МВБ получает «корректный» результат, когда хотя бы одна мультиверсия возвращает «корректный» результат и проверочный модуль принимает правильное решение.

Пусть мы имеем nверсий, их надежности равныr1,r2,…,rnсоответственно. Надежность проверочного модуля естьb. Определим соотношение между корректностью выхода системы (Sn) и количеством мультиверсий (n).

При n=1 система возвращает «корректный» результат, если один модуль возвращает «корректный» результат (обозначим как:m1+) и проверочный модуль принимает правильное решение (обозначим как:b+):S1 =r1b.

При n=2 возможно две ситуации:

        1. Первый модуль возвращает корректный результат (m1+) и проверочный модуль принимает правильное решение (b+). Вероятность этой ситуации естьr1b.

        2. Вызывается второй модуль, т.к. первый модуль вернул ошибку (m1-) и проверочный модуль это обнаружил (b+), либо первый модуль отработал правильно (m1+), а в проверочном модуле произошла ошибка (b-). Вероятность этой ситуации есть: (r1∙ (1-b)+(1-r1) ∙b)∙r2b.

Тогда S2= r1b +(r1∙ (1-b)+(1-r1) ∙b)∙r2b = S1+(r1∙ (1-b)+(1-r1) ∙b)∙r2b

При n = 3 возможно несколько ситуаций:

              1. Решение будет принято с помощью первых двух модулей. Вероятность этого есть S2.

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

m1+,b-,m2+,b-: вероятность этого равнаr1(1-b)∙r2(1-b)

m1-,b+,m2+,b-: вероятность этого равна(1-r1)br2(1-b)

m1+,b-,m2-,b+: вероятность этого равнаr1(1-b)∙(1-r2)b

m1-,b+,m2-,b+: вероятность этого равна(1-r1)b∙(1-r2)b

Отсюда:

S3=S2+[ r1(1-b)∙r2(1-b) + (1-r1)br2(1-b) + r1(1-b)∙(1-r2)b + (1-r1)b∙(1-r2)b]∙r3b

или

S3=S2+[r1(1-b)+(1-r1)b]∙[r2(1-b)+(1-r2)b]∙r3b

Продолжив рассуждения, получим:

Sn=Sn-1+[r1(1-b)+(1-r1)b]∙ … ∙[rn-1(1-b)+(1-rn-1)b]∙rnb (3.1)

В случае если все модули обладают некоторой средней надежностью ¯;r:

Sn=Sn-1+[¯;r(1-b)+(1-¯;r)b]n-1¯;rb (3.2)

Данную формулу можно доказать методом математической индукции. Для этого избавимся от рекурсивности Sn:

Пусть q=[¯;r(1-b)+(1-¯;r)b], тогдаSn=Sn-1+qn-1¯;rb = ¯;rb+q¯;rb+q2¯;rb+…+ qn-1¯;rb.

Пусть q≠ 1 (в противном случаеSnравна 1), тогда можноSnумножить и разделить на (1-q):

Sn= ¯;rb\s\up 9([1+q+q2+…+ qn-1](1-q=¯;rbCombin

Sn= ¯;rb ∙ (1-[¯;r(1-b)+(1-¯;r)b]n) / (1-[¯;r(1-b)+(1-¯;r)b]) (3.3)

При n= 1, формула верна:S1= ¯;rb.

Пусть Sn=Sn-1+[¯;r(1-b)+(1-¯;r)b]n-1¯;rbверна, проверим ее дляn+1:

Sn+1=Sn+[¯;r(1-b)+(1-¯;r)b]n¯;rb

Sn+1= ¯;rb∙(1-[¯;r(1-b)+(1-¯;r)b]n)/(1-[¯;r(1-b)+(1-¯;r)b]) +[¯;r(1-b)+(1-¯;r)b]n¯;rb

Заменим [¯;r(1-b)+(1-¯;r)b] на q:

Sn+1= ¯;rbCombin +qn¯;rb

Sn+1= ¯;rbCombin

Sn+1= ¯;rbCombin

Sn+1= ¯;rb ∙ (1-[¯;r(1-b)+(1-¯;r)b]n+1) / (1-[¯;r(1-b)+(1-¯;r)b]) ■

Как видно из формул 3 .1 и 3 .2, чем выше n, тем меньше каждый новый модуль увеличиваетSn. Поэтому при разработке систем, использующих модель восстанавливающихся блоков, следует принимать во внимание стоимость разработки модулей.

Рассмотрим некоторые особые случаи.

1. Надежность проверяющего модуля равна единице (b= 1)

Sn = ¯;r+¯;r(1-¯;r)+r(1-¯;r)2+…+ ¯;r(1-¯;r)n-1

Sn = 1-(1-¯;r)+¯;r(1-¯;r)+r(1-¯;r)2+…+ ¯;r(1-¯;r)n-1

Пусть t=1-¯;r

Sn = 1-t+(1-t)t+(1-t)t2+…+ (1-t)tn-1

Sn = 1-t+t-t2+t2-t3+…+ tn-1-tn=1-tn

Sn = 1 - (1-¯;r)n

Легко заметить, что Sn→1, если n→∞. В этом случае мы получаем систему, в которой можно не беспокоиться о надежности отдельных модулей, главное чтобы их количество было достаточно велико.

2. Средняя надежность программного модуля равна единице (¯;r= 1)

Sn =1 - (1-b)n

Также как и в предыдущем случае, Sn→1 при n→∞. В этом случае, надежность проверочного модуля не имеет значения, главное чтобы количество мультиверсий было достаточно велико.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]