Изменения

Перейти к: навигация, поиск

Часы с прямой зависимостью

269 байт добавлено, 17:41, 9 марта 2018
Нет описания правки
[[Категория: Параллельное программирование]]
'''Логические часы с прямой зависимостью''' ''(direct dependency)'' - функция из множества событий распределенных систем (прием/посылка сообщенийвнутреннее событие, событие отправки сообщения и событие приема сообщения) в вектор из целых чисел.* Каждый поток имеет целочисленный n-мерный вектор (n – количество потоков), проинициализированный 0-ми.* Перед посылкой/принятием сообщения, поток инкрементит свою компоненту вектора.* При посылке сообщения к сообщению отправляющий поток добавляет свою компоненту вектора, а при приеме сообщения обновляем путем выбора максимума только компоненты, отвечающие отсылающему и принимающему процессам.
* Каждый поток имеет целочисленный ''n''-мерный вектор (''n'' – количество потоков), проинициализированный нулями;* В случае любого события, поток увеличивает на единицу свою компоненту вектора;* При посылке сообщения от первого потока ко второму, отправляющий поток отправляет свою компоненту вектора, а при приеме сообщения второй поток обновляет свой вектор путем выбора максимума только у той компоненты вектора, которая была отправлена (при этом нельзя забывать про инкремент из предыдущего пункта, он делается перед выбором максимумов). В отличие от [[Параллельное программирование: Векторные часы|векторных часов]]:
*при посылке сообщения передаем только свою компоненту вектора;
*при приеме сообщения обновляем путем выбора максимума только компоненты, отвечающие отсылающему и принимающему процессам;
Оказывается, что если ввести [[Параллельное программирование: Частичный порядок|частичный порядок]] предшествования на событиях несколько иным образом (потребовать прямую зависимость), то имеет место следующее утверждение::''a'' предшествует ''b'', тогда и только тогда, когда логическое время часов с прямой зависимостью события ''a'' меньше логического времени события ''b'' (''a.v[a.p] <tex>\le</tex> b.v[a.p]'', где ''a.p'' – номер процесса, в котором проиходит происходит событие ''a'').
Требование '''прямой зависимости''' звучит следующим образом: между событиями ''a'' (процесс ''u'') и ''b'' (процесс ''v'') процесс ''u '' передал процессу ''v'' сообщение, процесс ''v'' его принял. Если говорить более формально, при транзитивном замыкании, упомянутом в определении частичного порядка предшествования, первое правило можно использовать только один раз.
Анонимный участник

Навигация