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

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

CC BY
155
52
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ТЕСТИРОВАНИЕ / ПАРАЛЛЕЛЬНЫЕ ПРОГРАММЫ / СЕТИ ПЕТРИ / ДЕДЛОКИ / TESTING / PARALLEL PROGRAMS / PETRI NETS / DEADLOCKS

Аннотация научной статьи по математике, автор научной работы — Бабахьян Ольга Федоровна

Рассмотрен метод обнаружения дедлоков в распределенных системах на этапе проектирования системы. Система представляется в виде модели посредством формальной спецификации с помощью аппарата сетей Петри.

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

Detection of deadlocks in parallel programs as solution of linear diophantine equations

The method of detecting deadlocks in the distributed systems at the design stage of the system is considered. The system is presented in the form of a model through the formal specification by means of Petri nets.

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

УДК 681.3

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

О.Ф. БАБАХЬЯН

(Ростовский научно-исследовательский институт радиосвязи)

Рассмотрен метод обнаружения дедлоков в распределенных системах на этапе проектирования системы. Система представляется в виде модели посредством формальной спецификации с помощью аппарата сетей Петри.

Ключевые слова: тестирование, параллельные программы, сети Петри, дедлоки.

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

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

Цель настоящей работы - рассмотрение метода обнаружения дедлоков в распределенных системах. Используя описания сетями Петри на примере вычислительной системы (ВС), показать, что система характеризуется отсутствием или наличием тупиков, воспользовавшись методом построения усеченного множества решений или Truncated Set of Solutions (TSS) [3] для нахождения Г-инварианта.

Построение формальной модели вычислительной системы. ВС представлена в виде ординарной сети Петри с одноцветными фишками [1, 2]. Пусть ВС состоит из двух вычислительных устройств (ВУ), одно из которых главное (ВУГ), второе - подчиненное (ВУП). Рабочий цикл ВУ складывается из трех этапов: начало работы (BEGIN), прием или посылка сообщений (INU), окончание работы (END). На этапе BEGIN ВУГ посылает устройству ВУП сигнал о начале работы и переходит в состояние ожидания ответа. ВУП, получив сигнал о начале работы, переходит в активное состояние и выдает подтверждающее сообщение о готовности. ВУГ, получив подтверждающий сигнал, также переходит в активное состояние. На этом этап BEGIN заканчивается. Находясь в состоянии INIT, ВУГ может либо передавать задания для выполнения устройству ВУП, либо перейти в состояние END. В свою очередь ВУП может также передавать устройству ВУГ задания для обработки, но самостоятельно в состояние END перейти не может. Если ВУГ (ВУП) передало задание устройству ВУП (ВУГ) для обработки, то оно переходит в состояние ожидания. Только после того, как будет получен подтверждающий сигнал, ВУГ (ВУП) может выполнить действия по инициализации новых заданий. Инициатива по переходу в состояние END может исходить только от ВУГ. При этом ВУГ посылает устройству ВУП сигнал о завершении работы и переходит в неактивное состояние.

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

BEGIN

INIT

END

Начальное состояние полученной модели описывается разметкой:

Ц0 = (Pl' Р4. Р5, Рб, P2, P7. Ре, P9. Рз, PlO, P20, P21, P23, P22, Pll, Pl2, P24, P25, Р2б) =

= (1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0).

Алгоритм построения TSS для системы линейных однородных диофантовых уравнений (СЛОДУ) и его реализация подробно описаны в работе [3], поэтому приведем лишь необходимые факты и определения.

Пусть дана СЛОДУ S вида:

{L±(x) = а11х1 +------+ a-iqXq = 0

L2(x) = a2iXi + --- + a2qxq = 0. (1)

Lp(x) = a.p^x^ + ••• + a.pqXq = 0

Рассмотрим множество векторов канонического базиса м'а = {e1,L,eq] и первое уравнение L1(x) = а11х1 + а12х2 +---------------------------------------------+ a-iqxq = 0 системы S вида (1). С помощью функции L1(x) разо-

бьем элементы множества М° на три группы: М° = (е|!1(е) = 0}, = (е|!1(е) >0} и =

{е|Ь!(е) < 0}. Ясно, что если одно из множеств М° иМг+ или М° иМ.|" пусто, то уравнение Ьг(х) = 0 не имеет нетривиальных решений в множестве натуральных чисел. Если хотя бы два из множеств М°, М^, непусты, тогда множество решений уравнения Ь1(х) = 0 можно определить по следующей формуле:

М1 = М° и {уг7|уг7- = -Ь1(е{) • е;- + Ь1{е]) • е1,е]еМ+,е1еМ~). (2)

Полученное множество Мг с помощью функции Ь2(х) тоже разбирается на три группы: М0 = {е|12(е) = 0}, М+ = {е|12(е) >0} и М~ = {е|12(е) < 0}. Далее повторяются все действия, аналогичные предыдущему уравнению. Алгоритм заканчивает работу, когда все уравнения данной СЛОДУ будут обработаны и элементы множества М;- составляют TSS этой СЛОДУ.

Построим Г-инвариант для доказательства живости сети. Г-инвариант соответствует последовательности срабатывания переходов, переводящей сеть из разметки М в ту же самую разметку М. Если Г-инвариант содержит все переходы сети, то она жива.

Для нахождения Г-инварианта сети построим целочисленную пхт матрицу инцидентности сети Петри А (табл. 1), где п и т — мощности множеств Р и Т соответственно. В матрице А элемент А1]- = 1, если при выполнении перехода j фишка добавляется в позицию 1, А1} = -1, если при выполнении перехода j фишка убирается из позиции 1, А1]- = 0, если при выполнении перехода j число фишек в позиции 1 не изменяется.

