Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Взаимодействие между процессамиСодержание книги Поиск на нашем сайте
Ситуации, когда приходится процессам взаимодействовать: · Передача информации от одного процесса другому · Контроль над деятельностью процессов (например: когда они борются за один ресурс) · Согласование действий процессов (например: когда один процесс поставляет данные, а другой их выводит на печать. Если согласованности не будет, то второй процесс может начать печать раньше, чем поступят данные). Два вторых случая относятся и к потокам. В первом случае у потоков нет проблем, т.к. они используют общее адресное пространство. Передача информации от одного процесса другому Передача может осуществляться несколькими способами: · Разделяемая память · Каналы (трубы), это псевдофайл, в который один процесс пишет, а другой читает. · Сокеты - поддерживаемый ядром механизм, скрывающий особенности среды и позволяющий единообразно взаимодействовать процессам, как на одном компьютере, так и в сети. · Почтовые ящики (только в Windows), однонаправленные, возможность широковещательной рассылки. · Вызов удаленной процедуры, процесс А может вызвать процедуру в процессе В, и получить обратно данные.
Схема для канала
Схема для сокетов СОБЫТИЯ (СИГНАЛЫ). Оповещение о наступлении к-л события. Система прерываний предст. собой пример реализации сигналов. С сигналами связана логическая переменная (0 или 1) и означающая наступление к-л события. Почтовые ящики Представляют собой массив, в котором находятся очереди сообщений о наступлении каких-либо событий. С каждым ПЯ связана очередь задач, ожидающих освобождение ПЯ. Обычно доступ к ПЯ организуется через алгоритм взаимного исключения. Как правило, размер ПЯ неограничен. Критические области Критическая область - часть программы, в которой есть обращение к совместно используемым данным. Условия избегания состязания и эффективной работы процессов: 1. Два процесса не должны одновременно находиться в критических областях. 2. Процесс, находящийся вне критической области, не может блокировать другие процессы. 3. Невозможна ситуация, когда процесс вечно ждет (зависает) попадания в критическую область. Пример: Взаимное исключение с использованием критических областей
По типу взаимодействия различают сотрудничающие процессы: — процессы, разделяющие только коммуникационный канал, по которому один передает данные, а другой их получает; — процессы, осуществляющие взаимную синхронизацию: когда работает один, другой ждет окончания его работы (типично для программ, управляющие рядом технологических процессов);
конкурирующие процессы: — процессы, использующие совместно разделяемый ресурс; — процессы, использующие критические секции; — процессы, использующие взаимные исключения. При синхронизации задач необходимо бороться с 3-мя проблемами: 1. "блокировка" ("lockout"): • процесс (задача) ожидает ресурс, который никогда не освободится, 2. "тупик" ("deadlock") • два процесса (задачи) владеют каждым по ресурсу и ожидают освобождения ресурса, которым владеет другой процесс (задача), 3. "голодание" (starvation) - ситуации, когда процессы с низким приоритетом могут никогда не исполниться и бесконечно ждать. когда процесс (задача) монополизировал процессор Для минимизации этик проблем используются следующие идеи. • Количество ресурсов ограничено, поэтому нельзя допускать создания задач, для которых недостаточно ресурсов для выполнения. • Задачи делятся на группы: — неактивные задачи, которым не хватило даже пассивных ресурсов, и ожидающие событий задачи; таким задачам активный ресурс (процессор) не дается вообще; — готовые задачи, у которых есть все необходимые пассивные ресурсы, но нет процессора; являются кандидатами на получение процессора в случае его освобождения; — выполняющиеся задачи, у которых есть все необходимые пассивные ресурсы, и процессор.
|
||||
Последнее изменение этой страницы: 2017-02-06; просмотров: 402; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.29.190 (0.006 с.) |