Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Обнаружение тупика — это установление факта, что возникла тупиковая ситуация, и определение процессов и ресурсов, вовлечённых в эту тупиковую ситуацию. Алгоритмы обнаружения тупиков, как правило, применяются в системах, где выполняются первые три необходимых условия возникновения тупиковой ситуации. Эти алгоритмы затем определяют, не создался ли режим кругового ожидания.
Применение алгоритмов обнаружения тупиков сопряжено с определёнными дополнительными затратами машинного времени. Таким образом, здесь мы снова сталкиваемся с необходимостью прибегать к компромиссным решениям, столь распространённым в операционных системах. Необходимо решить, будут ли накладные расходы, связанные с реализацией алгоритмов обнаружения тупиковых ситуаций, в достаточной степени оправданы потенциальными выгодами от локализации и устранения тупиков.
При рассмотрении задачи обнаружения тупиков применяется весьма распространённая нотация, согласно которой распределение ресурсов и запросы изображаются в виде направленного графа. Квадраты обозначают процессы, а большие кружки — классы идентичных ресурсов. Малые кружки, находящиеся внутри больших, обозначают количество идентичных ресурсов каждого класса.
Стрелка от квадрата к большому кружку показывает запрос процессом соответствующего ресурса. Стрелка от маленького кружка к квадрату показывает, что единица ресурса выделена процессу (процесс удерживает за собой эту единицу ресурса).
Графы запросов и распределения ресурсов динамично меняются по мере того, как процессы запрашивают ресурсы, получают их в своё распоряжение, а через какое-то время возвращают операционной системе.
Задача механизма обнаружения тупиков — определить, не возникла ли в системе тупиковая ситуация. Одним из способов обнаружения тупиков является приведение, или редукция графа, — это позволяет определять процессы, которые могут завершиться, и процессы, которые будут оставаться в тупиковой ситуации.
Если запросы ресурсов для некоторого процесса могут быть удовлетворены, то мы говорим, что граф молено редуцировать на этот процесс. Такая редукция эквивалентна изображению графа в том виде, который он будет иметь в случае, если данный процесс завершит свою работу и возвратит ресурсы системе. Редукция графа на конкретный процесс изображается исключением стрелок, идущих к этому процессу от ресурсов (т. е. ресурсов, выделенных данному процессу) и стрелок к ресурсам от этого процесса (т. е. текущих запросов данного процесса на выделение ресурсов). Если граф можно редуцировать на все процессы, значит, тупиковой ситуации нет, а если этого сделать нельзя, то все нередуцируемые процессы образуют набор процессов, вовлечённых в тупиковую ситуацию.
Дата публикования: 2015-02-03; Прочитано: 992 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!