Файл: Лекция 5. Процессы и потоки (нити). Взаимодействие процессов.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2021
Просмотров: 319
Скачиваний: 11
up увеличит значение семафора на 1 или разблокирует процесс, находящийся в ожидании..
down уменьшает значение семафора на 1 или блокирует процесс, если семафор =0.
down и up выполняются как элементарное действие, т.е. процесс не может быть блокирован во время выполнения этих операций. Значит, у операционной системы должен быть запрет на все прерывания, и перевод процесса в режим ожидания.
Решение проблемы переполненного буфера с помощью семафора
Применим три семафора:
full - подсчет заполненных сегментов (в начале = 0)
empty - подсчет пустых сегментов (в начале = количеству сегментов)
mutex - для исключения одновременного доступа к буферу двух процессов. (в начале = 1)
Мьютекс упрощенная версия семафора, он управляет доступом к ресурсу. Показывает, блокирован или нет ресурс.
Решение проблемы переполненного буфера с помощью семафора
Применение семафоров для устройств ввода/вывода
Для устройств ввода/вывода семафор выставляется равный нулю. После запуска управляющего процесса выполняется down процесс блокируется. Когда нужно активизировать процесс управления, выполняется up.