Управление процессами

Содержание

Слайд 2

Определения

Тупик (тупиковая ситуация, dead lock, clinch) – ситуация в системе, когда один

Определения Тупик (тупиковая ситуация, dead lock, clinch) – ситуация в системе, когда
или несколько процессов находятся в состоянии ожидания события, которое никогда не произойдет
Бесконечное ожидание – ситуация в системе, когда запуск или возобновление работы процесса откладывается на неопределенное время в силу определенных обстоятельств. Например, если система реализует дискриминационную дисциплину планирования процессов.

Слайд 3

Причины возникновения тупиков и бесконечного ожидания

Реализация дискриминационной дисциплины планирования процессов (например, SJF

Причины возникновения тупиков и бесконечного ожидания Реализация дискриминационной дисциплины планирования процессов (например,
или SRT)
Отсутствие в системе механизмов переключения процессов
Неэффективная политика управления ресурсами системы (например, наличие большого количества ресурсов с эксклюзивным доступом)
Взаимоблокировки процессов
Неэффективная реализация систем со спулингом (например, при реализации печати на принтере с использованием полной выгрузки документов в пул принтера)
и т.д.

Слайд 4

Пример возникновения тупика: взаимоблокировка процессов и ресурсы с эксклюзивным доступом

Процесс А

Процесс В

Ресурс

Пример возникновения тупика: взаимоблокировка процессов и ресурсы с эксклюзивным доступом Процесс А
1

Ресурс 2

Ресурсы 1 и 2 – ресурсы
с эксклюзивным доступом и
не допускают использование
более чем одним процессом
в один момент времени

Процесс А не может освободить
ресурс 1, пока его действия не
будут закончены

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

Слайд 5

Пример возникновения тупика: системы со спулингом

принтер

Область спулинга
принтера в ОП
(объем – N байт)

Процесс

Пример возникновения тупика: системы со спулингом принтер Область спулинга принтера в ОП
А

Процесс B

Процесс А пытается поместить в спулинг документ объемом, более чем N байт

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

Процесс А блокируется
сам и блокирует спулинг

При попытке начать печать
Блокируется процесс В

Слайд 6

Последствия возникновения тупиков и бесконечного ожидания

Зависание одного или более процессов
Простой ресурсов системы
Неэффективное

Последствия возникновения тупиков и бесконечного ожидания Зависание одного или более процессов Простой
управление ресурсами
Снижение производительности работы системы
Снижение эргономичности работы с системой с точки зрения пользователей
Снижения доверия к системе со стороны пользователя
Возможна потеря результатов работы системы
Экономические убытки
и т.д.

Слайд 7

Необходимые условия возникновения тупиков

Условие взаимоисключения процессов при обращении к ресурсам эксклюзивного доступа:

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

Слайд 8

Наличие в системе ресурсов с эксклюзивным доступом (условия 1-3)

Р1

Р2

Рn



Число процессов в системе,

Наличие в системе ресурсов с эксклюзивным доступом (условия 1-3) Р1 Р2 Рn
теоретически, бесконечно

R1

R2

R3

Rm


Число ресурсов в системе - конечно

Слайд 9

Условие кругового ожидания

Р1

Р2

Р3

R1

R2

R3

Условие кругового ожидания Р1 Р2 Р3 R1 R2 R3

Слайд 10

Возникновение тупика в системе и необходимые условия

Тупик может возникнуть в системе только

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

Слайд 11

Направления изучения тупиковых ситуаций

Предотвращение тупиков – создание таких операционных систем, в которых

Направления изучения тупиковых ситуаций Предотвращение тупиков – создание таких операционных систем, в
возникновение тупика просто невозможно
Обходы тупиков – создание таких ОС, которые могли бы предсказать возможный тупик и мягко обойти его
Обнаружение тупиков – реализация средств ОС, позволяющих определять, что процессы находятся в состоянии тупика и/или бесконечного ожидания
Восстановление после тупиков – реализация средств ОС, позволяющих разорвать тупик и восстановить работоспособность системы

Слайд 12

Предотвращение тупиков

Тупик может возникнуть в системе, если в ней выполняются все четыре

Предотвращение тупиков Тупик может возникнуть в системе, если в ней выполняются все
необходимых условия
Следовательно, если нарушить хоть одно необходимое условие, то тупик просто не сможет возникнуть

Слайд 13

Методы предотвращения тупиков

Нарушение условия взаимоисключения процессов при обращении к ресурсам с эксклюзивным

Методы предотвращения тупиков Нарушение условия взаимоисключения процессов при обращении к ресурсам с
доступом
Нарушение условия ожидания
Нарушение условия неперераспределимости ресурсов
Нарушение условия кругового ожидания

Слайд 14

Нарушение условия взаимоисключения процессов при обращении к ресурсам с эксклюзивным доступом

Запретить эксклюзивный

Нарушение условия взаимоисключения процессов при обращении к ресурсам с эксклюзивным доступом Запретить
доступ к ресурсам
Последствия:
Процессы не смогут бесконечно удерживать ресурсы – рано или поздно им придется их освободить
Невозможно будет реализовать некоторые системные механизмы, например, обслуживание прерываний устройств
Этот подход никогда не может быть реализован

Слайд 15

Нарушение условия ожидания

Чтобы процессы не ожидали дополнительных ресурсов, необходимо выделить им все

Нарушение условия ожидания Чтобы процессы не ожидали дополнительных ресурсов, необходимо выделить им
ресурсы заранее
Не запускать процесс, если в данный момент система не может выделить ему все необходимые ресурсы

Слайд 16

Нарушение условия ожидания: недостатки

Процессы, которые требуют большого количества ресурсов, могут оказаться в

Нарушение условия ожидания: недостатки Процессы, которые требуют большого количества ресурсов, могут оказаться
ситуации бесконечного ожидания, т.к. процессы, которым нужно меньше ресурсов, будут «выхватывать» их у тяжеловесных процессов
Процессы с меньшими потребностями в ресурсах будут проходить в системе быстрее. Такая политика распределения ресурсов дискриминационная
Ресурсы могут простаивать при наличии большого количества легковесных процессов
Система не сможет запустить процесс, которому необходимо больше ресурсов, чем есть в системе
Перестройка ПО, так чтобы программы запрашивали все необходимые ресурсы в самом начале

Слайд 17

Нарушение условия ожидания: последствия

Полностью устраняется проблема тупиков
Не решена проблема бесконечного ожидания
Ресурсы используются

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

Слайд 18

Нарушение условия неперераспределимости ресурсов

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

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

Слайд 19

Нарушение условия неперераспределимости ресурсов: недостатки

Если процесс был приостановлен и для его возобновления

Нарушение условия неперераспределимости ресурсов: недостатки Если процесс был приостановлен и для его
требуется много ресурсов, то он может оказаться в ситуации бесконечного ожидания – легковесные процессы могут перехватывать, необходимые ему ресурсы
Процессы с меньшими потребностями в ресурсах будут проходить в системе быстрее. Такая политика распределения ресурсов дискриминационная
Ресурсы могут простаивать, если в системе выполняется много легковесных процессов

Слайд 20

Нарушение условия неперераспределимости ресурсов: последствия

Полностью решается проблема тупиков
Не решена проблема бесконечного ожидания
Ресурсы

Нарушение условия неперераспределимости ресурсов: последствия Полностью решается проблема тупиков Не решена проблема
используются неэффективно
Снижение производительности системы

Слайд 21

Нарушение условия кругового ожидания

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

Нарушение условия кругового ожидания Если организовать доступ процессов к ресурсам так, чтобы
могли образовываться циклические цепи ресурсов и процессов, то условие кругового ожидания может быть нарушено
Необходимо ввести упорядоченность ресурсов по типам (от 1 до t)
Если процесс владеет ресурсами типа i, то он может потребовать у системы выделения ресурсов только старших типов (от i+1 до t)
Таким образом, процесс, находящийся в конце цепи и владеющий ресурсами типа t не может потребовать у системы выделения ресурсов типа 1 и, тем самым, замкнуть цепь

Слайд 22

Нарушение условия кругового ожидания: схема

Р1

Р2

Р3

R1

R2

R3

Такой запрос на ресурс запрещен

Нарушение условия кругового ожидания: схема Р1 Р2 Р3 R1 R2 R3 Такой запрос на ресурс запрещен

Слайд 23

Нарушение условия кругового ожидания: недостатки и последствия

ПО для таких систем должно разрабатываться

Нарушение условия кругового ожидания: недостатки и последствия ПО для таких систем должно
с учетом ранжирования ресурсов – программы должны запрашивать ресурсы в строгом соответствии с порядком типов
Если порядок типов изменится, то возникнет необходимость в перестройке всего программного обеспечения
Если в системе появятся новые ресурсы (или будут удалены имеющиеся), то это приведет к изменению порядка типов ресурсов, а следовательно, к перестройке ПО
Нарушаются общепринятые правила программирования

Слайд 24

Предотвращения тупиков: общие выводы

Полностью решается проблема тупиков
В случае нарушения условия кругового ожидания

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

Слайд 25

Обходы тупиков

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

Обходы тупиков В системе тупиковые ситуации потенциально возможны Система реализует специальные механизмы,
возможность возникновения тупика
Мягко обойти тупиковую ситуацию

Слайд 26

Алгоритм банкира

ОС – «банкир», который владеет ресурсами
Процессы – «заемщики», которые берут ресурсы

Алгоритм банкира ОС – «банкир», который владеет ресурсами Процессы – «заемщики», которые
«в кредит», т.е. обязаны вернуть их системе, когда они им станут не нужными

Слайд 27

Правила алгоритма банкира

Количество ресурсов в системе – конечно
Количество процессов в системе –

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

Слайд 28

Надежное и ненадежное состояния системы

Состояние системы называется надежным, если система располагает таким

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

Слайд 29

Общий принцип работы системы

Система должна распределять ресурсы так, чтобы следующее ее состояние

Общий принцип работы системы Система должна распределять ресурсы так, чтобы следующее ее
было надежным
Если состояние системы ненадежное, то
Система может дождаться освобождения ресурсов каким-либо процессом
или Система должна констатировать возникновение тупика

Слайд 30

Пример работы алгоритмы банкира в системе с одним типом ресурсов

Пусть t =

Пример работы алгоритмы банкира в системе с одним типом ресурсов Пусть t
10 – количество единиц ресурса в системе
Пусть m1 = 5, m2 = 3, m3 = 7 – максимальные потребности процессов P1, P2 и P3 в ресурсах
Величины a1, a2, a3 – количество ресурсов, распределенных соответствующим процессам на данном шаге работы системы
Величины bi = mi – ai, i=1,2,3 – количество ресурсов, в которых нуждаются процессы на данном шаге
Величина а = a1+a2+a3 – общее количество распределенных на данный момент ресурсов
Величина b = t – a – количество ресурсов, которыми обладает система на данный момент времени

Слайд 31

Пример работы алгоритмы банкира в системе с одним типом ресурсов

Состояние системы будет

Пример работы алгоритмы банкира в системе с одним типом ресурсов Состояние системы
считаться надежным, если выполняется неравенство b ≥ bi хотя бы для одного процесса i
Состояние системы ненадежное, если все bi ≥ b

Слайд 32

Пример надежного состояния

Пример надежного состояния

Слайд 33

Пример ненадежного состояния

Пример ненадежного состояния

Слайд 34

Обнаружение тупиков

Построение и анализ графовых моделей, отражающих связи «процессы-ресурсы»
Использование сканеров процессов (ОС

Обнаружение тупиков Построение и анализ графовых моделей, отражающих связи «процессы-ресурсы» Использование сканеров
Microsoft Windows)
Использование процессов-демонов (ОС UNIX/Linux)

Слайд 35

Графовые модели в обнаружении тупиков

Строится граф, отражающий
процессы
ресурсы
связи, показывающий какие

Графовые модели в обнаружении тупиков Строится граф, отражающий процессы ресурсы связи, показывающий
ресурсы уже распределены процессам
связи, показывающие на какие ресурсы претендуют процессы
Для проверки наличия тупика граф редуцируется по специальным правилам
Если после редукции графа не остается ни одной дуги, то тупика нет

Слайд 36

Обозначения в графовой модели

Обозначения в графовой модели

Слайд 37

Пример графа

Пример графа

Слайд 38

Правила редуцирования графа

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

Правила редуцирования графа Удаляются все дуги запросов, которые могут быть в данный
удовлетворены
Если у процесса есть только дуги распределения ресурсов, то удаляются они
Повторить до тех пор пока это возможно

Слайд 39

Пример редуцируемого графа

Пример редуцируемого графа
Имя файла: Управление-процессами.pptx
Количество просмотров: 139
Количество скачиваний: 1