6. Средства синхронизации и взаимодействия процессов 6.1. Проблема синхронизации Процессам Процессам часто нужно взаимодействовать друг с другом, например,

Презентация:



Advertisements
Похожие презентации
Учебный курс Операционные среды, системы и оболочки Лекция 7 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Advertisements

Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
Взаимодействие процессов: синхронизация, тупики. Параллельные процессы Параллельные процессы – процессы, выполнение которых хотя бы частично перекрывается.
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
Лекция 4. Режимы работы микропроцессора. Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Процессы и потоки. Процессы В общем представлении, процесс - это программа, выполняющаяся в оперативной памяти компьютера. Реально, все гораздо сложней.
ОПЕРАЦИОННЫЕ СИСТЕМЫ Ершов Б.Л. Российский государственный торгово-экономический университет ИВАНОВСКИЙ ФИЛИАЛ Кафедра математики, экономической информатики.
Взаимодействующие параллельные процессы
Взаимодействующие параллельные процессы. Параллельные процессы P1 P2 Q1 Q2 Последовательные процессы Логические параллельные процессы P1 P2 Q1Q2 Физические.
Основы современных операционных систем Лекция 12.
Сущность семафорных механизмов Дейкстры Р(S) - операция (P – от голландского Proberen – проверить) V(S) – операция (V – от голландского Verhogen – увеличить)
7. Монитор Сидельников В.В v Монитор Хоара 7.1. Общее описание monitor ; end. ::= ::= begin.
Учебный курс Операционные среды, системы и оболочки Лекция 6 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Основы операционных систем. Тема 6. Механизмы синхронизации.
МультиТредовые архитектуры.
Архитектура вычислительных систем Константин Ловецкий Декабрь 2011 Кафедра систем телекоммуникаций 1 Взаимоисключения.
Операторы языка Паскаль. Операторы повтора (цикла)
Кооперация процессов Процессы Бленда Николай Андреевич 2009.
Транксрипт:

6. Средства синхронизации и взаимодействия процессов 6.1. Проблема синхронизации Процессам Процессам часто нужно взаимодействовать друг с другом, например, один процесс может передавать данные другому процессу, или несколько процессов могут обрабатывать данные из общего файла. синхронизации процессов Во всех этих случаях возникает проблема синхронизации процессов, которая может решаться: приостановкой и активизацией процессов, организацией очередей, блокированием и освобождением ресурсов.

Пример необходимости синхронизации

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

6.3. Синхронизация процессов на основе семафорных операций CPU аппарат событий Для устранения активного ожидания процесса CPU может быть использован так называемый аппарат событий. взаимного исключения синхронизации процессов С помощью этого средства могут решаться не только проблемы взаимного исключения, но и более общие задачи синхронизации процессов. WAIT(x) и POST(x), В разных ОС аппарат событий реализуется по своему, но в любом случае используются системные функции аналогичного назначения, которые условно назовем WAIT(x) и POST(x), где x - идентификатор некоторого события.

Реализация критической секции с использованием системных функций WAIT(D) и POST(D)

циклический опрос WAIT(D),D D Если ресурс занят, то процесс не выполняет циклический опрос, а вызывает системную функцию WAIT(D), здесь D обозначает событие, заключающееся в освобождении ресурса D. WAIT(D) D Функция WAIT(D) переводит активный процесс в состояние ОЖИДАНИЕ и делает отметку в его дескрипторе о том, что процесс ожидает события D. D POST(D), D Процесс, который в это время использует ресурс D, после выхода из критической секции выполняет системную функцию POST(D), в результате чего ОС просматривает очередь ожидающих процессов и переводит процесс, ожидающий события D, в состояние ГОТОВНОСТЬ.

Дейкстра Обобщающее средство синхронизации процессов предложил Дейкстра, который ввел два новых примитива. P V семафорами В абстрактной форме эти примитивы, обозначаемые P и V, оперируют над целыми неотрицательными переменными, называемыми семафорами. S V(S) :S S P(S) :SS=0 S P-операцию Пусть S такой семафор. Операции определяются следующим образом: V(S) : переменная S увеличивается на 1 одним неделимым действием; выборка, инкремент и запоминание не могут быть прерваны, и к S нет доступа другим процессам во время выполнения этой операции. P(S) : уменьшение S на 1, если это возможно. Если S=0, то невозможно уменьшить S и остаться в области целых неотрицательных значений, в этом случае процесс, вызывающий P-операцию, ждет, пока это уменьшение станет возможным.

6.4. Семафоры как счетчики ресурсов и синхронизаторы операций семафоров мультипрограммирования буферный пулбуферного пула Рассмотрим использование семафоров на классическом примере взаимодействия двух процессов, выполняющихся в режиме мультипрограммирования, один из которых пишет данные в буферный пул, а другой считывает их из буферного пула. буферный пули буферов Пусть буферный пул состоит из N буферов, каждый из которых может содержать одну запись. "писатель" Процесс "писатель" должен приостанавливаться, когда все буфера оказываются занятыми, и активизироваться при освобождении хотя бы одного буфера. "читатель" Напротив, процесс "читатель" приостанавливается, когда все буферы пусты, и активизируется при появлении хотя бы одной записи.

Для процессов Для процессов, совместно выполняющих общую работу, недостаточно, что они взаимно исключают друг друга при работе с разделяемыми переменными, им необходимо еще и передавать друг другу информацию. временной сигнал Минимальной единицей передаваемой информации может быть простой временной сигнал. В этом случае действует следующее правило: процессу предоставляется возможность ждать, пока другой не сообщит о "свершении" определенного события.

Специально предусматривать взаимное исключение синхронизацией Специально предусматривать взаимное исключение при доступе к буферу нет необходимости, т.к. в данном случае оно обеспечивается синхронизацией. Итак Итак - семафор может быть синхронизатором, координирующим производство и потребление ресурсов. ПроцессP- операцию Р(S)),S Процесс, потребляя ресурс, выполняет P- операцию над связанным с ресурсом семафором (т.е. Р(S)), что означает изменение значения S в меньшую сторону. V(S)- Процесс производит ресурс, выполняя V(S)- операцию над тем же семафором.