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

UptoLike

# реализация неделимой операции < nw = nw 1; >
29) P(e);
30) nw = nw 1;
31) if (dr > 0) {dr = dr 1; V(r); }
32) elseif (dw > 0) {dw = dw 1; V(w); }
33) else V(e);
34) }
35) }
В рассматриваемых случаях преимущество отдается процессу-
читателю. Однако, можно осущес твить другие способы планирова-
ния, если изменить программу.
Для того, чтобы отдавалось предпочтение процессам-
писателям, необходимо, чтобы
если ждет процесс-писатель, то новые процессы-читатели
должны его пропустить сами должны приостановиться);
приостановленный процесс-читатель возобновляет рабо-
ту только в том случае, если нет приостановленных процессов-
писателей.
Первое условие можно выполнить, заменив строку 11 в преды-
дущей программе строкой
if (nw >= 0 or dw > 0) {dr = dr + 1; V(e); P(r); },
а второе условие выполнится, если изменить порядок ветвей опе-
ратора if процессов-писателей (см. строки 31–33 предыдущей про-
граммы) следующим образом:
if (dw > 0) {dw = dw 1; V(w); }
elseif (dr > 0) {dr = dr 1; V(r); }
else V(e);
Вывод. Преимущество метода пер ед ачи эстафеты в том, что
для управления порядком запуска процессов можно менять условия
защиты, не влияя на правильность решения.
96