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

Оглавление:

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

Видео: Разница между тупиком и голодом

Видео: Разница между тупиком и голодом
Видео: Есть ли разница между голодом и аппетитом? 2024, Ноябрь
Anonim

Тупик против голода

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

Что такое тупик?

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

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

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

Что такое голод?

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

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

Может быть много случаев голодания, например, нехватки ресурсов и нехватки ресурсов ЦП. Есть много распространенных примеров голодания. Это проблема читателей-писателей и проблема обедающих философов, которая более известна. За круглым столом с мисками спагетти сидят пять безмолвных философов. Вилки помещены между каждой парой соседних философов. Каждый философ должен попеременно думать и есть. Однако философ может есть спагетти только тогда, когда у него есть и левая, и правая вилки.

Тупик против голода
Тупик против голода

«Обеденные философы»

В чем разница между тупиком и голоданием?

• Процесс:

• В тупике два потока или процесса будут ждать друг друга, и оба не продвигаются вперед.

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

• Откат:

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

• Но при голодании низкоприоритетные будут ждать или откатиться, а высокоприоритетные продолжат работу.

• Ожидание или блокировка:

• Тупиковая ситуация - это циклическое ожидание.

• Голод - это своего рода затор и иногда помогает выйти из тупика.

• Тупик и голод:

• Тупик вызывает голод, но голод не вызывает тупика.

• Причины:

• Тупиковая ситуация возникает из-за взаимного исключения, удержания и ожидания, без прерывания обслуживания или циклического ожидания.

• Истощение происходит из-за нехватки ресурсов, неконтролируемого управления ресурсами и приоритетов процессов.

Резюме:

Тупик против голода

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

Изображения любезно предоставлены:

  1. Компьютер Стива Юрветсона из Менло-Парк, США (CC BY 2.0)
  2. «Обеденные философы» Бдешама (CC BY-SA 3.0)

Рекомендуем: