Введение в распределенные



Download 3,3 Mb.
bet54/74
Sana13.07.2022
Hajmi3,3 Mb.
#785639
1   ...   50   51   52   53   54   55   56   57   ...   74
Bog'liq
Косяков ТАТ книга

Оптимизация алгоритма Лэмпорта. В алгоритме Лэмпорта в некоторых ситуациях нет необходимости посылать ответные сообщения REPLY. А именно, если процесс Рj получит запрос REQUEST(Li, i) от процесса Рi после того, как он сам отправил процессу Рi некоторое сообщение с отметкой времени (Lj, j) > (Li, i) (таким сообщением, например, может быть сообщение REQUEST(Lj, j), если Рj соберется входить в КС практически одновременно с Рi), то Рj нет необходимости отправлять Pi ответное сообщение. Действительно, благодаря свойству FIFO канала связи между Рj и Рi поступление такого сообщения к процессу Рi будет гарантировать, что ему от Pj больше не поступит запросов с отметкой времени меньшей, чем (Li, i). К примеру, на рис. 4.2ж процесс P1 получает от процесса P3 запрос с отметкой времени (1, 3) уже после того, как сам отправил запрос с отметкой времени (4, 1) – см. рис. 4.2д. Поэтому показанное на рис. 4.2з ответное сообщение из процесса P1 в процесс P3 с отметкой времени (11, 1) можно было не пересылать.
С учетом представленной оптимизации число сообщений, необходимых для обеспечения взаимного исключения в алгоритме Лэмпорта, будет варьироваться от 2(N – 1) до 3(N – 1).
      1. Алгоритм Рикарта-Агравала


Рассмотренный выше алгоритм Лэмпорта явным образом выстраивает запросы на доступ к КС в очередь в порядке возрастания их отметок времени. Еще раз обратим внимание на роль сообщений REPLY и RELEASE в этом алгоритме. Ответные сообщения REPLY используются исключительно для информирования процесса, запрашивающего вход в КС, о том, что в каналах не осталось ни одного другого запроса, который мог бы встать перед его запросом в его локальной очереди. Роль сообщения RELEASE сводится к удалению обслуженного запроса из всех локальных очередей для предоставления другим процессам возможности войти в КС. Отсюда видно, что отметки логического времени, переносимые этими сообщениями, не играют существенной роли в функционировании алгоритма и могут быть опущены. В этом случае при проверке второго условия входа в КС процесс будет опираться не на время получаемых сообщений, а на число поступивших сообщений REPLY: второе условие входа в КС в алгоритме Лэмпорта будет выполнено, когда процесс, запрашивающий доступ к КС, получит все сообщения REPLY от всех остальных процессов.
В работе Г. Рикарта и А. Агравала предпринята попытка оптимизировать алгоритм Лэмпорта, исключив из него сообщения RELEASE за счет объединения функций сообщений RELEASE и REPLY в одном сообщений. Более того, алгоритм Рикарта-Агравала не требует, чтобы каналы связи обладали свойством FIFO. Основная идея этого алгоритма заключается в том, что для входа в КС процессу требуется собрать разрешения от всех других процессов распределенной системы. Для этого процесс, желающий получить доступ к КС, рассылает свой запрос REQUEST всем остальным процессам и ожидает от них поступления разрешений в виде сообщений REPLY. Условия, при которых процессы дают свое разрешение на вход в КС, сформулированы таким образом, чтобы удовлетворить требованиям безопасности и живучести. А именно, если все остальные процессы находятся в состоянии выполнения вне КС, они немедленно отправляют процессу, запрашивающему доступ к КС, сообщения REPLY. Если же один из процессов выполняется в КС, то он откладывает отправку своего разрешения до тех пор, пока сам не покинет КС, тем самым не позволяя двум процессам выполняться в КС одновременно. Если же несколько процессов запрашивают разрешение на вход в КС в одно и то же время, то, как и в алгоритме Лэмпорта, для разрешения конфликта доступа к КС используются линейно упорядоченные отметки времени запросов (Li, i), где Li – скалярное время процесса Pi на момент формирования запроса, i – идентификатор процесса Pi. Процесс, запрос которого имеет наименьшую отметку времени, получит право войти в КС первым. Это достигается за счет того, что каждый находящийся в состоянии запроса на вход в КС процесс Pi при получении запроса от другого процесса Pj сравнивает отметку времени (Li, i) своего запроса с отметкой времени (Lj, j) поступившего запроса, и откладывает отправку REPLY, если (Li, i) < (Lj, j). Если же (Li, i) > (Lj, j), то процесс Pi отправляет сообщение REPLY процессу Pj немедленно. Поэтому процесс с наименьшей отметкой времени запроса получит ответные сообщения от всех остальных процессов и сможет войти в КС.
Для реализации алгоритма Рикарта-Агравала каждый процесс Pi поддерживает работу с массивом DRi[1..N], содержащим признаки отложенного ответа (от англ. deferred reply). Если процесс Pi откладывает отправку ответного сообщения процессу Pj, он устанавливает DRi[j] = 1; после отправки сообщения REPLY элемент DRi[j] сбрасывается в ноль. Все элементы DRi[k] инициализируется нулем, 1 ≤ k N. С учетом этого массива алгоритм Рикарта-Агравала будет определяться следующими правилами.


  1. Download 3,3 Mb.

    Do'stlaringiz bilan baham:
1   ...   50   51   52   53   54   55   56   57   ...   74




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish