Базовые определения и формализм — различия между версиями
(→Определения) |
(декомпозия исполнения) |
||
Строка 76: | Строка 76: | ||
}} | }} | ||
+ | === Декомпозиция исполнения === | ||
+ | {{Определение | ||
+ | |id = decomosition | ||
+ | |definition = Определим '''декомпозицию исполнения''' как пятёрку <tex> (H, G, \rightarrow_G, inv, res) </tex>, где | ||
+ | * <tex> H -</tex> множество '''операций''' <tex> (\forall e \in H: e \subset G) | ||
+ | * <tex> G -</tex> множество '''событий''' | ||
+ | * <tex> \rightarrow_G -</tex> отношение строгого порядка '''произошло до''' на '''событиях''' из <tex> G </tex> | ||
+ | * <tex> inv, res: H \rightarrow G -</tex> функции, что | ||
+ | ** <tex> \forall e \in H: inv(e) \rightarrow_G res(e) </tex> | ||
+ | ** <tex> \forall e \in H, g \in e, g \neq inv(e), g \neq res(e): inv(e) \rightarrow_G g \rightarrow_G res(e) </tex> | ||
+ | }} | ||
+ | {{Определение | ||
+ | |id = was_before_event | ||
+ | |definition = Определим '''произошло до''' на '''операциях''': <tex> \forall e, f \in H: e \rightarrow_H f = res(e) \rightarrow_G inv(f) </tex> | ||
+ | }} | ||
+ | |||
== Свойства линеаризуемости == | == Свойства линеаризуемости == |
Версия 22:22, 30 сентября 2018
Содержание
Определения
Базовые определения
Определение: |
Исполнение системы
| это пара , где:
Определение: |
Пусть Обозначение: | Тогда говорят, что параллельна , если
Определение: |
Система Говорим, что система имеет свойство , если каждое исполнение системы имеет свойство | это множество всех возможных исполнений.
Определение: |
Модель глобального времени определим так, что это модель, в которой в качестве операции используется временной интервал: Замечание: глобального времени не существует из-за физических ограничений, поэтому в доказательствах такая модель не используется, но помогает при визуализации различных исполнений | причём . Зададим в этой модели отношение следующим образом: . Неформально это означает, что вход в функцию, выполняющую операцию , был осуществлён строго позже, чем был получен результат работы функции, выполняющей операцию .
Определение: |
Исполнение системы | называется последовательным, если . То есть, если все операции линейно-упорядочены отношением "произошло до".
Конфликты и гонки данных
Определение: |
Две операции над одной переменной, одна из которых это запись, называются конфликтующими. Соответственно, бывают read-write и write-write конфликты. |
Определение: |
Если две конфликтующие операции произошли параллельно, то такая ситуация называется гонка данных (англ. data race) Замечание: наличие гонки данных является свойством конкретного исполнения. |
Определение: |
Программа называется корректно синхронизированной, если в любом допустимом исполнении нет гонок данных. |
Правильное исполнение
Определение: |
Сужение исполнения Обозначение: . Формально | на поток исполнение, в котором остались только операции, происходящие в потоке .
Определение: |
Исполнение называется правильным (англ. well-formed), если его сужение на каждый поток | является последовательным.
Определение: |
Объединение всех сужений на потоки называется программным порядком (англ. program order или po). |
Определение: |
Сужение исполнения Обозначение: . Формально Замечание: в правильном исполнении сужение на объекты не всегда является последовательным | на объект исполнение, в котором остались только операции, взаимодействующие с объектом .
Условия согласованности
Определение: |
Последовательное исполнение является допустимым (англ. legal), если выполнены последовательные спецификации всех объектов. |
Определение: |
Исполнение последовательно согласовано, если можно сопоставить эквивалентное ему (состоящее из тех же событий и операций) допустимое последовательное исполнение, которое сохраняет программный порядок, то есть порядок операций на каждом потоке. Последовательная согласованность на каждом объекте не влечёт последовательную согласованность исполнения |
Определение: |
Исполнение | линеаризуемо, если существует эквивалентное ему допустимое последовательное исполнение , называемое линеаризацией, и верно что , то есть сохраняется отношение "произошло до".
Декомпозиция исполнения
Определение: |
Определим декомпозицию исполнения как пятёрку
| , где
Определение: |
Определим произошло до на операциях: |