Научная статья на тему 'К проблеме выбора мультиверсионной модели повышения надежности программного обеспечения'

К проблеме выбора мультиверсионной модели повышения надежности программного обеспечения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
123
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МУЛЬТИВЕРСИОННЫЕ МОДЕЛИ / МОДЕЛЬ ВОССТАНАВЛИВАЮЩИХСЯ БЛОКОВ / МУЛЬТИВЕРСИОННОЕ ПРОГРАММИРОВАНИЕ / N-VERSION APPROACH / MODEL RECOVERY BLOCKS / N-VERSION PROGRAMMING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Котенок Андрей Владимирович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Котенок Андрей Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Preliminaries to choosing of a n-version approach to fault tolerant software systems

This paper describes troubles of an appropriate N-Version Approach choosing. It introduces the feature«Correctness» in evaluating systems and find out the relation between this property and the reliability of the used Acceptance Test and the number of versions of system. The chart displaying representing the relation between system «Correctness» and properties of N-Version System is presented.

Текст научной работы на тему «К проблеме выбора мультиверсионной модели повышения надежности программного обеспечения»

Библиографический список

1. Ботт, М. Внутреннее строение Земли / М. Ботт. М.: Мир, 1974.

2. Song,X. Seismological evidence for differential rotation of the Earth’s inner core / X Song, P. G. Richards // Nature. 1996. Vol. 382. P. 221-224.

3. Ревуженко, А. Ф. О течении сыпучей среды с возможными неограниченными скольжениями по поверхности локализации / А. Ф. Ревуженко, А. П. Бобряков,

B. П. Косых//Физико-техн. пробл. разраб. полез, ископаемых. 1997. № 3. С. 37-12.

4. Григорьев, Ю. М. Плоская задача о переносе внутренних масс приливными волнами / Ю. М. Поляков // Мат. заметки ЯГУ 1999. Т. 6. Вып. 2. С. 9-20.

5. В ильке, В. Г. Об относительном движении ядра и оболочки планеты в гравитационном поле точечной массы / В. Г. Вильке // Прикл. математика и механика. 2006. Т. 70. Вып. 4. С. 617-630.

6. Кузнецов, В. В. Анизотропия и супервращение внутреннего ядра Земли / В. В. Кузнецов // Науки о Земле. Современ. пробл. сейсмологии : сб.ст. М., 2001.

C. 68-83.

7. Овчинников, В. М. О скорости относительного вращения внутреннего ядра Земли / В. М. Овчинников,

B. В. Адушкин, В. А. Ап // Докл. АН. 1998. Т. 362.

C. 1000-1003.

8. Laske, G. Limits on differential rotation of the inner core from an analysis of the Earth’s free oscillations / G. Laske, G. Masters//Nature. 1999.402. №. 6757. P. 66-69.

9. Souriau, A. Inner core rotation: a test of the wordwide scale / A. Souriau, G. Poupinet // Physics of the Earth and Planetary Interiors. 2000. Vol. 118. P. 13-27.

10. Song, X. Support for differential inner core superrotation from earth-quakes in Alaska recorded at South Pole station / X. Song, A. Li // Journal of geophysical research. 2000. Vol. 105.B1.P. 623-630.

11. Xu, X. Evidence for inner core super-rotation from time-dependent differential PKP traveltimes observed at Beijing Seismic Network / X. Xu, X. Song // Geophys. J. Int. 2003.152. №3. P. 509-514.

12. Ревуженко, А. Ф. Механика упруго-пластических сред и нестандартный анализ / А. Ф. Руженко ; Новосиб. гос. ун-т. Новосибирск, 2000.

13. Григорьев, Ю. М. Пространственная задача о переносе масс приливными волнами / Ю. М. Григорьев, А. Ф. Ревуженко //Вычисл. технологии. 2000. Т. 4.5. С. 40-54.

14. Валландер, С. В. Лекции по гидроаэромеханики /

С. В. Валландер//Л.: Изд-во Ленинград, гос. ун-т, 1978.

15. Григорьев, Ю. М. Математические проблемы моделирования направленного переноса внутренних масс Земли приливными деформациями / Ю. М. Григорьев,

