Разделы презентаций


Операционные системы: Синхронизация процессов

Содержание

Проблема синхронизации процессов

Слайды и текст этой презентации

Слайд 1Операционные системы Автор В.А.Серков
Средства синхронизации и взаимодействия процессов

Операционные системы Автор В.А.СерковСредства синхронизации и взаимодействия процессов

Слайд 2Проблема синхронизации процессов

Проблема синхронизации процессов

Слайд 3В.А.Серков "Операционные системы" 2
Процессам часто нужно взаимодействовать друг с другом.


Например, один процесс может передавать данные другому процессу, или несколько

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





В.А.Серков

Слайд 4В.А.Серков "Операционные системы" 2
Взаимодействие 2-х процессов


В.А.Серков

Слайд 5В.А.Серков "Операционные системы" 2


В.А.Серков

Слайд 6В.А.Серков "Операционные системы" 2



В.А.Серков

Слайд 7В.А.Серков "Операционные системы" 2




В.А.Серков

Слайд 8В.А.Серков "Операционные системы" 2
Ситуации, когда два или более процессов обрабатывают

разделяемые данные, и конечный результат зависит от соотношения скоростей процессов,

называются гонками.
В.А.Серков

Слайд 9В.А.Серков "Операционные системы" 2
Критическая секция
Критическая секция - это часть программы,

в которой осуществляется доступ к разделяемым данным.
Пример
Assign(fl,’D:\Work\Filedan.txt’);
Reset(fl);
For i:=1 To

20 Do Writeln(fl,X[i]);
Close(fl);

В.А.Серков

Слайд 10В.А.Серков "Операционные системы" 2
Чтобы исключить эффект гонок по отношению к

некоторому ресурсу, необходимо обеспечить, чтобы в каждый момент в критической

секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.
В.А.Серков

Слайд 11В.А.Серков "Операционные системы" 2
Блокирующая переменная
С каждым разделяемым ресурсом связывается двоичная

переменная, которая принимает значение 1, если ресурс свободен (то есть

ни один процесс не находится в данный момент в критической секции, связанной с данным ресурсом), и значение 0, если ресурс занят.
В.А.Серков

Слайд 12В.А.Серков "Операционные системы" 2


В.А.Серков

Слайд 13В.А.Серков "Операционные системы" 2
Недостаток
В течение времени, когда один процесс находится

в критической секции, другой процесс, которому требуется тот же ресурс,

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

Слайд 14В.А.Серков "Операционные системы" 2
Аппарат событий
Используются системные функции, которые условно

назовем WAIT(x) и POST(x), где x - идентификатор некоторого события.


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

Слайд 15В.А.Серков "Операционные системы" 2


В.А.Серков

Слайд 16В.А.Серков "Операционные системы" 2
Семафоры
Обобщающее средство синхронизации процессов предложил Эдсгер Дейкстра

(1930-2002), который ввел два новых примитива. В абстрактной форме эти

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

Слайд 17В.А.Серков "Операционные системы" 2


В.А.Серков

Слайд 18Тупики

Тупики

Слайд 19В.А.Серков "Операционные системы" 2
Приведенный выше пример поможет нам проиллюстрировать еще

одну проблему синхронизации - взаимные блокировки, называемые также дедлоками, клинчами

или тупиками. Если переставить местами операции P(e) и P(b) в программе «писателе», то при некотором стечении обстоятельств эти два процесса могут взаимно заблокировать друг друга. Действительно, пусть «писатель» первым войдет в критическую секцию и обнаружит отсутствие свободных буферов.
Он начнет ждать, когда «читатель» возьмет очередную запись из буфера, но «читатель» не сможет этого сделать, так как для этого необходимо войти в критическую секцию, вход в которую заблокирован процессом «писателем».
В.А.Серков

Слайд 20В.А.Серков "Операционные системы" 2


В.А.Серков

Слайд 21В.А.Серков "Операционные системы" 2



В.А.Серков

Слайд 22В.А.Серков "Операционные системы" 2




В.А.Серков

Слайд 23В.А.Серков "Операционные системы" 2
В рассмотренных примерах тупик был образован двумя

процессами, но взаимно блокировать друг друга могут и большее число

процессов.
Проблема тупиков включает в себя следующие задачи:
- предотвращение тупиков;
- распознавание тупиков;
- восстановление системы после тупиков.
В.А.Серков

Слайд 24В.А.Серков "Операционные системы" 2
Тупики могут быть предотвращены на стадии написания

программ, то есть программы должны быть написаны таким образом, чтобы

тупик не мог возникнуть ни при каком соотношении взаимных скоростей процессов. Так, если бы в предыдущем примере процесс А и процесс В запрашивали ресурсы в одинаковой последовательности, то тупик был бы в принципе невозможен.
В.А.Серков

Слайд 25В.А.Серков "Операционные системы" 2
Второй подход к предотвращению тупиков называется динамическим

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

например, ресурсы могут выделяться в определенной последовательности, общей для всех процессов.
В.А.Серков

Слайд 26В.А.Серков "Операционные системы" 2
Восстановление системы. Если же тупиковая ситуация возникла,

то не обязательно снимать с выполнения все заблокированные процессы. Можно

снять только часть из них, при этом освобождаются ресурсы, ожидаемые остальными процессами, можно вернуть некоторые процессы в область свопинга, можно совершить «откат» некоторых процессов до так называемой контрольной точки, в которой запоминается вся информация, необходимая для восстановления выполнения программы с данного места. Контрольные точки расставляются в программе в местах, после которых возможно возникновение тупика.
В.А.Серков

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика