Алгоритмы взаимного исключения — различия между версиями
(Новая страница: «==Определения== {{Определение |definition= '''Взаимное исключение''' (англ. ''mutual exclusion'') — свойств…») |
|||
Строка 5: | Строка 5: | ||
}} | }} | ||
− | То есть критические секции не могут выполняться параллельно: <tex>\ | + | То есть критические секции не могут выполняться параллельно: <tex>\forall i,j:i \neq j \Rightarrow CS_i \rightarrow CS_j \vee CS_j \rightarrow CS_i </tex>. Это значит, что выполнение критических секций будет линеаризуемо. Это требование корректности протокола взаимной блокировки. |
{{Определение | {{Определение |
Версия 09:56, 25 сентября 2018
Содержание
Определения
Определение: |
Взаимное исключение (англ. mutual exclusion) — свойство построения параллельных программ, которое используется в целях предотвращения состояния гонки (англ. race condition); Оно требует, чтобы один поток исполнения никогда не входил в критическую секцию одновременно с тем, как другой параллельный поток выполнения вошел в свою критическую секцию. |
То есть критические секции не могут выполняться параллельно: . Это значит, что выполнение критических секций будет линеаризуемо. Это требование корректности протокола взаимной блокировки.
Определение: |
Критическая секция (англ. critical section) — участок исполняемого кода программы, в котором производится доступ к общему ресурсу (данным или устройству), который не должен быть одновременно использован более чем одним потоком исполнения. |
Для рекуррентного соотношения, которому удовлетворяет последовательность мы часто хотим получить выражение для . Например, для рекуррентного соотношения, задающего числа Фибоначчи:
член может быть записан следующим образом:
Для этого можно использовать метод производящих функций (англ. generating function method).
Метод производящих функций
Алгоритм получения выражения для чисел
, удовлетворяющих рекуррентному соотношению, с помощью производящих функций cостоит из шагов.- Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен
- Домножить каждую строчку на в соответствующей степени ( ) и сложить все выражения, многоточие надо рассматривать как множество из выражений, где . В левой части получится сумма — это производящая функция, назовем ее . Правую часть преобразовать так, чтобы она превратилась в выражение, включающее .
- Решить полученное уравнение, получив для выражение в замкнутом виде.
- Разложить в степенной ряд, коэффициент при будет искомым выражением для .