Операционные системы



УПРАВЛЕНИЕ АСИНХРОННЫМИ ПАРАЛЛЕЛЬНЫМИ - часть 2


Очередной процесс S, желающий распечатать сообщение, прочитал то же самое значение переменной N, поместил в четвертую позицию свое сообщение и нарастил значение переменной на единицу. Когда в очередной раз управление будет передано процессу R, то он, продолжая свое выполнение, в полном соответствии со значением текущей свободной позиции, полученным во время предыдущей итерации, запишет сообщение также в позицию 4, поверх сообщения процесса S.

Таким образом, процесс S никогда не увидит свое сообщение распечатанным.

Особенности взаимодействия:

1.

Процессы автономны, но должны кооперироваться во время выполнения работы  (писать - читать). Проблема: очередь пустая / буфер заполнен.

2.     Для правильной работы процессы должны быть синхронизированы друг с другом. На участке работ с общим ресурсом онидолжны взаимоисключать друг друга (блокировать друг друга), иначе результат может быть неверным и непредсказуемым.

 

Рис. 4.1. Кооперация программ при работе с общим ресурсом.

В связи с рассмотренной ситуацией важным понятием процессов является понятие "критическая секция" программы. Критическая секция - это часть программы, в которой осуществляется доступ к разделяемым данным синхронизации. Чтобы исключить ситуацию, когда два или более процессов обрабатывают разделяемые данные, необходимо сделать так, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.

Пример 2. Распределение ресурсов между параллельными процессами

Простая тупиковая ситуация возникает для группы общих ресурсов (тупик - "смертельное объятие"). Программа 1, захватив ресурс 1, для продолжения работы нуждается в ресурсе 2, который захватила и удерживает программа 2, для завершения работы которой, в свою очередь, требуется ресурс 1, удерживаемый программой 1 (рис.4.2).

Рис.4.2. Тупиковая ситуация

Таким образом, подсистема УП асинхронными параллельными процессами должна обеспечить решение двух следующих задач:




Содержание  Назад  Вперед