1313
правок
Irina (обсуждение | вклад) |
KVN (обсуждение | вклад) |
||
| (не показано 7 промежуточных версий 1 участника) | |||
| Строка 11: | Строка 11: | ||
'''Формальная модель''' | '''Формальная модель''' | ||
Система состоит из фиксированного множества взаимосвязанных ''процессоров''. Каждый процессор имеет свои ''локальные часы''. Выполнение системы представляет собой последовательность событий, в которой каждое событие является либо ''событием отправки'', либо ''событием получения'', либо ''внутренним событием''. Что касается коммуникации, то предполагается, что каждое событие получения сообщения <math>m</math> имеет уникальное соответствующее событие отправки <math>m</math>. Это означает, что сообщения могут быть произвольно потеряны, продублированы или переупорядочены, но не повреждены. Каждое событие <math>e</math> происходит в одном определенном процессоре и имеет два вещественных числа, связанных с ним: его ''локальное время'', обозначаемое LT(e), и его ''реальное время'', обозначаемое RT(e). Локальное время события моделирует показания локальных часов в момент наступления этого события, и локальный процессор может использовать это значение, например, для вычислений или для передачи другому процессору. В отличие от этого, реальное время события не наблюдается процессорами: это абстрактное понятие, существующее только в анализе. | Система состоит из фиксированного множества взаимосвязанных ''процессоров''. Каждый процессор имеет свои ''локальные часы''. ''Выполнение'' системы представляет собой последовательность событий, в которой каждое событие является либо ''событием отправки'', либо ''событием получения'', либо ''внутренним событием''. Что касается коммуникации, то предполагается только, что каждое событие получения сообщения <math>m</math> имеет уникальное соответствующее событие отправки <math>m</math>. Это означает, что сообщения могут быть произвольно потеряны, продублированы или переупорядочены, но не повреждены. Каждое событие <math>e</math> происходит в одном определенном процессоре и имеет два вещественных числа, связанных с ним: его ''локальное время'', обозначаемое LT(e), и его ''реальное время'', обозначаемое RT(e). Локальное время события моделирует показания локальных часов в момент наступления этого события, и локальный процессор может использовать это значение, например, для вычислений или для передачи другому процессору. В отличие от этого, реальное время события не наблюдается процессорами: это абстрактное понятие, существующее только в анализе. | ||
| Строка 22: | Строка 22: | ||
'''Алгоритмы''' | '''Алгоритмы''' | ||
В данной работе генерация и доставка сообщений полностью отделены от информации о них. Формально предполагается, что сообщения генерируются некоторым «модулем отправки», а доставляются «системой коммуникации». Задача алгоритмов заключается в том, чтобы | В данной работе генерация и доставка сообщений полностью отделены от информации о них. Формально предполагается, что сообщения генерируются некоторым «модулем отправки», а доставляются «системой коммуникации». Задача алгоритмов заключается в том, чтобы добавлять содержимое в сообщения и переменные состояния в каждом узле. (Идея отделения информации о синхронизации от генерации сообщений была предложена в работе [1]). Алгоритм располагает только локальной информацией, то есть содержимым локальных переменных состояния и показаниями локальных часов, а также содержимым входящего сообщения, если мы имеем дело с событием получения. Также предполагается, что алгоритму известна спецификация реального времени. Совокупность событий, их … и локальных времен (но не реальных времен) называется ''ракурсом'' данного выполнения. Алгоритмы, таким образом, могут использовать в качестве входных данных только ракурс выполнения и его спецификацию реального времени. | ||
== Формулировка задачи == | == Формулировка задачи == | ||
| Строка 31: | Строка 31: | ||
== Основные результаты == | == Основные результаты == | ||
Ключевой конструкцией, используемой в [ ], является граф синхронизации выполнения, определяемый путем объединения понятий локального времени и спецификации реального времени следующим образом. | Ключевой конструкцией, используемой в работе [10], является ''граф синхронизации'' выполнения, определяемый путем объединения понятий локального времени и спецификации реального времени следующим образом. | ||
Определение 1. Пусть | '''Определение 1'''. Пусть <math>\beta</math> – ракурс выполнения системы, а <math>H</math> – спецификация реального времени для <math>\beta</math>. ''Граф синхронизации'', порожденный <math>\beta</math> и <math>H</math>, является ориентированным взвешенным графом <math>\Gamma_{\beta H} = (V, E, w)</math>, где <math>V</math> – множество событий в <math>\beta</math>, и для каждой упорядоченной пары событий <math>p \; q</math> в <math>\beta</math>, такой, что <math>H(p, q) < \infty</math>, существует ориентированное ребро <math>(p, q) \in E</math>. | ||
Вес ребра (p, q) равен w(p | ''Вес'' ребра <math>(p, q)</math> равен <math>w(p, q) \overset{def}{=} H(p, q) - LT(p) + LT(q)</math>. | ||
Естественное понятие расстояния от события p до события q в графе синхронизации | Естественное понятие ''расстояния'' от события <math>p</math> до события <math>q</math> в графе синхронизации <math>\Gamma</math>, обозначаемое <math>d_{\Gamma}(p, q)</math> определяется длиной кратчайшего взвешенного пути от <math>p</math> до <math>q</math> или равно бесконечности, если <math>q</math> недостижимо из <math>p</math>. Поскольку веса могут быть отрицательными, необходимо доказать, что понятие точно определено: действительно, было показано, что если <math>\Gamma_{\beta H}</math> получен из выполнения с ракурсом <math>\beta</math>, удовлетворяющего спецификации реального времени <math>H</math>, то <math>\Gamma_{\beta H}</math> не содержит ориентированных циклов с отрицательным весом. | ||
| Строка 46: | Строка 46: | ||
Теорема 1. Пусть | '''Теорема 1. Пусть <math>\alpha</math> – выполнение с ракурсом <math>\beta</math>. Тогда <math>\alpha</math> удовлетворяет спецификации реального времени <math>H</math> тогда и только тогда, когда <math>RT(p) - RT(q) \le d_{\Gamma}(p, q) + LT(p) - LT(q)</math> для любых двух событий <math>p</math> и <math>q</math> в <math>\Gamma_{\beta H}</math>.''' | ||
| Строка 52: | Строка 52: | ||
Теорема 2. Пусть | '''Теорема 2. Пусть <math>\Gamma_{\beta H} = (V, E, w)</math> – граф синхронизации, полученный из ракурса <math>\beta</math>, удовлетворяющего спецификации реального времени <math>H</math>. Тогда для любого заданного события <math>p_0 \in V</math> и для любого конечного числа <math>N > 0</math> существуют исполнения <math>\alpha_0</math> и <math>\alpha_1</math> с ракурсом <math>\beta</math>, удовлетворяющие спецификации <math>H</math>, такие, что выполняются следующие присваивания реального времени.''' | ||
В | * В <math>\alpha_0</math> для всех <math>q \in V</math> с <math>d_{\Gamma} (q, p_0) < \infty</math> верно <math>RT_{\alpha_0}(q) = LT(q) + d_{\Gamma}(q, p_0)</math>, и для всех <math>q \in V</math> с <math>d_{\Gamma}(q, p_0) = \infty</math> верно <math>RT_{\alpha_0} > LT(q) + N.</math> | ||
* В <math>\alpha_1</math> для всех <math>q \in V</math> с <math>d_{\Gamma} (p_0, q) < \infty</math> верно <math>RT_{\alpha_1}(q) = LT(q) - d_{\Gamma}(p_0, q)</math>, и для всех <math>q \in V</math> с <math>d_{\Gamma}(p_0, q) = \infty</math> верно <math>RT_{\alpha_1} < LT(q) - N.</math> | |||
С алгоритмической точки зрения важным недостатком результатов теорем 1 и 2 является то, что они зависят от ракурса выполнения, | |||
С алгоритмической точки зрения важным недостатком результатов теорем 1 и 2 является то, что они зависят от ракурса выполнения, который может неограниченно расти. Так ли он необходим? Последний общий результат в работе [10] отвечает на этот вопрос утвердительно. В частности, было показано, что в некотором варианте вычислительной модели ''ветвящейся программы'' пространственная сложность любого алгоритма синхронизации, работающего с произвольными спецификациями реального времени, не может быть ограничена функцией от размера системы. Результат доказывается путем рассмотрения нескольких сценариев на простой системе из четырех процессоров на одной линии. | |||
'''Последующие разработки''' | '''Последующие разработки''' | ||
Основываясь на понятии графа синхронизации, Островский и Пэтт-Шамир | Основываясь на понятии графа синхронизации, Островский и Пэтт-Шамир представили уточненный оптимальный алгоритм общего вида для синхронизации часов [9]. Идея упомянутой работы заключается в том, чтобы отбрасывать части графов синхронизации, которые больше не имеют значения. Грубо говоря, сложность алгоритма ограничена полиномом от размера системы и соотношения скоростей процессоров. | ||
Много теоретических работ было посвящено варианту задачи с внутренней синхронизацией. Например, Ланделиус и Линч [ ] доказали, что в системе из n процессоров с полной связностью, если задержки сообщений могут принимать произвольные значения в диапазоне [0, 1], а локальные часы не имеют дрейфа, то наилучшая синхронизация, которую можно гарантировать, равна 1 – | Много теоретических работ было посвящено варианту задачи с внутренней синхронизацией. Например, Ланделиус и Линч [7] доказали, что в системе из <math>n</math> процессоров с полной связностью, если задержки сообщений могут принимать произвольные значения в диапазоне [0, 1], а локальные часы не имеют дрейфа, то наилучшая синхронизация, которую можно гарантировать, равна <math>1 – \frac{1}{n}</math>. Хелперн и др. [3] распространили этот результат на графы общего вида, используя методы линейного программирования. Их работа, в свою очередь, была расширена Аттией и др. [1] для анализа любого конкретного выполнения (а не только наихудшего случая для данной топологии), но анализ выполняется в оффлайновом режиме и централизованно. Работа Пэтт-Шамира и Раджсбаума [11] распространила точку зрения «отдельного выполнения» на распределенные онлайн-алгоритмы и сместила фокус проблемы на внешнюю синхронизацию. | ||
Недавно Фэн и Линч [ ] доказали, что в линии из n процессоров, часы которых могут дрейфовать, ни один алгоритм не может гарантировать, что разница между показаниями часов всех пар соседей составляет o(log n/log log n). | Недавно Фэн и Линч [2] доказали, что в линии из <math>n</math> процессоров, часы которых могут дрейфовать, ни один алгоритм не может гарантировать, что разница между показаниями часов всех пар соседей составляет o(log n/log log n). | ||
Синхронизация часов очень полезна на практике. Некоторые увлекательные примеры можно найти , например, в работе Барбары Лисков [ ]. Стоит отметить, что Интернет | Синхронизация часов очень полезна на практике. Некоторые увлекательные примеры можно найти, например, в работе Барбары Лисков [6]. Стоит отметить, что Интернет поддерживает протокол внешней синхронизации часов под названием NTP [8]. | ||
== Применение == | == Применение == | ||
Теорема 1 сразу же дает алгоритм синхронизации часов: каждый процессор поддерживает известное ему представление части графа синхронизации. Это можно сделать с помощью протокола полной информации: этот граф отправляется в каждом исходящем сообщении, и всякий раз, когда приходит сообщение, граф расширяется, чтобы включить новую информацию из графа в пришедшем сообщении. Согласно | Теорема 1 сразу же дает алгоритм синхронизации часов: каждый процессор поддерживает известное ему представление части графа синхронизации. Это можно сделать с помощью протокола полной информации: этот граф отправляется в каждом исходящем сообщении, и всякий раз, когда приходит сообщение, граф расширяется, чтобы включить новую информацию из графа в пришедшем сообщении. Согласно теореме 2, полученный таким образом граф синхронизации представляет в любой момент времени всю доступную информацию, необходимую для оптимальной синхронизации. Для примера рассмотрим внешнюю синхронизацию. Непосредственно из определений следует, что все события, связанные с часами без дрейфа (например, события в узле-источнике), находятся на расстоянии 0 друг от друга в графе синхронизации и поэтому могут рассматриваться при вычислении расстояний как один узел s. Теперь, предполагая, что часы источника действительно показывают реальное время, легко увидеть, что для любого события p имеет место <math>RT(p) \in [LT(p) - d(s, p), LT(p) + d(p, s)]</math> и, более того, никаким корректным алгоритмом нельзя получить лучшие границы. | ||
RT(p) | |||
и, более того, никаким корректным алгоритмом нельзя получить лучшие границы. | |||
| Строка 86: | Строка 85: | ||
Наконец, отметим, что асинхронная модель также может рассматриваться как частный случай этой общей теории, в котором событие p «происходит раньше» события q тогда и только тогда, когда d(p, q) < | Наконец, отметим, что асинхронная модель также может рассматриваться как частный случай этой общей теории, в котором событие <math>p</math> «происходит раньше» события <math>q</math> тогда и только тогда, когда <math>d(p, q) \le 0</math>. | ||
== Открытые вопросы == | == Открытые вопросы == | ||
| Строка 116: | Строка 115: | ||
11. Patt-Shamir, B., Rajsbaum, S.: A theory of clock synchronization. In: Proceedings of the 26th Annual ACM Symposium on Theory of Computing, pp. 810-819, Montreal 23-25 May 1994 | 11. Patt-Shamir, B., Rajsbaum, S.: A theory of clock synchronization. In: Proceedings of the 26th Annual ACM Symposium on Theory of Computing, pp. 810-819, Montreal 23-25 May 1994 | ||
[[Категория: Совместное определение связанных терминов]] | |||