Таблица 1

Построение матрицы инцидентности сети Петри (см. рис.1)

Состояние сети Петри І1 ^2 Із с4 ^5 ^6 ^7 ^8 ^9 ^10 Сц ^12 ^13 ^14

Р1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0

Р2 0 1 -1 1 0 0 -1 0 0 0 0 0 0 0

Рз 0 1 0 0 -1 1 -1 0 0 0 0 0 0 0

Р4 1 -1 0 0 0 0 0 0 0 0 0 0 0 0

Рз 1 0 0 0 0 0 0 -1 0 0 0 0 0 0

Рб 0 -1 0 0 0 0 0 1 0 0 0 0 0 0

Р7 0 0 1 -1 0 0 0 0 0 0 0 0 0 0

Р8 0 0 1 0 0 0 0 0 -1 0 0 0 0 0

Р9 0 0 0 -1 0 0 0 0 0 1 0 0 0 0

р10 0 0 0 0 1 -1 0 0 0 0 0 0 0 0

Ри 0 0 0 0 -1 0 0 0 0 0 1 0 0 0

Р12 0 0 0 0 0 1 0 0 0 0 0 -1 0 0

р20 0 0 0 0 0 0 0 -1 0 0 0 0 1 0

Р21 0 0 0 0 0 0 0 1 -1 1 0 0 -1 0

р22 0 0 0 0 0 0 0 1 0 0 -1 1 -1 0

р23 0 0 0 0 0 0 0 0 1 -1 0 0 0 0

Р24 0 0 0 0 0 0 0 0 0 0 1 -1 0 0

р25 0 0 0 0 0 0 1 0 0 0 0 0 -1 -1

Р26 0 0 0 0 0 0 0 0 0 0 0 0 0 1

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

Ах = 0, (3)

где А - целочисленная п*т матрица инцидентности сети Петри; п и т - мощности множеств Р и Тсоответственно; Ах - т-мерный вектор Париха.

С помощью уравнения состояния (3) определим Г-инвариант сети Петри. Размерность матрицы инцидентности А в уравнении (3) для данной сети Петри составляет 19x14 (19 уравнений, 14 неизвестных), а вектора Париха х - 14.

В соответствии с Г55-алгоритмом система диофантовых уравнений (1) имеет четыре решения:

х± = {0Д0Д1ДД0Д0ДДД0}7, х2 = {1ДД0Д0ДДД0Д0Д,0}Т, х3 = {1,1,2,2,0,0,1,1,2,2,0,0,1,0}т, х4 = {1ДДДДДДДДДДДД,0}Г.

На основе решений этой системы можно построить Г-инварианты (табл.2).

Таблица 2

Г-инварианты сети Петри (см. рис.1)

tl ^2 t3 t4 СЛ ^6 £7 CO t9 ^10 111 ^12 ^13 t14

0 0 0 0 1 1 0 0 0 0 1 1 0 0

1 1 0 0 0 0 1 1 0 0 0 0 1 0

1 1 2 2 0 0 1 1 2 2 0 0 1 0

1 1 1 1 1 1 1 1 1 1 1 1 1 0

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

Заключение. Приведен пример построения имитационной модели функционирования вычислительной системы с помощью аппарата сети Петри. Анализ предлагаемой модели выполняется с использованием матрицы инцидентности и TSS-алгоритма решения систем линейных диофантовых уравнений над множеством натуральных чисел. Построенная модель обладает необходимым свойством — является живой. Таким образом, показано, что предложенный метод можно применять на этапах построения систем, использующих параллелизм, синхронизацию и разделяемые ресурсы для анализа такого свойства системы, как наличие или отсутствие дедлоков. Библиографический список

1. Питерсон Дж. Теория сетей Петри и моделирование систем : пер. с англ. / Дж. Питерсон. - М.: Мир, 1984. - 264 с.

2. Котов В.Е. Сети Петри / В. Е. Котов. - М.: Наука, 1984. - 160 с.

3. Krivoi S. A criteria of Compatibility Systems of Linear Diophantine Constraints / S. Krivoi // Lecture Notes in Comp. Science. - 2002. - №2328. - P.264-271.

Материал поступил в редакцию 18.05.2011.

References

1. Piterson Dzh. Teoriya setej Petri i modelirovanie sistem : per. s angl. / Dzh. Piterson. - M.: Mir, 1984. - 264 s. - In Russian.

2. Kotov V.E. Seti Petri / V. E. Kotov. - M.: Nauka, 1984. - 160 s. - In Russian.

3. Krivoi S. A criteria of Compatibility Systems of Linear Diophantine Constraints / S. Krivoi // Lecture Notes in Comp. Science. - 20O2. - #2328. - P.264-271.

DETECTION OF DEADLOCKS IN PARALLEL PROGRAMS AS SOLUTION OF LINEAR

DIOPHANTINE EQUATIONS O.F. BABAKHYAN

(Rostov Scientific research Institute for Radiocommunication)

The method of detecting deadlocks in the distributed systems at the design stage of the system is considered. The system is presented in the form of a model through the formal specification by means of Petri nets.

Keywords: testing, parallel programs, Petri nets, deadlocks.

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