Базовые определения и формализм
Определения
Определение: |
Исполнение системы
| это пара , где:
Определение: |
Пусть Обозначение: | Тогда говорят, что параллельна , если
Определение: |
Система Говорим, что система имеет свойство , если каждое исполнение системы имеет свойство | это множество всех возможных исполнений.
Определение: |
Модель глобального времени определим так, что это модель, в которой в качестве операции используется временной интервал: Замечание: глобального времени не существует из-за физических ограничений, поэтому в доказательствах такая модель не используется, но помогает при визуализации различных исполнений | причём . Зададим в этой модели отношение следующим образом: . Неформально это означает, что вход в функцию, выполняющую операцию , был осуществлён строго позже, чем был получен результат работы функции, выполняющей операцию .
Определение: |
Исполнение системы | называется последовательным, если . То есть, если все операции линейно-упорядочены отношением "произошло до".
- Конфликты и гонки данных
Определение: |
Две операции над одной переменной, одна из которых это запись, называются конфликтующими'. Соответственно, бывают read-write и write-write конфликты. |
Определение: |
Если две конфликтующие операции произошли параллельно, то такая ситуация называется гонка данных (data race) Замечание: наличие гонки данных является свойством конкретного исполнения. |
Определение: |
Программа называется корректно синхронизированной, если в любом допустимом исполнении нет гонок данных. |