Теория распараллеливания и синхронизация. Демьянович Ю.К - 44 стр.

UptoLike

(2) "Отсутствие взаимной блокировки": если несколько процес-
сов пытаются войти в свои критические секции, хотя бы один это
осуществит.
(3) "Отсутствие излишних задержек": если процесс хочет вой-
ти в свою критическую секцию, а другие выполняют некритические
секции или завершены, то процессу разрешается вход в упомяну-
тую критическую секцию.
(4) "Возможность входа": процесс, который пытается войти в
критическую секцию, когда-нибудь это сделает.
Свойство "взаимное исключение" нарушается, если два про-
цесса находятся в своих критических секциях.
Для "отсутствие излишних задержек" нарушается, если един-
ственный процесс, пытающийся войти в критическую секцию, не
может этого сделать.
Пример. Пусть in1 и in2 л огич еск ие переменные. Процесс
S1 (S2) находится в критической секции в то время как in1 (in2)
присваивается “истина”.
Для взаимного исключения требуется истинность состояния
MUTEX : ¬(in1 in2).
ПРОГРАММА ДЛЯ КРИТИЧЕСКОЙ СЕКЦИИ
(КРУПНОМОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ)
bool in1 = false, in2 = false;
## MUTEX : ¬(in1 in2) глобальный инвариант
1) process CS1 {
2) while (true) {
3) < await (!in2) in1 = true; > # вход
4) [критическая секция];
5) in1 = false; # выход
6) [некритическая секция];
7) }
8) }
9) process CS2 {
10) while (true) {
45