- •Вопрос 33. Необходимые условия возникновения тупика
- •Вопрос 34. Подходы к задаче о предотвращении тупика
- •Вопрос 35. Определение графа повторно используемых ресурсов
- •Вопрос 36. Для решения каких задач используется граф пир?
- •Вопрос 37. Алгоритм редукции графа пир
- •Вопрос 38. Основная теорема о тупике
- •Вопрос 39. Задача распознавания тупика для систем с единичными ресурсами
- •Вопрос 40. Задача распознавания тупика для систем в выгодном состоянии
- •Вопрос 41. Задача обхода тупика
- •Вопрос 42. Вывод системы из тупика
- •Вопрос 43. Граф потребляемых ресурсов
- •Вопрос 44. Редукция графа пр
- •Вопрос 45. Граф обобщенных ресурсов
- •Вопрос 46. Файлы. Организация файлов
- •Вопрос 47. В-деревья
- •Вопрос 48. Операции в в-деревьях
Вопрос 36. Для решения каких задач используется граф пир?
Граф ПИР используется при решении задач распознавания типика и вывода системы из тупика(????)
Вопрос 37. Алгоритм редукции графа пир
Алгоритм редукции графа ПИР состоит в следующем:
Определения процесса, который может выполнить редукцию (он должен быть не заблокирован, его вершина не является изолированной)
Удаление всех дуг запросов у этого процесса (фактически моделирование двух операции выделения и освобождения ресурса), поэтому пометка у ресурсов не меняется
Удаление дуг выделения у этого процесса, при этом пометка tj (количество доступных единиц ресурса на данный момент) у вершин ресурсов изменится на величину дуги выделения (k).
Возврат к шагу 1 (если еще есть незаблокированные процессы).
Редукция выполняется до тех пор, пока не получится несокращаемый граф (тупик(когда остались еще дуги и имеется цикл) или вполне несвязный граф (когда все вершины стали изолированными)).
Вопрос 38. Основная теорема о тупике
Основная теорема о тупике звучит следующим образом:
Состояние системы является тупиковым тогда и только тогда, когда граф в этом состоянии не является полностью сокращаемым.
Ее доказательство основано на вспомогательной лемме, которая звучит так:
Порядок сокращений графа ПИР не существенен; все последовательности сокращений приводят к одному и тому же несокращаемому графу.
Вопрос 39. Задача распознавания тупика для систем с единичными ресурсами
Для систем с единичными ресурсами задача распознавания тупика строится на следующем:
Необходимым и достаточным условием тупика в такой системе является наличие цикла в графе ПИР.
Построить граф ПИР
Выполнить его редукцию
Выполнить алгоритм поиска цикла. В том случае, если цикл найден, то состояние системы – тупиковое, иначе – тупика нет.
Алгоритм поиска цикла в графе строится на следующем:
Для того чтобы распознать цикл в графе, сначала необходимо сформировать множество вершин-стоков (с полустепенью исхода равной 0). Затем в него последовательно добавлять вершины, из которых модно попасть в сток. Если множество этих вершин (стоков и тех, из которых в стоки можно попасть) и множество всех вершин графа не равны, тогда в графе есть цикл.
Sink := { v N | od(v) = 0 } //Множество вершин-стоков
for all v Sink do
begin
for all u : (u, v) E do
begin
w(u) := w(u) – 1 ; //Понижаем полустепень захода
if w(u) = 0 then Sink := Sink { u } ;
end
end
if Sink N then write (‘В графе есть цикл !’)
Вопрос 40. Задача распознавания тупика для систем в выгодном состоянии
Распознавание тупика для систем в выгодном состоянии строится на следующем следствии из основной теоремы о тупике:
Достаточным условием тупика в системе в выгодном состоянии является наличие узла в графе ПИР.
Построить граф ПИР
Выполнить его редукцию
Выполнить алгоритм поиска узла. В том случае, если узел найден, то состояние системы – тупиковое, иначе – тупика нет.
Приведенный ниже алгоритм дает возможность обнаружить узел в графе. Он основан на том, что узел по определению не может содержать вершину сток (сток – это вершина v, из которой не выходит ни одной дуги, то есть полустепень исхода такой вершины равна 0: od(v) = 0), а также вершины, из которых можно попасть в вершину-сток.
Sink := { v N | od(v) = 0 }
for all v Sink do
for all u : (u, v) E do
if u Sink then Sink := Sink { u } ;
if N Sink then write (‘В графе есть узел !’)