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


Взаимодействие в распределенных системах



Download 3,3 Mb.
bet14/74
Sana13.07.2022
Hajmi3,3 Mb.
#785639
1   ...   10   11   12   13   14   15   16   17   ...   74
Bog'liq
Косяков ТАТ книга

Взаимодействие в распределенных системах

      1. Физическое время


В распределенных системах вычисления осуществляются совокупностью независимых процессов, взаимодействующих посредством передачи сообщений для обмена данными и координации своих действий. Время, затрачиваемое каждым процессом на выполнение отдельных действий, различно для разных процессов и заранее неизвестно, а доставка отправленных сообщений занимает непредсказуемое время. Поэтому точность, с которой независимые процессы могут координировать свои действия, ограничена такими временными задержками и сложностью представления единого времени среди всех компьютеров в распределенной системе.
Каждый из компьютеров в распределенной системе имеет свои собственные часы, точнее говоря, системный таймер, который используется его локальными процессами для получения текущего времени. Поэтому два процесса, выполняющиеся на различных компьютерах, могут ассоциировать соответствующую отметку времени с каждым событием. Однако даже если эти процессы будут считывать показания своих часов в одно и то же время, возвращаемые значения,
скорее всего, будут отличаться. Дело в том, что ни одни часы не являются идеальными: кварцевые генераторы, составляющие основу часов для современных компьютеров, не могут иметь абсолютно одинаковую частоту, что ведет к постепенной потере синхронизации и возвращении таймерами различных значений при обращении к ним. Эта разница в показаниях часов называется рассинхронизацией часов (англ. clock skew), а скорость отклонения часов от точных показаний универсального скоординированного времени UTC (Coordinated Universal Time) с течением времени – скоростью дрейфа (англ. clock drift rate) – см. рис. 1.4.


Рис. 1.4. Соотношение времени по часам компьютеров и времени UTC;


δ – рассинхронизация часов, Δ – скорость дрейфа.

Таким образом, даже если в какой-то момент на часах всех компьютеров, входящих в распределенную систему, установлено одно и то же значение, с течением времени их показания станут существенно отличаться, если не предпринимать никаких дополнительных мер. В результате приложения, которые ожидают, что временная отметка, ассоциируемая с тем или иным событием, корректна и не зависит от компьютера, на которой она регистрировалась (т.е. часы которого использовались), могут работать неправильно. Чтобы пояснить это приведем следующий пример.


Банковская система. Рассмотрим задачу подсчета полной суммы денег, находящихся на счетах в разных филиалах банка. Предположим, что банковская система не позволяет вносить дополнительные денежные средства на счет филиала и снимать их наличными, а лишь осуществляет перевод различных сумм из одного филиала банка в другой с помощью сообщений.
Для иллюстрации работы такой банковской системы воспользуемся графиками процессов и событий, представленными на рис. 1.5. Горизонтальными линиями на этих графиках изображены временные оси. Точка на оси соответствует событию (например, внутреннему событию процесса, событию отправки или приема сообщения). Квадрат, обведенный вокруг точки, обозначает состояние локального процесса (определяемого состоянием счета данного филиала) в фиксированный момент времени, соответствующий этой точке. Стрелкой обозначается передача сообщения от одного процесса другому.


(а)



(б)



(в)
Рис. 1.5. Пример определения суммы денег на счетах банка.


Чтобы определить полную сумму банк должен иметь сведения о количестве денег в каждом из филиалов. Предположим, что требуется подсчитать денежные средства в 9:00 – время, известное всем процессам. В случае, показанном на рис. 1.5а, сумма окажется равной $10. Однако возможна также ситуация, представленная на рис. 1.5б, в которой на


момент определения полной суммы денежные средства филиала А находятся в состоянии передачи в филиал В, т.е. деньги уже отправлены филиалом А, но еще не получены филиалом В. В этом случае будет получен неправильный результат, равный $0. Эту проблему можно решить, изучая все сообщения, находящиеся в состоянии передачи в момент подсчета денег. Например, можно потребовать от филиала А хранить записи обо всех отправленных переводах и их получателях, а от филиала В
– хранить записи о всех полученных переводах и их отправителях. Тогда в "состояние" филиала нужно включить не только информацию о количестве денег на его счете, но и указанные записи обо всех отправленных и полученных денежных переводах. Проверяя такие "состояния" процессов, система обнаружит перевод, покинувший филиал А, но еще не полученный филиалом В, и соответствующие средства можно будет добавить в общую сумму. Важно отметить, что денежные средства, уже полученные филиалом В, отдельно учитывать не нужно, т.к. они будут отражены в счете этого филиала.
К сожалению, подход, представленный выше, не гарантирует вычисление верного результата. В примере, приведенном на рис. 1.5в, часы в разных филиалах идут с некоторым относительным сдвигом, т.е. имеет место небольшая рассинхронизация часов. Проверка состояния счета филиала А в момент времени 9:00 дает результат, равный $10. Впоследствии, в 9:01 по часам филиала А, эти деньги переводятся в филиал В, часы которого на момент их получения показывают 8:59. Поэтому при подсчете общей суммы по состоянию на 9:00 эти денежные средства будут учитываться дважды.

      1. Download 3,3 Mb.

        Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   ...   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