Алгоритм Маекавы — это алгоритм взаимного исключения в распределенной системе . В основе этого алгоритма лежит подход, подобный кворуму , где любому сайту нужно только запросить разрешения у подмножества других сайтов.
Алгоритм
Терминология
Сайт — это любое вычислительное устройство , на котором запущен алгоритм Маекавы.
Для любого запроса на вход в критическую секцию:
Запрашивающий сайт — это сайт, который запрашивает вход в критическую секцию.
Принимающим сайтом является любой другой сайт, получающий запрос от запрашивающего сайта.
ts относится к локальной временной метке системы в соответствии с ее логическими часами
Алгоритм
Запрашиваемый сайт :
Запрашивающий сайт отправляет сообщение всем сайтам в своем кворуме .
Место получения :
Получив сообщение , принимающий сайт :
Если на сайте нет необработанного сообщения (то есть сообщения, которое не было отправлено), то сайт отправляет сообщение на сайт .
Если на сайте имеется необработанное сообщение с процессом с более высоким приоритетом, чем у запроса, то сайт отправляет сообщение на сайт , а сайт ставит запрос с сайта в очередь .
Если у сайта есть невыполненное сообщение с процессом с более низким приоритетом, чем у запроса, то сайт отправляет сообщение процессу, которому в данный момент сайт предоставил доступ к критической секции . (То есть сайту с невыполненным сообщением.)
После получения сообщения сайт :
Отправлять сообщение на сайт следует только в том случае, если сайт получил сообщение от другого сайта или если сайт отправил сообщение на другой сайт, но не получил нового .
После получения сообщения сайт :
Отправить сообщение запросу, находящемуся наверху его собственной очереди запросов. Обратите внимание, что запросы наверху имеют наивысший приоритет.
Поместить в очередь запросов.
После получения сообщения сайт :
Удалить из очереди запросов.
Отправьте сообщение запросу, находящемуся в верхней части очереди запросов.
Критический раздел :
Сайт переходит в критическую секцию при получении сообщения от всех сайтов в .
При выходе из критической секции отправляет сообщение всем сайтам в .
Набор кворума ( ) : Набор кворума должен соответствовать следующим свойствам:
Сайт содержится именно в наборах запросов
Поэтому:
Производительность
Количество сетевых сообщений ;
Задержка синхронизации: 2 задержки распространения сообщения
Алгоритм может заблокироваться без установленной защиты. [1] [2]
^ «Алгоритм взаимного исключения Маекавы: подход голосования».
^ «Распределенное взаимное исключение» (PDF) .
М. Маекава, «Алгоритм √N для взаимного исключения в децентрализованных системах», ACM
Труды по компьютерным системам, т. 3, № 2, стр. 145–159, 1985.
Мамору Маекава, Артур Э. Олдехофт, Родни Р. Олдехофт (1987). Операционные системы: Расширенная концепция. Benjamin/Cummings Publishing Company, Inc.
Б. Сандерс (1987). Информационная структура распределенных алгоритмов взаимного исключения. ACM Transactions on Computer Systems, т. 3, № 2, стр. 145–59.