О. Е. Скрябина // Динамика сплошной среды. Вып. 122. Новосибирск, 2004. С. 57-62.

Y. M. Grigoryev, O. E. Skryabina

MATHEMATICAL MODELING OF RELATIVE DYNAMICS OF THE EARTH LIQUID AND SOLID INNER CORES

On the base of the kinematical approach two-dimensional mathematical model of the Earth tidal deformations taking into account inner solid core is presented. A method of the least parameter for solving boundary value problems in this model is developed. Solving boundary value problems for the Stokes system in a biconnected domain a complex function method is used. The model describes the effect of the differential rotation of the Earth inner core.

Keywords: mathematical modeling, tidal deformations, inner core, differential rotation.

УДК004.052

А. В. Котенок

К ПРОБЛЕМЕ ВЫБОРА МУЛЬТИВЕРСНОННОЙ МОДЕЛИ ПОВЫШЕНИЯ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

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

Ключевые слова: мультиверсионные модели, модель восстанавливающихся блоков, мультиверсионное программирование.

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

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

Моноверсионные модели обеспечения надежности в соответствии с их целями (предупреждение ошибок, обнаружение ошибок, исправление ошибок и обеспечение устойчивости к отказам) можно разбить на четыре группы [ 1]. К первой группе относятся модели, позволяющие минимизировать или вообще исключить ошибки. Модели второй группы сосредоточивают внимание на функциях самого программного обеспечения, помогающих выявлять ошибки. К третьей группе относятся модели, предназначенные для исправления ошибок или их последствий. Устойчивость к ошибкам - это способность программного комплекса продолжать функционирование независимо от наличия ошибок. По своей природе моноверсионные модели могут дополнять мультиверсион-ные, работать совместно.

Все мультиверсионные модели основаны на двух методологиях: модели восстанавливающихся блоков (МВБ) [2] и мультиверсионном программировании (МВП) [3]. Мультиверсии могут выполняться как последовательно, так и параллельно. Они используются как альтернативы (с отдельными средствами обнаружения ошибок), в парах (для обнаружения ошибок путем сравнения реплик) или в больших группах (для обхода ошибок через голосование). Использование множества версий имеет смысл только в том случае, когда такие версии существенно отличаются (созданы разными разработчиками или разными средствами разработки, работают по разным алгоритмам и т. д.) [3]. Такой подход гарантирует, что в случае сбоя одного варианта на некотором наборе данных, хотя бы один из оставшихся сможет вернуть приемлемый результат.

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

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

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

Пусть мы имеем п версий, их надежности равны г , г , ..., г соответственно. Надежность проверочного модуля есть Ь. Определим соотношение между корректностью выхода системы (5^) и количеством мультиверсий (п).

При п = 1 система возвращает «корректный» результат, если один модуль возвращает «корректный» результат (обозначим как т +), и проверочный модуль принимает правильное решение (обозначим как Ь+) тогда £ = г Ь.

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

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

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

Тогда Б2 = г1Ь + (г1(1-Ь) + (1-г1)Ь) гр =Б1 + (г1(1-Ь) + + {\-г1)Ь)гр.

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

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

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

т. . Ь-, т. . Ъ-\ вероятность этого равна г{(\ —Ь) г (1 - Ь);

т—, Ь . т . . Ъ-\ вероятность этого равна (1 -г)Ьг(1 -Ь);

т +,Ь—,т—,Ь+: вероятность этого равна г (1 - 6) (1 - г )6;

т—,Ь+,т—,Ь+: вероятность этого равна (1 - г )Ь (1 - г2)Ь;

Отсюда

^3 = ^2+ [ Г1^ - ь) г2(! - ь) + - Г1~)Ь г2(! - ь) +

+г1{ 1 - Ь) (1 - г2)Ь + (1 - гг)Ь (1 - г2)Ь\ гр

ИЛИ

