Что такое тупик в операционной системе: условия и алгоритм обнаружения

Попробуйте наш инструмент устранения неполадок





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

Что такое тупик в операционной системе?

Определение: Dead-Lock - это ситуация, когда два или более процессора ожидают какого-либо события, но такие события, которые не происходят, являются условием взаимоблокировки, и процессоры, как говорят, находятся в состоянии взаимоблокировки. Например, давайте предположим сценарий в реальном времени, где есть две машины A и B, которые управляют двумя отдельными водителями на дороге с односторонним движением. Теперь возникает ситуация, когда водитель автомобиля A говорит, что движение в северном направлении является правильным, а водитель автомобиля B говорит, что движение в южном направлении является правильным. Но ни один из них не движется назад, чтобы позволить другому автомобилю двигаться вперед, это состояние называется состоянием тупика.




Автомобиль-Пример

автомобиль-пример

Для лучшего понимания давайте рассмотрим другой пример, где есть два ресурса R1, R2 и два процесса P1 и P2, где R1 назначен P1, а R2 назначен P2. Теперь, если P1 хочет получить доступ к R2, поскольку мы уже знаем, что R2 удерживается P2, и теперь P2 хочет получить доступ к R1, то есть P1 выполняется только тогда, когда он получает доступ к R2, также P2 выполняется только тогда, когда он получает доступ к R1 в этой ситуации состояние тупика.



Процессор-Пример

пример процессора

Условия мертвой блокировки

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

Взаимное исключение

Это означает, что какой бы ресурс мы ни использовали, он должен использоваться взаимоисключающим образом. Когда только один процесс использует только один ресурс одновременно. Например, процесс печати продолжается, и внезапно другой процесс пытается прервать процесс печати. Таким образом, здесь в ситуации взаимного исключения, только после того, как задание печати выполнено, обрабатывается только следующее задание. Взаимное исключение можно устранить путем одновременного совместного использования ресурсов, что практически невозможно.

Взаимное исключение

взаимное исключение

Нет преимущественной покупки

В соответствии с упреждающий алгоритмы на основе, если есть приоритетная задача, пытающаяся прервать текущую задачу. Упреждающий алгоритм удерживает текущую задачу и сначала выполняет приоритетную задачу, а затем возвращается к своей первой задаче. Ситуация, описанная в приведенном выше примере, когда процесс удерживает ресурс до тех пор, пока он выполняется, то есть P1 может освободить R1 только после выполнения, аналогично P2 освобождает R2 только после выполнения. Если нет упреждения, может возникнуть тупик.


Пример отсутствия преимущественного права

пример без вытеснения

Держись и жди

Процесс удерживает некоторые ресурсы и ожидает дополнительных ресурсов, но эти ресурсы приобретены другим процессом. Из приведенного выше примера P1 удерживает R1 и ожидает R2, где R2 получает P2, а P2 удерживает R2 и ожидает R1, где R1 захватывается P1, это удержание, и в системе может возникнуть тупиковая ситуация ожидания.

Пример ожидания и ожидания

пример ожидания и ожидания

Круговое ожидание

Говорят, что набор процессов находится в тупике, если один процесс ожидает ресурса, который выделен другому процессу, и этот процесс ожидает ресурс, это похоже на объясненный выше пример, где он находится в форме цикла. Где P1 ожидает R2, а R2 выделен для P2, а P2 ожидает R1, а R1 выделен для P1, что является циклической формой ожидания, если это условие удовлетворяет возникновению тупика.

Пример кругового ожидания

круговой пример ожидания

Алгоритм обнаружения мертвой блокировки

Случаи, когда мы распределяем ресурсы по процессам, и операционная система перепроверяет, возникла ли взаимоблокировка в системе или нет, используя 2 основных алгоритма обнаружения взаимоблокировок, это

  • Единичный экземпляр
  • Несколько экземпляров типа ресурса

Единственный экземпляр

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

  • Граф распределения ресурсов: Процессы P1, P2, P3 и ресурсы R1, R2, R3 представлены в графе распределения ресурсов.
  • Ожидание графика: в ожидании графика упоминаются только процессы P1, P2, P3.
  • Если есть условие цикла, то при наличии непрерывного потока процесса в одном направлении это означает выход из условия цикла и ожидание, пока график находится в состоянии тупика.

Пример 1: В приведенном ниже примере показано, что состояние тупика отсутствует, потому что не наблюдается непрерывного потока в ожидании графика.

Единственный экземпляр-Example1

single-instance-example1

Пример 2: Состояние взаимоблокировки возникло из-за непрерывного потока цикла от P1 до P4.

Единственный экземпляр - Пример2

single-instance-example2

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

Несколько экземпляров типа ресурса

Несколько экземпляров типа ресурса - это ситуация, когда в системе есть несколько экземпляров всех ресурсов, это также известно как алгоритм Банкира. Согласно алгоритму Bankers, как только процесс получает все необходимые ресурсы, он освобождает свои ресурсы.

Давайте рассмотрим следующий пример, предположим, что есть 3 процесса P0, P1, P2 и тип ресурса A, B, C, где A может быть ЦПУ , B может быть принтером, а C может быть клавиатурой. Цифры «0» в столбце обозначают доступность ресурсов.

Случай (i): Предположим, если мы возьмем условие запроса «000», которое присутствует в P0 и P2, мы должны проверить, какой запрос выполнен, процессы P0 освобождают процессы после выделения, а затем следующие процессы P2 освобождаются после выделения. Таким образом, в последовательности, один за другим процесс освобождает P0, P2, P3, P1, P4 в последовательности. Наконец, мы получаем доступные ресурсы как P7, P2, P6. Доступная последовательность - это условие, при котором нет взаимоблокировки.

Банкиры-Алгоритм-Пример1

банкиры-алгоритм-пример1

Дома (ii): Предположим, что если P2 равен 001, а не 000, теперь применим алгоритм банкира для проверки состояния тупика, когда из всех 5 процессов выполняется только P0. Следовательно, P1, P2, P3, P4 находятся в состоянии тупика, за исключением P0.

Банкиры-Example2

банкиры-example2

Приложения тупика

Применение тупиковой ситуации можно объяснить на примере онлайн-результатов экзаменов в реальном времени, когда несколько студентов пытаются получить доступ к веб-сайтам своего университета во время выпуска. Можно заметить, что иногда веб-страница не загружается одновременно для нескольких пользователей, это состояние тупика. Это можно преодолеть с помощью любого из алгоритмов.

Преимущества

Преимущества тупика:

  • При избежании тупиковых ситуаций упреждения не наблюдается
  • Никаких задержек в процессе

Недостатки

Недостатком тупика является

  • Ресурс, который будет использоваться, должен быть известен заранее
  • Блокировка процесса на долгое время
  • Преимущественные убытки передаются по наследству.

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