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

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

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

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

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

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

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

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

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

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

«Обедающие философы»

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

• Процесс:

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

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

• Откат:

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

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

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

• тупик - круговое ожидание.

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

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

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

• Причины:

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

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

Резюме:

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

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

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

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