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


Синхронный и асинхронный обмен сообщениями



Download 3,3 Mb.
bet20/74
Sana13.07.2022
Hajmi3,3 Mb.
#785639
1   ...   16   17   18   19   20   21   22   23   ...   74
Bog'liq
Косяков ТАТ книга

Синхронный и асинхронный обмен сообщениями


Основной смысл определения блокирующих и неблокирующих операций отправки и приема данных заключается в описании локального поведения вызывающего процесса без учета хода выполнения других процессов. А именно, блокирующие примитивы возвращают управление вызывающему процессу при завершении копирования данных из адресного пространства процесса-отправителя или в адресное
пространство процесса-получателя, неблокирующие – лишь начинают соответствующую операцию. Имеет смысл рассматривать взаимодействие также с глобальной точки зрения. В этом контексте различают синхронный и асинхронный механизм обмена сообщениями.
Синхронный обмен сообщениями. При синхронном обмене сообщениями отправитель и получатель дожидаются друг друга для передачи каждого сообщения, и операция отправки считается завершенной только после того, как получатель закончит прием сообщения.
Завершение синхронной операции send() свидетельствует не только о том, что семантика передачи данных оказывается обеспеченной, но и о том, что получатель достиг определенной точки в ходе своего выполнения, а именно вызова соответствующей операции receive(). Поэтому процессы не только обмениваются данными, но и синхронизируют свое выполнение во времени.
Другое преимущество синхронного обмена сообщениями заключается в том, что для передачи сообщения не требуется использования дополнительных буферов, т.к. синхронная операция send() все равно не сможет завершиться, пока не будет вызвана соответствующая операция receive(). Хотя, конечно, возможна реализации этих примитивов и с использованием буферизации. Важно отметить, что синхронная операция receive() после получения сообщения должна отослать соответствующее подтверждение (англ. acknowledgement) отправителю для завершения операции send().
В случае использования блокирующих примитивов взаимодействия передача сообщения с помощью пары вызовов send() и receive() может рассматриваться как одна атомарная операция.
Асинхронный обмен сообщениями. При асинхронном обмене сообщениями не происходит никакой координации между отправителем и получателем сообщения. Для завершения операции send() отправителю не требуется дожидаться приема сообщения процессом-получателем. При отправке нового сообщения, отправителю неизвестно, получено ли его предыдущее сообщение, направленное этому же или, возможно, другому получателю. Поэтому, если канал связи между отправителем и получателем не сохраняет порядок передаваемых по нему сообщений, т.е. не обеспечивает свойство FIFO (англ. First In First Out), получатель может принимать сообщения в другом порядке, нежели они были переданы отправителем. Асинхронной операции receive() нет необходимости отсылать отправителю подтверждение (англ. acknowledgement) о приеме сообщения.
Преимуществом асинхронного обмена сообщениями является возможность перекрывать вычисления отправителя и получателя во времени, т.к. процессы не будут ожидать друг друга для передачи каждого сообщения.
В связи с тем, что отправка и прием сообщения не синхронизированы во времени, передача сообщения с помощью блокирующих примитивов требует наличия дополнительных буферов для размещения отправленных, но еще не полученных сообщений. Как уже обсуждалось, в этом случае необходимо определить поведение операции send() в ситуациях переполнения буфера. Если блокировать отправителя до освобождения требуемого пространства, то непредсказуемо может возникнуть ситуация взаимной блокировки процессов. Если сообщение отбрасывать, то коммуникацию нельзя считать надежной.

Download 3,3 Mb.

Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   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