Требуются как минимум три операции на критическую секцию: запись и чтение по записи (чтобы объявить получение мьютекса и убедиться, что другой процесс не получил), запись при выходе (чтобы освободить мьютекс). При входе процесс id
в алгоритме Петерсона записывает регистр с одним записывающим устройством interested[id]
и регистр с несколькими записывающими устройствами turn
. Ценой преобразования ограниченного регистра в регистр, который также содержит неограниченный номер версии, для двух процессов выполняется симуляция регистра с несколькими записывающими устройствами с помощью двух регистров с одним записывающим устройством, что делает 1 запись на запись и 1 чтение на чтение, что позволяет слияние двух записей в алгоритме Петерсона.