Алгоритм Петерсона: различия между версиями

20 байт добавлено ,  13 лет назад
Отмена правки 9209040 участника Not Tupik (обс) Самохвалов
(викифицировал)
( Отмена правки 9209040 участника Not Tupik (обс) Самохвалов)
{{тупиковая статья}}
'''Алгоритм Петерсона''' - программный [[алгоритм]] взаимного исключения потоков исполнения кода, разработанный Г. [[Петерсон]]омПетерсоном в 1981 г. Хотя изначально был сформулирован для 2-х поточного случая, алгоритм может быть обобщен для произвольного количества потоков. Алгоритм условно называется программным, т.к. не основан на использовании специальных команд процессора для запрета прерываний, блокировки шины памяти и т.д., используются только общие переменные памяти и цикл для ожидания входа в критическую секцию исполняемого [[код]]акода.
 
== Принцип работы ==
Перед тем как начать исполнение критической секции кода (т.е. региона кода, обращающегося к защищаемым совместно используемым ресурсам), поток должен вызвать специальную процедуру (назовем ее ''EnterRegion'') со своим номером в качестве параметра. Она должна организовать ожидание [[поток]]апотока своей очереди входа в критическую секцию. После исполнения критической секции и выхода из нее, поток вызывает другую процедуру (назовем ее ''LeaveRegion''), после чего уже другие потоки смогут войти в критическую область. Посмотрим как реализуется этот общий принцип алгоритмом Петерсона для 2-х потоков.
 
 
4235

правок