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

UptoLike

ет и продолжает работу. Другая особенность, которая может воз-
никнуть: процесс освобождает элементы не сразу, а некоторыми
группами. Третья особенность может состоять в том, что процесс
захватывает элементы ресурса одними группами, а освобождает
другими группами. Такая обработка ресурса может быть и у дру-
гих процессов. Однако, нет особой необдходимости рассматривать
ресурс, распадающийся на отдельные элементы, ибо всегда элемен-
ты ресурса можно рассматривать, как отдельные виды ресурсов;
поэтому в дальнейшем будем считать тот или иной ресурс единым
целым, не допускающим дробления на отдельные элементы.
Общую схему операции request (запросить)/ release (освободить)
можно представить в виде:
request([параметры]) :
< await ([условия удовлетворения запроса выполнены])
[получить требуемое]; >
release([параметры]) :
< [возвратить полученное]; >
Заметим, что неделимость этих операций определяется тем,
что как при получении требуемого, так и при возврате полученного
необходим доступ к ресурсу.
Пус ть семафор e управляет входом в критическую секцию.
Метод передачи эстафеты позволяет реализовать это в следу-
ющей форме
request([параметры]) :
P(e);
if ([условия удовлетворения запроса не выполнены])
DELAY;
[получить требуемое];
SIGNAL;
release([параметры]) :
P(e);
[возвратить затребованное];
SIGNAL;
98