Составители:
Рубрика:
}
Примененный метод называется “методом передачи условия” : здесь
в случае операций 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
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »