Взаимодействие между процессами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Взаимодействие между процессами



Ситуации, когда приходится процессам взаимодействовать:

· Передача информации от одного процесса другому

· Контроль над деятельностью процессов (например: когда они борются за один ресурс)

· Согласование действий процессов (например: когда один процесс поставляет данные, а другой их выводит на печать. Если согласованности не будет, то второй процесс может начать печать раньше, чем поступят данные).

Два вторых случая относятся и к потокам. В первом случае у потоков нет проблем, т.к. они используют общее адресное пространство.

Передача информации от одного процесса другому

Передача может осуществляться несколькими способами:

· Разделяемая память

· Каналы (трубы), это псевдофайл, в который один процесс пишет, а другой читает.

· Сокеты - поддерживаемый ядром механизм, скрывающий особенности среды и позволяющий единообразно взаимодействовать процессам, как на одном компьютере, так и в сети.

· Почтовые ящики (только в Windows), однонаправленные, возможность широковещательной рассылки.

· Вызов удаленной процедуры, процесс А может вызвать процедуру в процессе В, и получить обратно данные.

 

 

Схема для канала

 

 

Схема для сокетов

СОБЫТИЯ (СИГНАЛЫ).

Оповещение о наступлении к-л события. Система прерываний предст. собой пример реализации сигналов. С сигналами связана логическая переменная (0 или 1) и означающая наступление к-л события.

Почтовые ящики

Представляют собой массив, в котором находятся очереди сообщений о наступлении каких-либо событий. С каждым ПЯ связана очередь задач, ожидающих освобождение ПЯ. Обычно доступ к ПЯ организуется через алгоритм взаимного исключения. Как правило, размер ПЯ неограничен.

Критические области

Критическая область - часть программы, в которой есть обращение к совместно используемым данным.

Условия избегания состязания и эффективной работы процессов:

1. Два процесса не должны одновременно находиться в критических областях.

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

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

Пример:

Взаимное исключение с использованием критических областей

 

По типу взаимодействия различают

сотрудничающие процессы:

— процессы, разделяющие только коммуникационный канал, по которому один передает данные, а другой их получает;

— процессы, осуществляющие взаимную синхронизацию: когда работает один, другой ждет окончания его работы (типично для программ, управляющие рядом технологических процессов);

 

конкурирующие процессы:

— процессы, использующие совместно разделяемый ресурс;

— процессы, использующие критические секции;

— процессы, использующие взаимные исключения.

При синхронизации задач необходимо бороться с 3-мя проблемами:

1. "блокировка" ("lockout"):

• процесс (задача) ожидает ресурс, который никогда не освободится,

2. "тупик" ("deadlock")

• два процесса (задачи) владеют каждым по ресурсу и ожидают освобождения ресурса, которым владеет другой процесс (задача),

3. "голодание" (starvation) - ситуации, когда процессы с низким приоритетом могут никогда не исполниться и бесконечно ждать. когда процесс (задача) монополизировал процессор

Для минимизации этик проблем используются следующие идеи.

• Количество ресурсов ограничено, поэтому нельзя допускать создания задач, для которых недостаточно ресурсов для выполнения.

• Задачи делятся на группы:

— неактивные задачи, которым не хватило даже пассивных ресурсов, и ожидающие событий задачи; таким задачам активный ресурс (процессор) не дается вообще;

— готовые задачи, у которых есть все необходимые пассивные ресурсы, но нет процессора; являются кандидатами на получение процессора в случае его освобождения;

— выполняющиеся задачи, у которых есть все необходимые пассивные ресурсы, и процессор.

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 368; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.189.247 (0.004 с.)