302
правки
Изменения
→Проблема
Успешное решение этой проблемы должно иметь по крайней мере три свойства:
;условие корректности
#Взаимное исключение(англ. ''mutual exclusion''): только один поток может быть в критической секции.
;условия прогресса
#Отсутствие взаимоблокировок (англ. ''deadlocks''): если несколько потоков пытаются войти в критическую секцию, то хотя бы один из них должен войти в критическую секцию за конечное время.
#Отсутствие голодания (англ. ''starvation-freedom''): если какой-то поток пытается войти в критическую секцию, то он войдет в критическую секцию за конечное время. Может быть последовательно усиленно, превращаясь в условие честности (англ. ''fairness'').##Квадратичное ожидание (англ. ''quadratic wait'') — <tex>O(n^2)</tex> операций.##Линейное ожидание (англ. ''linear wait'') — <tex>O(n)</tex> операций.##Первый пришел, первый обслужен (англ. ''first come first served'')
Каждая программа может быть разделена на четыре секции, что приводит к четырем состояниям. [[Файл: State_graph2.png|thumb|right|Порядок перехода между состояниями]]