Технология программирования для распределенных параллельных систем. Демьянович Ю.К - 20 стр.

UptoLike

}
Примененный метод называется “методом передачи условия” : здесь
в случае операций signal и wait значение семафора не меняется;
это приводит к тому, что значение s передается тому процессу, ко-
торый семафор запускает.
Сравним операции wait и P, а также signal и V. Сходство опе-
раций в том, что операция wait аналогично P приостанавливает
процесс, а signal аналогично V его запускает, а отличия состоят
в следующем:
1) операция wait всегда приостанавливает процесс, в то время
как операция P это делает лишь, если значение семафора равно
нулю;
2) операция signal не производит никаких действий, если нет
процессов приостановленных на условной переменной . е. факт
выполнения опер ации signal не запоминается), в то время, как
операция V либо запускает процесс, либо увеличивает значение
семафора.
Замечание. В дальнейшем будем предполагать, что использует-
ся стратегия SC, т. е. стратегия “сигнализировать и продолжить”
(signal and continue).
§ 6. Операции с условными переменными
Здесь приведен полный список операций с условными перемен-
ными, используемый в дальнейшем.
Все приводимые ниже операции е стес твенны и достаточно легко
реализуются: они представляют собой операции с очередями.
Т а б л и ц а 1.
К о м а н д а С о д е р ж а н и е к о м а н д ы
wait(cv) Ждать в конце очереди
wait(cv,rank) Ждать в порядке возрастания значения ранга (rank)
signal(cv) Запустить процесс из начала очереди и продолжить
signal_all(cv) Запустить все процессы очереди и продолжить
empty(cv) Истина, если очередь пуста, иначе ложь
minrank(cv) Значение ранга процесса в начале очереди ожидания
21