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

UptoLike

while (true) {
. . .
P(s);
nr = nr + 1;
if (nr == 1) P(rw); # первый читатель получает блокировку
V(s);
[чтение БД];
P(s);
nr = nr 1;
if (nr == 0) V(rw); #последний снимает блокировку
V(s);
}
}
process Write[i = 1 to K] {
while (true) {
. . .
P(rw);
[запись БД]
V(rw);
}
}
Замечание. Если первый процесс обратится к базе данных, а
далее подходят к протоколам входа читатель и писатель, то вто-
рому читателю ничего проверять не нужно он беспрепятственно
входит (после выполнения критической секции первым); все осталь-
ные читатели также не нуждаются в проверках. Поэтому создается
неравноправная ситуация: возможен поток читателей, который за-
блокирует возможность входа писателя. Таким образом, ситуация
несправедливая: налицо преимущество читателей.
89