АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология
|
Вычислительные схемы
Вычислительная схема — это представление в графической форме асинхронной системы, состоящей из набора операторов (процессов), которые воздействуют на множество «регистов» (данных). Каждая вычислительная схема определяется с помощью двух графов: графа потока данных и графа управления [89].
Граф потока данных (информационный граф) определяет входные и выходные данные для каждого оператора [18]. Дуга (Rj Sk) от регистра rj к оператору Sk означает, что данные R, являются элементом входных данных этого оператора; дуга (Sk rj) определяет данные rj как выходные. Очевидно, что некоторые данные R могут являться выходными для оператора Sj и входными для оператора Sj. Пример графа потока данных для некоторой вычислительной схемы представлен на рис. 7.7, а; операторы и регистры данных представлены соответственно кружками и прямоугольниками.
Граф управления определяет последовательность выполнения операторов. Каждый оператор (представлен кружком) связан с некоторым количеством управляющих счетчиков (представлены прямоугольниками). Каждый из управляющих счетчиков содержит неотрицательное целое число. Текущие значения счетчиков совместно со значениями данных на графе потока данных определяют состояние вычислительной схемы. Пример графа управления представлен на рис. 7.7, б. Если все счетчики, указывающие на оператор S (то есть входные счетчики), имеют ненулевые значения, то говорят, что оператор S определен. В этом случае он может выполниться, изменив свои выходные регистры в соответствии с графом потока данных и изменив счетчики графа управления по следующему правилу: значения всех выходных счетчиков оператора S уменьшаются на единицу, а значение выходных — увеличивается, причем для каждого выходного счетчика оператора S приращение может быть свое, персональное, и определяется оно с помощью специальной функции от значений регистров.
Обратите внимание на сходство между графом управления и сетью Петри. Если под операторами и счетчиками понимать переходы и позиции, то единственным существенным различием между этими моделями будет зависимость приращения счетчика от входных данных оператора S.
Такая последовательность операторов S^ S2....... Sn,..., что каждый оператор Sj
определен (то есть его входные счетчики не равны нулю) при тех значениях счетчиков, которые получаются в результате выполнения предшествующих операторов, называется последовательностью исполнения схемы. Поскольку с операторами не связано никакого особого отсчета времени (подобно сетям Петри1), то порядок, в котором операторы будут выполняться, не всегда может быть предсказан. Любая допустимая последовательность исполнения является возможной последовательностью событий. Как мы уже знаем, для системы взаимодействующих параллельных процессов результаты вычислений зависят от последовательности исполнения, если не обеспечить взаимное исключение для критических интервалов. В случае когда вычислительная схема вырабатывает одинаковые результаты для всех допустимых последовательностей исполнения, говорят, что она детерминирована. Схема на рис. 7.7 является детерминированной.
Рассмотрим вычислительную схему на рис. 7.8. Операторы Sj и S2, как это видно из графа управления, выполняются параллельно и асинхронно. Очевидно, что значение регистра R3 будет различным в зависимости от того, выполняется ли оператор Sj раньше или позже оператора S2. Поскольку граф управления здесь допускает последовательности исполнения, которые приводят к различным результатам, то эта схема не детерминирована.
Говорят, что два оператора соперничают в регистре R, если один из них изменяет R, а другой либо изменяет R, либо обращается к нему. Если два оператора, которые
1 Следует заметить, что к настоящему времени появилось большое количество различных модификаций исходной модели, называемой сетью Петри. Многие расширения и модификации базовой модели сетей Петри позволяют учитывать модельное время, дополнительные условия возбуждения и срабатывания переходов, отслеживать атрибуты при маркерах, их изменения и т. д., что позволяет получать более мощные средства моделирования параллельных процессов.
соперничают в некотором регистре, могут быть выполнены в одно и то же время, то говорят, что в схеме существует условие соперничества и такая схема является недетерминированной. Одна из возможных форм недетерминированного исполнения заключается в том, что схема может «зависнуть» (попасть в тупиковую ситуацию).
К сожалению, вычислительные схемы, как и сети Петри, не являются конструктивной моделью (с точки зрения борьбы с тупиковыми ситуациями, возникающими в операционных системах), несмотря на свою интуитивную привлекательность и возможность сделать вывод о возможности существования тупиков в той или иной системе [89]. Мы знаем, что возможность существования тупиковой ситуации в большинстве ОС существует. Но ведь это же не означает, что эти ОС нельзя использовать. Важнее уметь обнаружить существование тупиковой ситуации в конкретный момент времени и поправить ситуацию (насколько это возможно). Поэтому гораздо более продуктивной с этой точки зрения является модель Холта.
Дата добавления: 2015-01-18 | Просмотры: 816 | Нарушение авторских прав
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
|