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

Тупик срещу глад
 

Основната разлика между безизходицата и глада е връзката между причините и следствията между тях; тупикът причинява глад. Друга интересна разлика между безизходицата и глада е, че задънената улица е проблем, докато гладът понякога може да помогне да се излезе от безизходица. В компютърния свят, когато пишете компютърна програма, ще има повече от един процес / нишка, които едновременно ще се изпълняват един след друг, за да се изпълни необходимата услуга на програмата. Следователно, за да има справедлива система, програмистът трябва да гарантира, че всички процеси / нишки ще получат или получат достатъчен достъп до необходимите ресурси. Ако не, ще има задънена улица и това ще доведе до глад по-късно. По принцип справедливата система не съдържа никакви безизходици или гладувания. Задъхи и гладувания ще възникнат главно, когато много нишки се състезават за ограничени ресурси.

Какво е тупик?

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

Понастоящем безизходицата е един от основните проблеми в многопроцесовите системи и паралелните изчисления. Като решение се нарича заключваща система синхронизация на процеса се реализира както за софтуер, така и за хардуер.

Какво е глад?

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

За да излезете от безизходица, един от процесите или нишките трябва да се откаже или да се върне обратно, за да може другата нишка или процес да използва ресурса. Ако това се случва непрекъснато и едни и същи процес или нишка трябва да се отказват или да се връщат назад всеки път, докато оставяме на други процеси или нишки да използват ресурса, тогава избраният процес или нишка, която се върти назад, ще претърпи ситуация, наречена гладуване. Следователно, за да излезете от безизходица, гладуването е едно от решенията. Затова понякога се нарича глад един вид жизнерадост. Когато има много процеси или нишки с висок приоритет, процес или нишка с по-нисък приоритет винаги ще гладуват в безизходица.

Може да има много гладувания като гладуващи от ресурси и гладувайки на процесора. Има много общи примери за гладуването. Те са проблем на читателите-писатели и проблем на философите на трапезата, който е по-известен. На кръгла маса седят петима мълчаливи философи с купи със спагети. Вилици се поставят между всяка двойка съседни философи. Всеки философ трябва последователно да мисли и да се храни. Философът обаче може да яде спагети само когато има и лява, и дясна вилица.

„Философите за хранене“

Каква е разликата между тупик и глад?

• Процес:

• В безизходица, двете нишки или процеси ще се изчакват една за друга и двете не продължават напред.

• При глад, когато две или повече нишки или процеси чакат един и същ ресурс, единият ще се върне назад и ще остави другите да използват ресурса първо, а след това гладуващата нишка или процесът ще се опита отново. Следователно всички нишки или процеси така или иначе ще продължат напред.

• Отстъпление:

• В безизходица както нишки / процеси с висок приоритет, така и нишки / процеси с нисък приоритет ще се чакат безкрайно. Никога не свършва.

• Но при глад, тези с нисък приоритет ще изчакат или отменят, но тези с висок приоритет ще продължат.

• Изчакване или заключване:

• Безизходица е кръгово чакане.

• Гладът е нещо като жизненоважна връзка и понякога помага да се излезе от безизходица.

• Безизходица и глад:

• Безизходицата причинява глад, но гладът не причинява задънена улица.

• Причини:

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

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

Резюме:

Тупик срещу глад

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

С любезност на изображенията:

  1. Компютър от Стив Юрветсън от Менло Парк, САЩ (CC BY 2.0)
  2. „Философите за вечеря“ от Bdesham (CC BY-SA 3.0)