Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_po_os_21-41.doc
Скачиваний:
13
Добавлен:
19.09.2019
Размер:
991.23 Кб
Скачать
  1. Графы распределения ресурсов. Простая тупиковая ситуация

Графы распределения ресурсов

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

На рис. 6.3 показаны отношения, которые могут быть представлены на графе запросов и распределения ресурсов. На рис. б.З(а) показано/что процесс Р1 запрашивает ресурс типа R1. Стрелка от квадрата Р1 доходит только до большого кружка — это говорит о том, что в текущий момент запрос от процесса на выделение данного ресурса находится в стадии рассмотрения.

На рис. 6.3(6) показано, что процессу Р2 выделен ресурс типа R2 (один из двух идентичных ресурсов),— здесь стрелка прочерчена

от малого кружка, находящегося внутри большого кружка R2, до квадрата Р2.

На рис. 6.3(в) показана ситуация, в некоторой степени приближающаяся к потенциальному тупику: процесс РЗ запрашивает ресурс R3, выделенный процессу Р4.

Рис. 6.3 Граф запросов и распределения ресурсов: .а) процесс Р1 запрашивает ресурс типа R1;

б) ресурс типа R2 выделен процессу Р2;

в) процесс РЗ запрашивает ресурс R3, который выделен процессу Р4;

г) процессу Р5 выделен ресурс R5, необходимый процессу Р6, которому выделен ресурс R4, необходимый процессу Р5 («круговое ожидание»).

На рис. 6.3(г) показана небольшая система в тупиковой ситуации, когда процесс Р5 запрашивает ресурс R4, который выделен процессу Р6, который запрашивает ресурс R5, который выделен процессу Р5, который в свою очередь запрашивает ресурс R4 — это пример «кругового ожидания», типичного для системы в состоянии тупика.

Графы запросов и распределения ресурсов динамично меняются по мере того, как процессы запрашивают ресурсы, получают их в свое распоряжение, а через какое-то время возвращают операционной системе.

6.9.2 Приведение графов распределения ресурсов

Задача механизма обнаружения тупиков — определить, не возникла ли в системе тупиковая ситуация. Одним из способов обнаружения тупиков является приведение, или редукция графа,— это позволяет определять процессы, которые могут завершиться, и процессы, которые будут оставаться в тупиковой ситуации.

Если запросы ресурсов для некоторого процесса могут быть удовлетворены, то мы говорим, что граф можно редуцировать на этот процесс. Такая редукция эквивалентна изображению графа в том виде, который он будет иметь в случае, если данный процесс завершит свою работу и возвратит ресурсы системе. Редукция графа на конкретный процесс изображается исключением стрелок, идущих к этому процессу от ресурсов (т. е. ресурсов, выделенных дан-' ному процессу) и стрелок к ресурсам от этого процесса (т. е. текущих запросов данного процесса на выделение ресурсов). Если граф можно редуцировать на все процессы, значит, тупиковой ситуации нет, а если этого сделать нельзя, то все «нередуцируемые» процессы образуют набор процессов, вовлеченных в тупиковую ситуацию.

На рис. 6.4 показан ряд последовательных редукций графа, которые в конце концов позволяют убедиться в том, что для этого конкретного набора процессов тупиковой ситуации нет. На рис. 6.3(г) показана пара процессов, которые являются «нередуцируемыми» и, таким образом, представляют систему в тупиковой ситуации.

Здесь важно отметить, что порядок, в котором осуществляется редукция графа, не имеет значения: окончательный результат в любом случае будет тем же самым. Справедливость такого утверждения продемонстрировать относительно легко, и читатель может сам это сделать в качестве упражнения. Рис. 6.3 Граф запросов и распределения ресурсов: .а) процесс Р1 запрашивает ресурс типа R1;

б) ресурс типа R2 выделен процессу Р2;

в) процесс РЗ запрашивает ресурс R3, который выделен процессу Р4;

г) процессу Р5 выделен ресурс R5, необходимый процессу Р6, которому выделен ресурс R4, необходимый процессу Р5 («круговое ожидание»).

На рис. 6.3(г) показана небольшая система в тупиковой ситуации, когда процесс Р5 запрашивает ресурс R4, который выделен процессу Р6, который запрашивает ресурс R5, который выделен процессу Р5, который в свою очередь запрашивает ресурс R4 — это пример «кругового ожидания», типичного для системы в состоянии тупика.

Графы запросов и распределения ресурсов динамично меняются по мере того, как процессы запрашивают ресурсы, получают их в свое распоряжение, а через какое-то время возвращают операционной системе.

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