[Г[(1 _*) + (!_Г[)й] [г2( 1 _ь) + (1 -Г2)Ь] гр.

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

Бп = 8п-1+ \Г1(1-Ь) + (1~Г1М -

[гпЛ{1-ь) + {1-гпЛ)ь]гр. (1)

В случае, если все модули обладают некоторой средней надежностью У , то

5=5ь1+[г(1-6) + (1-^)б]-ы. ТЪ. (2)

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

Пусть д= [г (1-2>) + (1- У )й],тогда5'и = 5'и1 + д"~1 У Ь= = УЪ+дУЪ+фг Ь+ ... + г Ъ.

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

1.7ьП + д + д2 +••• + =

1-д

— г 1 — дп = г Ъ----—;

1-д

Бп=УЬ ■{!-[¥ {1-Ь)+

+ (1- У )6]и)/(1-[г (1-2>)+(1- УЩ).

При п = 1 формула верна: 5^ = г Ъ.

Пусть Бп = БпЛ + [У (1 - Ъ) + (1 - У)Ъ]пЛ ■ г Ъ верна, проверим ее для п + 1:

■*„+, = £+[' (1-6) +(1-^)6]»- УЪ\

$п+= 7Ь’”( 1 - [г (1 Ь) + (1 - г )ЬЩ1- [г (1 - Ъ) + +(1 -г )2>]) + [г (1-2>) + (1- г)Ь]”- г Ъ.

Заменим \У (1 -Ь) + (1 - У)6] над:

Б

Г и -

1-д

дп- г Ь;

$„= Ь^сГг (\~гГУ.

уЬ1~д" + (1-?)?"

1-9

-г1

Б = 7Ь

1-д

^+1 = ТЬ-{\-[7 (1-6) +

+(1- 7 )£]и+1)/(1-[г (1-й) + (1- 7)2>]).

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

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

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

Ф = 1):

Бп=7 +7 (\-7) + г(\-7)2 + ...+7 (1- 7у\

£=1-(1 -7)+7 {\-г) + г{\-7)2+...+7 (1-г)-1.

Пусть I = 1 - г , тогда:

£ = 1 - / + (1 - /)/ + (1 - 1)? +... + (1 - О/"'1;

\ 1 I I г' г г ... /•• /•• 1 /“:

п 7

Я„=1-(1 ~гГ-

Легко заметить, что —>1, если п —» х. В этом случае мы получаем систему, в которой можно не беспокоиться

о надежности отдельных модулей: главное, чтобы их количество было достаточно велико.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

£=1-(1 -ьу.

Так же, как и в предыдущем случае, £ —> 1 при и —>■ оо. Здесь надежность проверочного модуля не имеет значения: главное, чтобы количество мультиверсий было достаточно велико.

Мультиверсионное программирование. При использовании методологии МВП, надежность системы во многом определяется алгоритмом, применяемым для согласования результатов мультиверсий [4; 5]. Из всех распространенных алгоритмов голосования [6], оценить все возможные условия, влияющие на выход системы, может только голосование абсолютным большинством (ГАБ).

ГАБ получат «корректный» результат, если более половины мультиверсий возвращают «корректный» результат и алгоритм голосования выбирает один из них. Предположим, что все программные модули обладают некоторой средней надежностью 7, надежность модуля принятия решения - Ь, корректно сть выхода системы £ где п - количество мультиверсий в системе.

Пусть т модулей вернули «корректный» результат, а (п - т) вернули ошибку, тогда вероятность такой ситуации можно записать как

Рп(т)=С:-7т-(1~7)™

Тогда 5’ можно представить как сумму вероятностей

того, что т

"+1

2

модулей вернули «корректный» результат и алгоритм голосования принял правильное решение:

Голосование согласованным большинством, нечеткое голосование согласованным большинством, а также взвешенные варианты алгоритмов голосования служат для того, чтобы приблизить .V к 1 для того же т. Получить выражения в аналитическом виде для данных алгоритмов не представляется возможным, но оценить предел улучшения данных алгоритмов можно, положив, что т достаточно мало - менее 0,5 от п, как в случае с ГАБ, - например, 0,4 от п.

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

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

Рис. 1. Оценка эффективности основных мультиверсионных моделей при п = 5: 1 - МВБ, Ъ = 1,0; 2 - МВБ, Ъ = 0,8;

3 - МВБ, Ъ = 0,7; 4 - МВБ, Ъ = 0,5; 5 - МВП, т = 2; б - МВП, т = 3 (ГАБ)

моделей при п = 15: 1 - МВБ, Ь = 1,0; 2 - МВБ, Ь = 0,8;

3 - МВБ, Ъ = 0,7; 4 - МВБ, Ъ = 0,5; 5 - МВП, т = 2; б - МВП, т = 3; 7 - МВП, т = 8 (ГАБ)

Очевидно, что для модели восстанавливающихся блоков надежность проверочного алгоритма существенно

влияет на «корректность» системы. Если проверка будет делать хотя бы две ошибки на десять результатов, то данная модель покажет существенно худшие результаты, чем муль-тиверсионное программирование с базовым алгоритмом голосования (голосованием абсолютным большинством).

Библиографический список

1. Майерс, Г. Надежность программного обеспече-ния/Г. Майерс, В. Ш. Кауфман ; пер. с англ. Ю. Ю. Гали-мова. М. : Мир, 1980.

2. Randell, В. The Evolution of the Recovery Block Concept / B. Randell, J. Xu ; University of Newcastle upon Tyne. England, 1995.

3. Avizienis, A. On the implementation of N-version programming for software fault-tolerance during execution /

A. Avizienis, L. Chen// Proc. IEEE COMPS AC 77. ноябрь 1977. P. 149-155.

4. Ковалев, И. В. Имитационная система для среды мультиверсионного исполнения программных модулей (программная система «ИС СМВИ vl .0») / И. В. Ковалев // Компьютерные учебные программы и инновации. 2007. №2.

5. Ковалев, И. В. Имитационная система для среды мультиверсионного исполнения программных модулей (программная система «ИС СМВИ vl.O») / И. В. Ковалев, А. В. Котенок /Номер гос. регистрации 50200501597 от 24.11.2005 г. М.: ВНТИЦ. 2005.

6. Ковалев, И. В. К проблеме выбора алгоритма принятия решения в мультиверсионных системах / И. В. Ковалев, А. В. Котенок//Информационные технологии. 2006. №9. С. 39 44.

A. V. Kotenok

PRELIMINARIES TO CHOOSING OF A N-VERSION APPROACH TO FAULT TOLERANT SOFTWARE SYSTEMS

This paper describes troubles of an appropriate N-Version Approach choosing. It introduces the feature «Correctness» in evaluating systems and find out the relation between this property and the reliability of the used Acceptance Test and the number of versions of system. The chart displaying representing the relation between system «Correctness» and properties of N-Version System is presented.

Keywords: N-Version Approach, model Recovery Blocks, N-Version Programming.

УДК 89.57.35

E. А. Юрикова, А. А. Кокутенко, А. И. Сухинин

ИССЛЕДОВАНИЕ ВОЗМОЖНОСТЕЙ ПРИМЕНЕНИЯ ДАННЫХ SPOT-4 ДЛЯ ДЕШИФРИРОВАНИЯ ИЗОБРАЖЕНИЙ ПОВРЕЖДЕННЫХ ПОЖАРАМИ УЧАСТКОВ РАСТИТЕЛЬНОСТИ

Рассматривается возможность применения данных, полученных со спутника SPOT-4, для дешифрирования изображений поврежденных пожарами участков растительности. Для анализа информативности данных растительного покрова использовались 2, 3 и 4-й каналы спектрорадиометра HRVIR. Используя программный пакет Erdas Imagine, проведена тематическая обработка изображения, в результате представлена модель расчета нормализованного дифференциального вегетационного индекса, построены спектральные сигнатуры и оценена площадь растительности, поврежденная пожарами.

Ключевые слова: дистанционное зондирование, нормализованный дифференциальный вегетационный индекс, площадь поврежденная пожаром, тестовая гарь.

Введение. Дистанционное зондирование (ДЗ) определяют как процесс или метод получения информации об объекте, участке поверхности или явлении путем анализа данных, собранных без контакта с изучаемым объектом. Суть метода заключается в интерпретации результатов измерения электромагнитного излучения, которое отражается либо излучается объектом и регистрируется в некоторой удаленной от него точке пространства [1].

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

Одной из главных задач дистанционного зондирова-

1 Работа выполнена при финансовой поддержке Красноярского Краевого Фонда Науки (18G152).

i Надоели баннеры? Вы всегда можете отключить рекламу.