Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PP_KR22.doc
Скачиваний:
5
Добавлен:
10.12.2018
Размер:
377.86 Кб
Скачать
  1. Проблема взаимных блокировок (тупиков).

- Статические (анализ текста программы).

- Динамические

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

      • Прекращение: 1)Ручной выход; 2)Автоматический

    • Перехват ресурсов

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

    • Метод упорядоченных классов

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

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

Методы предотвращения – в системах, где недопустимо возникновение тупиковых ситуаций. В настоящее время эти методы представлены в основном методом упорядочивания классов (предварительное распределение всех ресурсов системы по классам). Каждому классу ставится в соответствие вес от 1 до N и любой процесс может получить ресурс класса L, только если до этого он получит все ресурсы класса L-1. Недостатки: навязывание процессам жесткого порядка в использовании ресурсов, что снижает эффективность системы в целом. Используется в системах с достаточным количеством ресурсов, где допустимо плавное снижение эффективности.

Прекращение процессов

- с ручным выходом: ограниченное количество ресурсов, в которых можно найти косвенные критерии попадания системы в тупик (например, существенное увеличение времени выполнения процесса)

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

Минимальная цена выхода (Прекращение процессов с автоматическим выходом)

Р1 С1

……….

Рn Pn

Pn – параллельные процессы

Cn – цена, внешняя, динамически назначаемая.

Цена отображает ценность процесса.

Затем формируется шкала цен для всех процессов и всех сочетаний.

Р1 + Р2 – С1 + С2

…………………..

Полученная шкала сортируется по возрастанию.

Алгоритм

  1. Если система находится в тупиковом состоянии, то в шкале цен помечаются процессы, входящие в тупиковое множество.

  2. Моделируется состояние системы, если прекратить процесс с минимальной ценой.

  3. Затем снова анализируется граф состояний. Если система выходит из тупика – алгоритм заканчивается, и выдаётся команда на прекращение процесса.

  4. Если система не выходит из тупика, то восстанавливается предыдущее состояние и выбирается другая группа процессов.

Алгоритм банкира: в алгоритме Банкира (на основе априорной информации о процессах и ресурсах) перед выполнением каждой элементарной операции (операция запроса на ресурс SR типа, CR типа или освобождения ресурса CR типа) проверяется новое состояние системы.

В случае удовлетворения этого запроса - если состояние безопасное, то запрос удовлетворяется, в противном случае - нет.

Все состояния системы делятся на три категории:

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

Опасными (ОС) считаются состояния, из которых возможен переход в тупиковое состояние.

Из тупикового (ТС) состояния невозможен переход ни в какое другое состояние.

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

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

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

Алгоритм банкира состоит из двух частей:

  1. Первая часть определят тип будущего состояния (удовлетворение запроса на ресурс).

  2. Вторая часть принимает решения и корректирует (модель определение типа состояния).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]