2012-01-22 1 views
2

Я читал и пытался обернуть голову вокруг Berkeley Algorithm.Непонимание понимания алгоритма Беркли

Алгоритм Беркли говорит нам, что лидер будет время от времени запрашивать у всех других процессов свое текущее время, вычислять среднее значение за все эти времена, отправляя обратно каждому из процессов значение дельта, то есть разница между этим временем процесса от среднего значения.

Например, рассмотрим 3-технологическую систему с процессами A, B и C, являющейся A лидером.

Теперь, если я прав, следует ожидать, что если значение B имеет значение дрейфа 0,001 (то есть, для каждой 1000 действительных секунд будет всего лишь отметка 999 раз), и я хочу убедиться, что никакого процесса никогда не было выходит из строя более чем на 0,1 секунды, я бы сказал, что нужно заставить синхронизацию часов каждые 100 секунд. Это означает, что выражение я использую

enter image description here

существо:

  • delta_t максимальное время я позволил подождать, прежде чем снова синхронизации часов;
  • delta максимальная ошибка часов; rho - скорость дрейфа;
  • Rho = дрейф

Моя проблема заключается в том, что в записях моего профессора, можно найти следующее выражение вместо:

enter image description here

, который также можно найти в других источниках литературы. Может ли кто-нибудь объяснить мне, почему у нас это 2 во втором выражении? Я не уверен, что переменные действительно являются тем, кем я их предполагаю.

Благодаря

ответ

3

(небольшая оговорка:..? Я не сделал много распределенных вычислений Вполне возможно, что я понял проблему Почему бы не спросить профессора)

Я считаю, что разделение по двум - учет положительного и отрицательного дрейфа на нескольких процессах.

Если наихудший дрейф 0.001, рассмотрим B имеет дрейф +0.001 и C имеет -0.001. Если вы выберете delta-t в соответствии с вашей исходной формулой, разница во времени между B и C может стать вдвое большей, чем delta, которую вы хотите, прежде чем синхронизировать.