Разница между тупиком и голоданием в ОС

Автор: Laura McKinney
Дата создания: 3 Апрель 2021
Дата обновления: 23 Апрель 2024
Anonim
Всё о HACKINTOSH от Х до Ш – [RevEngi]
Видео: Всё о HACKINTOSH от Х до Ш – [RevEngi]

Содержание


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

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Заключение

Сравнительная таблица

Основа для сравнениятупикголодание
основнойВ тупике нет процесса, и он блокируется.При голодании блокируются процессы с низким приоритетом, а процесс с высоким приоритетом продолжается.
Возникающее состояниеВозникновение взаимного исключения, удержание и ожидание, отсутствие вытеснения и циркулярное ожидание одновременно.Исполнение приоритетов, неконтролируемое управление ресурсами.
Другое имяКруговое ожидание.Lifelock.
РесурсыВ заблокированном состоянии запрашиваемые ресурсы блокируются другими процессами.В условиях истощения запрашиваемые ресурсы постоянно используются процессами с высоким приоритетом.
профилактикаПредотвращение взаимного исключения, удержания и ожидания, а также кругового ожидания и разрешения упреждения. Старение.


Определение тупика

Deadlock - это ситуация, когда несколько процессов в CPU конкурируют за конечное число ресурсов, доступных в CPU. Здесь каждый процесс содержит ресурс и ожидает получения ресурса, который удерживается каким-либо другим процессом. Все процессы ждут ресурсов по кругу. На изображении ниже вы видите, что Процесс P1 получил ресурс R2, который запрашивается процессом P2, а Процесс P1 запрашивает ресурс R1, который снова удерживается R2. Так что процессы P1 и P2 образуют тупик.

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


  • Взаимное исключение: Только один процесс одновременно может использовать ресурс, если другой процесс запрашивает тот же ресурс, он должен ждать, пока процесс, использующий ресурс, освободит его.
  • Держи и жди: Процесс должен удерживать ресурс и ожидать получения другого ресурса, который удерживается каким-либо другим процессом.
  • Нет выкупа: Процесс, содержащий ресурсы, не может быть прерван. Процесс, удерживающий ресурс, должен добровольно освободить ресурс, когда он выполнил свою задачу.
  • Круговое ожидание: Процесс должен ждать ресурсов по кругу. Предположим, у нас есть три процесса {P0, P1, P2}. P0 должен дождаться ресурса, удерживаемого P1; P1 должен ждать, чтобы получить ресурс, удерживаемый процессом P2, и P2 должен ждать, чтобы получить процесс, удерживаемый P0.

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

Определение Голодания

Истощение можно определить, когда запрос процесса на ресурс и этот ресурс непрерывно используется другими процессами, тогда запрашивающий процесс сталкивается с голоданием. В голодном состоянии процесс, готовый к выполнению, ожидает, пока ЦП выделит ресурс. Но процесс должен ждать бесконечно, поскольку другие процессы постоянно блокируют запрашиваемые ресурсы.

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

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

  1. В тупике ни один из процессов не продолжает выполнение, каждый процесс блокируется в ожидании ресурсов, полученных другим процессом. С другой стороны, голодание - это состояние, при котором процессам, которые обладают более высоким приоритетом, разрешено непрерывно получать ресурсы, предотвращая процессы с низким приоритетом, чтобы получать ресурсы, что приводит к неограниченной блокировке процессов с низким приоритетом.
  2. Тупик возникает, когда четыре условия Взаимное исключение, Удержание и ожидание, Нет прерывания и Круговое ожидание происходит одновременно. Тем не менее, голодание происходит, когда процесс приоритеты были соблюдены при распределении ресурсов или в системе существует неконтролируемое управление ресурсами.
  3. Тупик часто называют по имени круговое ожидание в то время как голодание называется Жил замок.
  4. В тупике ресурсы блокируются процессом, в то время как при голодании процессы постоянно используются процессами с высокими приоритетами.
  5. Взаимная блокировка может быть предотвращена путем исключения условий, таких как взаимное исключение, удержание и ожидание и циклическое ожидание, а также путем прерывания процессов, которые удерживают ресурсы в течение длительного времени. С другой стороны, голод может быть предотвращен старение.

Заключение:

И Deadlock, и Starvation задерживают выполнение процесса, блокируя его. С одной стороны, когда тупик может привести к голоданию процессов, а с другой стороны, голод может вывести процессы из тупика.