Анализ достижимости

редактировать
Решение проблемы достижимости в распределенных системах (информатика)

Анализ достижимости решение проблемы достижимости в конкретном контексте распределенных систем. Он используется для определения того, какие глобальные состояния могут быть достигнуты распределенной системой, состоящей из определенного числа локальных объектов, которые обмениваются сообщениями.

Содержание

  • 1 Обзор
  • 2 Свойства протокола
  • 3 Пример
  • 4 Передача сообщений
  • 5 Практические вопросы
  • 6 Дополнительная литература
  • 7 Ссылки и примечания

Обзор

Анализ доступности был представлен в статье 1978 года для анализа и проверки протоколов связи. Эта статья была вдохновлена ​​статьей Бартлетта и др. от 1968 г., в котором был представлен протокол с чередованием битов с использованием моделирования объектов протокола с конечным числом состояний, а также отмечалось, что аналогичный протокол, описанный ранее, имел конструктивный недостаток. Этот протокол принадлежит к канальному уровню и, при определенных предположениях, обеспечивает в качестве услуги правильную доставку данных без потерь или дублирования, несмотря на случайное присутствие повреждения или потери сообщения.

Для анализа достижимости локальные объекты моделируются их состояниями и переходами. Сущность изменяет состояние, когда она отправляет сообщение, потребляет полученное сообщение или выполняет взаимодействие на своем локальном сервисном интерфейсе. Глобальное состояние s = (s 1, s 2,..., sn, medium) {\ displaystyle s = (s_ {1}, s_ {2},..., s_ {n}, medium) }{\ displaystyle s = (s_ {1}, s_ {2},..., s_ {n}, medium)} системы с n объектами определяется состояниями si {\ displaystyle s_ {i}}s_ {i} (i = 1,... n) объектов и состояние связи medium {\ displaystyle medium}{\ displaystyle medium} . В простейшем случае среда между двумя объектами моделируется двумя очередями FIFO в противоположных направлениях, которые содержат сообщения в пути (которые отправлены, но еще не потреблены). Анализ достижимости рассматривает возможное поведение распределенной системы путем анализа всех возможных последовательностей переходов состояний объектов и соответствующих достигнутых глобальных состояний.

Результатом анализа достижимости является глобальный граф переходов состояний (также называемый графом достижимости), который показывает все глобальные состояния распределенной системы, достижимые из начального глобального состояния, а также все возможные последовательности отправки, потребления и сервисные взаимодействия, выполняемые местными организациями. Однако во многих случаях этот граф переходов не ограничен и не может быть исследован полностью. Граф переходов можно использовать для проверки общих недостатков конструкции протокола (см. Ниже), а также для проверки того, что последовательности сервисных взаимодействий между объектами соответствуют требованиям, заданным глобальной сервисной спецификацией системы.

Свойства протокола

Ограниченность: глобальный граф переходов между состояниями ограничен, если количество сообщений, которые могут быть в пути, ограничено, а количество состояний всех объектов ограничено. Вопрос о том, остается ли количество сообщений ограниченным в случае объектов с конечным состоянием, обычно не разрешим. Обычно исследование графа переходов обрезается, когда количество сообщений в пути достигает заданного порога.

Ниже перечислены недостатки конструкции:

  • Глобальная тупиковая ситуация: система находится в глобальной тупиковой ситуации, если все объекты ожидают использования сообщения и ни одно сообщение не находится в пути. Отсутствие глобальных взаимоблокировок можно проверить, проверив, что никакое состояние в графе достижимости не является глобальным взаимоблокировкой.
  • Частичные взаимоблокировки: объект находится в состоянии взаимоблокировки, если он ожидает потребления сообщения, а система находится в глобальном состояние, при котором такое сообщение не передается и никогда не будет отправлено в каком-либо глобальном состоянии, которое может быть достигнуто в будущем. Такое нелокальное свойство можно проверить, выполнив проверку модели на графе достижимости.
  • Неопределенный прием: объект имеет неопределенный прием, если следующее сообщение, которое будет использовано, не ожидается спецификацией поведения объекта в его текущем состоянии. Отсутствие этого условия можно проверить, проверив все состояния в графе достижимости.

Пример

На схеме показаны два объекта протокола и сообщения, которыми обмениваются между ними. На схеме показаны два конечных автомата, которые определяют динамическое поведение соответствующих протокольных объектов. На этой диаграмме показана модель конечного автомата глобальной системы, состоящая из двух протокольных объектов и двух каналов FIFO, используемых для обмена сообщениями между ними.

В качестве примера мы рассмотрим систему из двух протокольных объектов, которые обмениваются сообщениями ma, mb, mc и md друг с другом, как показано на первой диаграмме. Протокол определяется поведением двух объектов, которое показано на второй диаграмме в виде двух конечных автоматов. Здесь символ "!" означает отправку сообщения, а "?" означает использование полученного сообщения. Начальные состояния - это состояния «1».

На третьей диаграмме показан результат анализа достижимости для этого протокола в виде глобального конечного автомата. Каждое глобальное состояние имеет четыре компонента: состояние объекта протокола A (слева), состояние объекта B (справа) и сообщения в пути в середине (верхняя часть: от A до B; нижняя часть: от B до A.). Каждый переход этого глобального конечного автомата соответствует одному переходу объекта протокола A или объекта B. Начальное состояние - [1, - -, 1] (нет сообщений в пути).

Видно, что этот пример имеет ограниченное глобальное пространство состояний - максимальное количество сообщений, которые могут передаваться одновременно, равно двум. Этот протокол имеет глобальный тупик, который находится в состоянии [2, - -, 3]. Если удалить переход A в состояние 2 для потребления сообщения mb, будет неуказанный прием в глобальных состояниях [2, ma mb, 3] и [2, - mb, 3].

Передача сообщений

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

Были сделаны различные предположения о том, может ли объект выбрать конкретное сообщение для использования, когда несколько сообщений прибыли и готовы к употреблению. Основными моделями являются следующие:

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

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

Практические вопросы

Большая часть работы по протоколу при моделировании используются конечные автоматы (FSM) для моделирования поведения распределенных объектов (см. также Обмен данными между конечными автоматами ). Однако этой модели недостаточно для моделирования параметров сообщений и локальных переменных. Поэтому часто используются так называемые расширенные модели конечных автоматов, поддерживаемые такими языками, как SDL или конечные автоматы UML. К сожалению, для таких моделей анализ достижимости становится намного сложнее.

Практическая проблема анализа достижимости - это так называемый «взрыв пространства состояний». Если два объекта протокола имеют 100 состояний каждый, а среда может включать 10 типов сообщений, до двух в каждом направлении, то количество глобальных состояний в графе достижимости ограничивается числом 100 x 100 x (10 x 10) x (10 x 10), что составляет 100 миллионов. Поэтому был разработан ряд инструментов для автоматического выполнения анализа достижимости и проверки модели на графе достижимости. Мы упоминаем только два примера: средство проверки модели SPIN и набор инструментов для построения и анализа распределенных процессов.

Дополнительная литература

Ссылки и примечания

Последняя правка сделана 2021-06-03 09:46:02
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте