Динамическое избежание взаимоблокировок
В этом способе ОС должна знать, является ли предоставление ресурса безопасным или нет.
Траектории ресурсов
Рассмотрим модель из двух процессов и двух ресурсов.
А1 - запрос принтера процессом А
А2 - запрос плоттера процессом А
А3 - освобождение принтера процессом А
А4 - освобождение плоттера процессом А
В1 - запрос плоттера процессом В
В2 - запрос принтера процессом В
В3 - освобождение плоттера процессом В
В4 - освобождение принтера процессом В
Динамическое избежание взаимоблокировок
Т.к. процессор предоставляется поочередно, траектория может продолжаться только параллельно осям.
Чтобы избежать тупика, процессам надо обойти прямоугольник, охватывающий всю заштрихованную область.
Безопасные и небезопасные состояния
В безопасном состоянии система может гарантировать, что все процессы закончат свою работу.
Рассмотрим систему.
10 экземпляров ресурса
3 процесса
Процесс А занял 3 экземпляра, но ему необходимо 9.
В этой ситуации можно спланировать так, сначала запустить процесс В, потом С и потом А.
Процессы заканчивают работу без тупиковой ситуации.
Рассмотрим другую ситуацию.
Процесс А занял 4 экземпляра.
Возникает небезопасное состояние.
В принципе, процесс А может в какой то момент ресурс освободить и тупика не возникнет.
Видно, что в этом случае не стоило давать ресурс процессу А.
Алгоритм банкира для одного вида ресурсов
"Банкира", потому что аналогия такая, клиенты-процессы, кредиты-ресурсы.
Рассмотрим систему:
Банкир может дать 10 кредитов (ресурсы).
К нему попеременно обращаются 4-ре клиента.
Алгоритм банкира:
1. Банкиру поступает запрос от клиента на получение кредита
2. Банкир проверяет, приводит ли этот запрос к небезопасному состоянию.
3. Банкир в зависимости от этого дает или отказывает в кредите.
Алгоритм банкира
Алгоритм банкира для несколько видов ресурсов
Рассмотрим систему:
вектора:
E=(6342) - существующие ресурсы
P=(5322) - занятые ресурсы
A=(1020) - доступные ресурсы
Алгоритм поиска безопасного или небезопасного состояния:
Алгоритм банкира для несколько видов ресурсов
Если состояние безопасное то ресурс дать можно, если нет то нельзя.
На практике все эти алгоритмы тяжело реализовать.
Дата добавления: 2015-12-26; просмотров: 1152;