8821

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

Контрольная

Информатика, кибернетика и программирование

Взаимодействие между процессами. 3.1 Взаимодействие между процессами Ситуации, когда приходится процессам взаимодействовать: Передача информации от одного процесса другому Контроль над деятельностью процессов (например: когда они борются...

Русский

2013-02-17

164.5 KB

9 чел.

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

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

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

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

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

 

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

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

  •  Разделяемая память
  •  Каналы (трубы), это псевдофайл, в который один процесс пишет, а другой читает.
  •  Сокеты - поддерживаемый ядром механизм, скрывающий особенности среды и позволяющий единообразно взаимодействовать процессам, как на одном компьютере, так и в сети.
  •  Почтовые ящики (только в Windows), однонаправленные, возможность широковещательной рассылки.
  •  Вызов удаленной процедуры, процесс А может вызвать процедуру в процессе В,  и получить обратно данные.

     

 

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

 

 

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

 

3.1.2 Состояние состязания

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

Рассмотрим пример, когда два процесса пытаются распечатать файл. Для этого им нужно поместить имя файла в спулер печати, в свободный сегмент.

in - переменная указывающая на следующий свободный сегмент

out - переменная указывающая на следующее имя файла для печати

 

Пример состязания

Распишем события по пунктам.

  1.  Процесс А считывает переменную in (равную 7), и сохраняет ее в своей переменной next_free_slot.
  2.  Происходит прерывание по таймеру, и процессор переключается на процесс В.
  3.  Процесс В считывает переменную in  (равную 7), и сохраняет ее в своей переменной next_free_slot.
  4.  Процесс В сохраняет имя файла в сегменте 7.
  5.  Процесс В увеличивает переменную next_free_slot на единицу (next_free_slot+1), и заменяет значение in на 8.
  6.  Управление переходит процессу А, и продолжает с того места на котором остановился.
  7.  Процесс А сохраняет имя файла в сегменте 7, затирая имя файла процесса В.
  8.  Процесс А увеличивает переменную next_free_slot на единицу (next_free_slot+1), и заменяет значение in на 8.

Как видно из этой ситуации, файл процесса В не будет напечатан.

 

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

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

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

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

Пример: 

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

 

3.1.4 Взаимное исключение с активным ожиданием

Рассмотрим методы взаимного исключения

Запрещение прерываний

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

Недостаток этого метода в том, что если произойдет сбой процесса, то он не сможет снять запрет на прерывания.

Переменные блокировки

Вводится понятие переменной блокировки, т.е. если значение этой переменной равно, например 1, то ресурс занят другим процессом, и второй процесс переходит в режим ожидания (блокируется) до тех пор, пока переменная не примет значение 0.

метод блокирующих переменных

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

Строгое чередование

В этой модели, процессы могут выполняться строго по очереди, используя переменную.

Строгое чередование

 

Недостатки метода:

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

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

 

3.1.5 Примитивы взаимодействия процессов

Вводится понятия двух примитивов.

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

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

 

Применение примитивов

 

Основное преимущество - это отсутствие активного ожидания..

Проблема заключается в следующем, если спулер пуст, то wakeup срабатывает в пустую.

 

Проблема переполненного буфера (проблема производителя и потребителя)

Рассмотрим два процесса, которые совместно используют буфер ограниченного размера, один процесс пишет в буфер, другой считывает данные.

Чтобы первый процесс не писал, когда буфер полный, а второй не считывал, когда он пуст, вводится переменная count для подсчета количества элементов в буфере.

Проблема переполненного буфера

 

В этой ситуации оба процесса могут попасть в состояние ожидания, если пропадет сигнал активации.

Алгоритм такой ситуации:

  1.  Процесс В, считал count=0 (заблокироваться он еще не успел)
  2.  Планировщик передал управление процессу А
  3.  Процесс А, выполнил все вплоть до wakeup, пытаясь разблокировать процесс В (но он не заблокирован, wakeup срабатывает впустую)
  4.  Планировщик передал управление процессу В
  5.  И он заблокировался, и больше сигнала на разблокировку не получит
  6.  Процесс А в конце концов заполнит буфер и заблокируется, но сигнала на разблокировку не получит.

3.1.6 Семафоры

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

Были предложены две операции down и up (аналоги sleep и wakeup).

Прежде чем заблокировать процесс, down проверяет семафор, если он равен нулю, то он блокирует процесс, если нет, то процесс снова становится активным, и уменьшает семафор на единицу.

up увеличит значение семафора на 1 или разблокирует процесс находящийся в ожидании..

down уменьшает значение семафора на 1 или блокирует процесс, если семафор =0.

down и up выполняются как элементарное действие, т.е. процесс не может быть блокирован во время выполнения этих операций. Значит, у операционной системы должен быть запрет на все прерывания, и перевод процесса в режим ожидания.

Решение проблемы переполненного буфера с помощью семафора

Применим три семафора:

full - подсчет заполненных сегментов (в начале = 0)

empty - подсчет пустых сегментов (в начале = количеству сегментов)

mutex - для исключения одновременного доступа к буферу двух процессов.  (в начале = 1)

Мьютекс упрощенная версия семафора, он управляет доступом к ресурсу. Показывает, блокирован или нет ресурс.

 

Решение проблемы переполненного буфера с помощью семафора

 

 

Применение семафоров для устройств ввода/вывода 

Для устройств ввода/вывода семафор выставляется равный нулю. После запуска управляющего процесса выполняется down, и т.к. семафор равен нулю, процесс блокируется. Когда нужно активизировать процесс управления, выполняется up.

PAGE  8


 

А также другие работы, которые могут Вас заинтересовать

83622. Порядок расчета рабочего освещения любого цеха 73.69 KB
  Наметим число светильников в ряду: шт. тогда расстояние от торцевых стен до крайнего светильника составит: Расстояние от крайних светильников до стены принимается 03L 05L в зависимости от наличия рабочих мест у стен. Выберем расстояние между рядами LB при этом необходимо учесть следующее условие: Примем LB = 4м; Расстояние от боковых стен до крайних светильников составит: 5. Число светильников в цехе: Размещение светильников представлено на рис.
83623. Расчет аварийного освещения 28.4 KB
  Оно должно быть достаточным для безопасного выхода людей из помещения и продолжения работы в помещениях и на открытых пространствах в тех случаях когда отключение рабочего освещения может вызвать пожар взрыв отравление газами парами длительное расстройство технологического процесса нарушение работы важнейших объектов водоснабжение электростанции узлы радиопередачи и т. Для аварийного освещения разрешается применять как лампы накаливания так и люминесцентные лампы последние при минимальной температуре воздуха не менее 10 С.75...
83624. Расчёт осветительной сети 34.54 KB
  Освещение безопасности предназначено для продолжения работы при аварийном отключении рабочего освещения. Светильники рабочего освещения и светильники освещения безопасности должны питаться от независимых источников. Устройство рабочего освещения обязательно во всех помещениях независимо от устройства в них других видов освещения. Светильники аварийного освещения рекомендуется по возможности выделять из числа светильников рабочего освещения.
83625. Картограмма нагрузок. Определение условного центра электрических нагрузок 56.37 KB
  Определение условного центра электрических нагрузок. Картограмма нагрузок. Для определения места положения ГПП ТП при проектировании системы электроснабжения на генеральный план промышленного предприятия наносится картограмма нагрузок которая представляет собой размещённые на генеральном плане окружности причём площади ограниченные этими окружностями в выбранном масштабе равны расчётным нагрузкам цехов.
83626. МОЛНИЕЗАЩИТА ПОДСТАНЦИЙ 32.29 KB
  Молниезащита Iкатегории Защита от прямых ударов молнии зданий и сооружений относимых по устройству молниезащиты к I категории должна выполняться отдельно стоящими стержневыми или тросовыми молниеотводами. Защита от прямых ударов молнии зданий и сооружений II категории с неметаллической кровлей должна быть выполнена отдельно стоящими или установленными на защищаемом объекте стержневыми или тросовыми молниеотводами обеспечивающими зону защиты в соответствии с требованиями табл. Установка молниеприемников или наложение молниеприемной сетки не...
83627. Условия и требования норм проектирования по выбору трансформаторов тока (встроенные или отдельно стоящие, 10% погрешность, чувствительность продольной дифференциальной защиты) 39.83 KB
  Трансформаторы тока предназначены для понижения первичного тока до стандартной величины и для отделения цепей измерения и защиты от первичных цепей высокого напряжения. Основные номинальные параметры трансформаторов тока: Номинальное напряжение линейное Uном кВ Номинальный первичный ток I1ном А Номинальный вторичный ток I2ном А 1 или 5 Номинальная вторичная нагрузка с коэффициентом мощности cosφ2=0.8 ВА Номинальный класс точности для измерений Номинальный класс точности для защиты Коэффициент трансформации...
83628. Требования нормами технологического проектирования и САНПИНом к городским подстанциям и электрическим сетям 32.97 KB
  Нормами технологического проектирования к городским ПС и электрическим сетям рассматриваются и регламентируются следующие разделы: 1 Общие положения общие указания обьем и состав проектной документации 2 Расчетные электрические нагрузки расчетные электрические нагрузки жилых зданий электрические нагрузки общественных зданий и промышленных предприятий электрические нагрузки распределительных линий до 1 кВ электрические нагрузки сетей 106 кВ и ЦП укрупненные показатели расхода электроэнергии коммунальнобытовых потребителей 3...
83629. Очерёдность выполнения чертежей «План и разрезы подстанции и плана фундаментов» и что отражено на этих чертежах 28.85 KB
  В рабочие чертежи включают: 1 общие данные по рабочим чертежам; 2 принципиальную схему главных цепей; 3 принципиальные полные схемы релейной защиты управления измерения сигнализации и т.; 4 планы расположения электрооборудования ошиновки и прокладки сетей заземления; 5 планы прокладки электрических сетей; 6 схемы таблицы подключения; 7 кабельный журнал; 8 рабочую документацию задания МЭЗ; 9 эскизные чертежи общего вида НКУ. На схеме указывают: 1 номинальное напряжение сборных шин; 2 типы номинальные токи и сопротивление...
83630. Перечислить основные виды спецификаций и что отражает экспликация на чертеже 30.3 KB
  Описание спецификации дается в ГОСТ 2. Над основной надписью помещаются графы спецификации. В основной надписи спецификации указывают наименование сборочной единицы масштаб ее изображения. Спецификации первого типа чаще используются в конструкторскотехнологических подразделениях а второго на сборочных участках и при работе по заказам.