Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Предотвращение тупиков предполагает исключение самой воз­можности возникновения тупиков в системе. Предотвращение ту­пиков возможно только за счёт нарушения условий возникновения тупиков.

Нарушение условия взаимоисключения

В общем случае избежать взаимоисключений невозможно. До­ступ к некоторым ресурсам должен быть исключительным. Тем не менее некоторые устройства удаётся сделать разделяемыми. В каче­стве примера рассмотрим принтер. Известно, что пытаться осуще­ствлять вывод на принтер могут несколько процессов. Для предо­ставления им такой возможности в современных системах использу­ют механизм спулинга — данные для принтера от каждого процесса помещаются в буферные файлы, а собственно вывод на принтер этих файлов выполняет специальный системный процесс.

К сожалению, не для всех устройств и не для всех данных мож­но организовать спулинг. Неприятным побочным следствием такой модели может быть потенциальная тупиковая ситуация из-за конку­ренции за дисковое пространство для буфера спулинга. Тем не менее в той или иной форме эта идея применяется часто.

Нарушение условия оэюидания дополнительных ресурсов

В этом случае система требует, чтобы каждый процесс запраши­вал все требуемые ему ресурсы сразу, перед началом выполнения.

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

Этот метод требует от программиста (пользователя) точного зна­ния о том, какие ресурсы потребуются процессу во время выполне­ния. А эта информация не всегда доступна до начала выполнения процесса.

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

Нарушение принципа отсутствия перераспределения

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

Во-первых, отбирать у процессов молено только те ресурсы, со­стояние которых легко сохранить, а позлее восстановить, например состояние процессора.

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

Наконец, следствием данной схемы может быть дискриминация отдельных процессов, у которых постоянно отбирают ресурсы.

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

Нарушение условия кругового оэюидания

Молено предложить упорядочить все ресурсы в системе и потре­бовать, чтобы каждый процесс запрашивал ресурсы в строго опре­делённом порядке.

На практике эта схема трудно реализуема и ведёт к неэффек­тивности использования ресурсов и существенному услоленению про­граммирования.

Реально такая схема может быть применена лишь к ограничен­ному классу ресурсов.





Дата публикования: 2015-02-03; Прочитано: 1390 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...