Изменения

Перейти к: навигация, поиск

Алгоритмы взаимного исключения

467 байт добавлено, 10:49, 25 сентября 2018
Нет описания правки
;Exit :Процесс выходит из критического раздела и делает доступный общий ресурс другим процессам.
Если процесс хочет войти в критический раздел, он должен сначала выполнить раздел <tex>try </tex> и подождать, пока он не получит доступ к критическому разделу. После того, как процесс выполнил свой критический раздел и завершился с общими ресурсами, ему необходимо выполнить раздел выхода, чтобы освободить их для использования другими процессами. Затем процесс возвращается в некритический раздел.
==Алгоритмы взаимного исключения==
===Алгоритм ЛампортаПетерсона===  '''threadlocal int''' id <font color=green>// 0 to N-1</font> '''shared int''' level[N] '''shared int''' victim[N] '''def lock''': '''for''' j = 1..N-1: level[id] = j victim[j] = id while exist k: k != id '''and''' level[k] >= j '''and''' victim[j] ==id: '''pass''' '''def unlock''': level[id] =0 ===Алгоритм Лампорта(вариант <tex>1</tex>)======Алгоритм Лампорта(вариант <tex>2</tex>)===
302
правки

Навигация