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



Download 3,3 Mb.
bet34/74
Sana13.07.2022
Hajmi3,3 Mb.
#785639
1   ...   30   31   32   33   34   35   36   37   ...   74
Bog'liq
Косяков ТАТ книга

Примеры использования


Для иллюстрации применения скалярных часов при решении различных задач рассмотрим следующие примеры.
Банковская система. Вернемся к представленной в п. 1.5.1 задаче подсчета полной суммы денег, находящихся на счетах в разных филиалах банка. Как и прежде будем предполагать, что банковская система не позволяет вносить дополнительные денежные средства на счет филиала и снимать их наличными, а лишь осуществляет перевод различных сумм из одного филиала банка в другой с помощью сообщений. Будем считать, что в каждом филиале работает ровно один процесс Pi, который отсылает бесконечно много сообщений каждому другому процессу распределенной системы. Удовлетворить этому требованию несложно: процесс всегда может отправить "пустое" сообщение с переводом $0 в другой филиал. Для простоты будем считать, что все каналы обладают свойством FIFO.
Однако теперь, чтобы избежать трудностей, указанных в п. 1.5.1, мы будем подсчитывать денежные средства, опираясь не на физическое время, отсчитываемое компьютерами филиалов, а на введенное выше логическое время. А именно, общую сумму денег будем определять в момент логического времени t Z≥0, т.е. после наступления всех событий с отметками времени, меньшими или равными t, и до наступления событий с отметками времени, строго большими, чем t, где t – время, известное всем процессам. Для этого потребуем, чтобы каждый процесс Pi записывал состояние своего счета непосредственно перед выполнением первого события ei, для которого L(ei) > t. Такое событие обязательно должно наступить, т.к. по нашему предположению в каждом процессе происходит бесконечно много событий. Чтобы учесть денежные средства, находящиеся в состоянии передачи между филиалами, необходимо
определить все сообщения, у которых события отправки имеют время меньшее или равное t, а события получения – время, превышающее t. Для этого, начиная с первого события ei, имеющего время L(ei) > t, т.е. начиная именно с того события, перед которым процесс зафиксировал состояние своего счета, каждый процесс Pi должен записывать все поступающие ему сообщения с отметками логического времени Lmsg t. Когда из канала Cji придет первое сообщение с отметкой времени Lmsg > t, процесс Pi зафиксирует состояние канала Cji на момент времени t, подсчитывая денежную сумму, переданную по этому каналу в записанных сообщениях. Сообщение с отметкой времени Lmsg > t обязательно должно поступить, т.к. по нашему предположению процесс Pj отправляет бесконечно много сообщений процессу Pi. Общая сумма денег будет определяться подсчетом всех денежных средств, записанных в зафиксированных состояниях счетов и каналов.
Чтобы показать, что представленный алгоритм дает правильный результат, рассмотрим произвольное выполнение R банковской системы. Перестановка Ȓ событий выполнения R в порядке, задаваемом отметками скалярного времени, представляет собой выполнение, эквивалентное R, т.е. с точки зрения процессов невозможно понять, какое из этих выполнений происходит на самом деле. Работа рассматриваемого алгоритма заключается в том, что он делает снимок глобального состояния S в выполнении Ȓ сразу после всех событий, имеющих время t, т.е. записывает состояние всех процессов и каналов на этот момент. Поэтому, очевидно, что в результате его работы будет получена корректная сумма денег, циркулирующих в банковской системе.
На рис. 3.2 представлен пример выполнения банковской системы, использующей скалярные часы. Слева показана начальная сумма денег на счете каждого филиала. Размер денежного перевода указан на стрелке, обозначающей передачу сообщения.

Рис. 3.2. Пример выполнения банковской системы, использующей скалярные часы.


Предположим, что подсчитать общую сумму денег требуется в момент времени t = 5, что на рис. 3.2 обозначено штриховой линией, проходящей через временные оси каждого из процессов. При подсчете денег на своем счете процесс P1 получит результат, равный $10 – $1 – $3 =
$6. На счете процесса P2 окажется $20 + $1 – $2 + $3 – $5 = $17. Cчет процесса P3 будет составлять $30 + $2 – $4 = $28. Кроме того, процесс P1 обнаружит в канале C31 сообщение с переводом $4, а процесс P3 – в канале C23 сообщение с переводом $5. Общая сумма будет составлять $6 + $17 +
$28 + $4 + $5 = $60, что является верным результатом.
На рис. 3.3 представлено эквивалентное выполнение банковской системы, в котором все события упорядочены согласно отметкам скалярного времени. Штриховая линия на рис. 3.3 соответствует штриховой линии на рис. 3.2 и демонстрирует результаты работы алгоритма, а именно, зафиксированные состояния процессов и каналов. Нетрудно видеть, что в выполнении на рис 3.3 совокупность этих состояния есть не что иное, как глобальное состояние системы, в которой она находится после наступления всех событий со временем 5 и до наступления любого события со временем 6.

Рис. 3.3. Выполнение банковской системы, эквивалентное выполнению на рис. 3.2.





Download 3,3 Mb.

Do'stlaringiz bilan baham:
1   ...   30   31   32   33   34   35   36   37   ...   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