- •Алгоритм выхода из тупиковой ситуации с минимальной ценой
- •Алгоритмы защиты от взаимных блокировок. Классификация алгоритмов защиты.
- •Асинхронные параллельные процессы. Проблема «производитель-потребитель».
- •Асинхронные параллельные процессы. Проблемы синхронизации параллельных процессов.
- •Высокопроизводительный Фортран hpf. Общая характеристика.
- •Задача предотвращения тупиков. Алгоритм банкира.
- •Задача предотвращения тупиков. Алгоритм упорядоченных классов.
- •1. Некоторые процессы бесконечно ожидают освобождения требуемых ресурсов, не производя никакой полезной работы
- •2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
- •Конструктор массивов в языке Фортран 90.
- •Непроцедурный язык Норма. Понятие сетки. Понятие области.
- •Оператор полагать в языке норма.
- •Операторы языка Фортран 90
- •Операции над массивами в языке Фортран 90.
- •Организация ввода и вывода в языке норма.
- •Понятия критического ресурса и критической секции.
- •Проблема «Производитель-потребитель». Общие семафоры.
- •Проблема взаимных блокировок (тупиков).
- •Программирование пространственно-временных структур на языке оккам.
- •Секции массивов в языке фортран 90.
- •19. Система программирования pvm (Parallel Virtual Machine).
- •20. Система параллельного программирования dvm(Distributed Virtual Machine).
- •21. Система параллельного программирования mpi.
- •22. Структура программы на языке норма. Оператор итерация.
- •23. Условные области в языке норма.
- •24. Язык фортран 90. Общая характеристика.
- •25,26. Язык оккам. Общая характеристика. Операторы языка оккам.
-
Задача предотвращения тупиков. Алгоритм банкира.
Причем, процесс Р1 не освобождает R2, пока не получит R1; аналогично с Р2. Попав в такую ситуацию, процесс уже не может выйти из неё. Это состояние так же называют: 1.Взаимная блокировка, 2.Тупик (этот термин используется чаще всего), 3.Тупиковое состояние, 4.Клинч, 5.Дедлок (dead lock), 6.Смертельные объятия.
Тупиком называется такое состояние системы, при котором некоторое множество
процессов находятся в бесконечно долгом ожидании требуемых ресурсов, в то же время удерживая некоторое множество ресурсов системы. Из тупика система без вмешательства извне никогда не может выйти. Тупиковое состояние: 1. Процессы бесконечно ожидают освобождения ресурсов, не производя никакой полезной работы; 2. Процессы удерживают некоторые ресурсы не выполняя никакой полезной работы, и система без внешнего воздействия не может выйти из этого состояния.
Меры борьбы с тупиками
- Статические (анализ текста программы).
- Динамические
-
Обнаружение с последовательным выходом из тупика
-
Прекращение: 1)Ручной выход; 2)Автоматический
-
Перехват ресурсов
-
-
Методы предотвращения
-
Метод упорядоченных классов
-
Алгоритм банкира
-
В алгоритме Банкира (самый распространенный алгоритм, когда недопустим тупик) (на основе априорной информации о процессах и ресурсах) перед выполнением каждой элементарной операции (операция запроса на ресурс SR типа, CR типа или освобождения ресурса CR типа) проверяется новое состояние системы. В случае удовлетворения этого запроса - состояние безопасное запрос удовлетворяется, в противном случае - нет. Все состояния системы делятся на три категории:
Безопасными (БС) будут считаться состояния, из которых возможен переход при выполнении элементарной операции только в другое безопасное состояние или в опасное состояние.
Опасными (ОС) считаются состояния, из которых возможен переход в тупиковое состояние.
Из тупикового (ТС) состояния невозможен переход ни в какое другое состояние.
В алгоритме реализована стратегия принятия решения о предоставлении ресурса по запросу только если система после удовлетворения запроса продолжает оставаться в опасном состоянии. Основой для принятия решений является анализ инф-ии о максимальной потребности процессов в каждом из ресурсов системы. Недостатки: высокий % необоснованных отказов в запросах на ресурсы, и высокие собственные затраты вычислительных ресурсов на реализацию алгоритма.
Алгоритм банкира исключает попадания системы в опасные состояния. Перед началом работы каждый процесс в системе должен сообщить свои максимальные потребности в ресурсах каждого класса. Алгоритм банкира моделирует будущие состояния системы, если удовлетворяется запрос процесса на ресурс или другая элементарная операция. Алгоритм банкира состоит из двух частей: Первая определят тип будущего состояния (удовлетворение запроса на ресурс); Вторая принимает решения и корректирует (модель определение типа состояния).
Одно из возможных решений представлено в виде программы на псевдокоде (i – процесс, j – ресурс, АНОНС[i,j] – max количество ресурсов, СВОБ[i,j] – количество свободных ресурсов, ОСТ - множество оставшихся незавершённых процессов).
if ВЫДЕЛ [i,j] + ЗАПРОС > АНОНС [i,j] then
< ошибка ; полный запрос анонса >
else
if ЗАПРОС [i,j] > СВОБ [j] then
< поставить pi в ожидание >
else
< определить новое состояние:
ВЫДЕЛ [i,j] := ВЫДЕЛ [i,j] + ЗАПРОС [i,j]
СВОБ [j] := СВОБ [j] – ЗАПРОС [i,j]>
end_if;
if НОВОЕ СОСТОЯНИЕ БЕЗОПАСНО then
< выделить ресурс j процессу i >
else
< восстановить исходное состояние >;
< поставить pi в ожидание >
end_if;
end_if;
РАСПТЕКУЩ: table [0…m-1] of ЦЕЛЫЙ;
ОСТ: SET of ПРОЦЕССЫ;
РАСПТЕКУЩ:= СВОБОДНЫЙ;
ОСТ:= { ВСЕ ПРОЦЕССЫ };
ВОЗМОЖН:= ИСТИНА;
while ВОЗМОЖН do
< ИСКАТЬ P в ОСТ такой, что АНОНС [i,*] – ВЫДЕЛ [i,*] ≤ РАСПТЕКУЩ >;
if ПРОЦЕСС найден then < имитировать выполнение P >;
РАСПТЕКУЩ:= РАСПТЕКУЩ + ВЫДЕЛ [i,*];
ОСТ:= ОСТ – {P}
else
ВОЗМОЖН:= ЛОЖЬ;
end_if
end_while;
СОСТОЯНИЕ БЕЗОПАСНО:= { ОСТ:= < пусто >}
Недостатки: 1) для всех процессов должны быть известны заранее max потребности в ресурсах; 2) алгоритм работает при ПОСТОЯННОМ составе процессов и ресурсов; 3)алгоритм очень ресурсоемкий (потребление ресурсов систем на собственные нужды); 4)распределитель ресурсов должен гарантированно удовлетворять запросы процессов за конечный период времени; 5)процессы должны гарантировать возврат ресурсов в систему; 6)* (главный недостаток) часто достаточно высок процент процессов, необоснованно получающих отказ (из-за неэффективности использования ресурсов).