Différence entre impasse et famine

Impasse vs la famine
 

La principale différence entre l’impasse et la famine réside dans la relation de cause à effet qui les oppose; c'est l'impasse qui cause la famine. Une autre différence intéressante entre l'impasse et la famine est que l'impasse est un problème tandis que la famine peut parfois aider à sortir d'une impasse. Dans le monde de l’informatique, lors de l’écriture d’un programme informatique, plusieurs processus / threads s’exécutant simultanément l’une après l’autre afin d’assurer le service requis par le programme. Par conséquent, afin d’avoir un système juste, le programmeur devrait s’assurer que tous les processus / threads recevront ou auront suffisamment d’accès aux ressources dont ils ont besoin. Sinon, il y aura une impasse et cela mènera à une famine plus tard. En règle générale, un système équitable ne contient aucune impasse ni aucune famine. Les blocages et les famines se produiront principalement lorsque plusieurs threads sont en compétition pour des ressources limitées.

Quelle est l'impasse?

Une impasse est une condition qui se produit lorsque deux threads ou processus attendent l'un l'autre pour terminer la tâche. Ils ne feront que raccrocher mais ne s’arrêteront jamais et ne finiront pas leur tâche. En informatique, les blocages sont visibles partout. Dans une base de données de transactions, lorsque deux processus de la transaction sont mis à jour, les deux mêmes lignes d’informations sont mises à jour, mais dans l’ordre inverse, elles créent un blocage. Dans la programmation simultanée, un blocage peut survenir lorsque deux actions en compétition attendent l’une pour l’avancer. Dans les systèmes de télécommunications, une impasse peut survenir en raison de la perte ou de la corruption des signaux.

L’impasse est actuellement l’un des principaux problèmes des systèmes de traitement multiple et de l’informatique parallèle. En guise de solution, un système de verrouillage appelé synchronisation de processus est mis en œuvre pour les logiciels ainsi que le matériel.

Qu'est-ce que la famine??

D'après le dictionnaire de la science médicale, la famine est le résultat d'un manque grave ou total d'éléments nutritifs nécessaires au maintien de la vie. De même, en informatique, la famine est un problème rencontré lorsque plusieurs threads ou processus attendent la même ressource, appelée interblocage.

Pour sortir d'un blocage, l'un des processus ou des threads doit abandonner ou revenir en arrière pour que l'autre thread ou le processus puisse utiliser la ressource. Si cela se produit continuellement et que le même processus ou le même thread doit abandonner ou revenir en arrière tout en laissant d'autres processus ou threads utiliser la ressource, le processus ou le thread sélectionné, qui a été annulé, va subir une situation appelée famine. Donc, pour sortir de l'impasse, la famine est l'une des solutions. Par conséquent, on appelle parfois la famine une sorte de livelock. Lorsqu'il y a beaucoup de processus ou de threads de haute priorité, un processus ou un thread de priorité inférieure mourra toujours de faim.

Il peut y avoir beaucoup de famines telles que affamé de ressources et affamé sur le processeur. Il existe de nombreux exemples courants sur la famine. Ce sont des problèmes de lecteurs-écrivains et de problèmes de philosophes de salle à manger, qui sont plus célèbres. Il y a cinq philosophes silencieux assis à une table ronde avec des bols de spaghettis. Des fourchettes sont placées entre chaque paire de philosophes adjacents. Chaque philosophe doit alternativement penser et manger. Cependant, un philosophe ne peut manger des spaghettis que lorsqu'il a les fourchettes gauche et droite..

Les «philosophes de la table»

Quelle est la difference entre Deadlock et Starvation?

• processus:

• En situation de blocage, les deux threads ou processus s’attendent l’un l’autre et les deux ne continuent pas..

• En cas de famine, lorsque deux ou plusieurs threads ou processus attendent la même ressource, l'un d'eux reviendra en arrière et laissera les autres utiliser la ressource en premier, puis le thread ou le processus affamé essaiera de nouveau. Par conséquent, tous les threads ou processus continueront à avancer.

• Reculer:

• Dans une impasse, les threads / processus de haute priorité, ainsi que les threads / processus de faible priorité, s'attendent mutuellement. Ça ne finit jamais.

• Mais, dans le cas de famine, les priorités moins élevées attendront ou seront rétablies, mais les priorités plus élevées continueront..

• En attente ou verrouillé:

• Une impasse est une attente circulaire.

• La famine est une sorte de livelock et aide parfois à sortir d'une impasse.

• impasse et la famine:

• Une impasse provoque la famine, mais la famine ne provoque pas une impasse.

• Causes:

• Une impasse se produira en raison d'une exclusion mutuelle, d'une attente et d'un attente, d'une absence de préemption ou d'une attente circulaire..

• La famine survient en raison de la rareté des ressources, de la gestion incontrôlée des ressources et des priorités du processus..

Résumé:

Impasse contre la famine

Les blocages et les famines font partie des problèmes qui surviennent en raison des courses de données et des conditions de course qui se produisent pendant la programmation et la mise en œuvre de matériel. Dans une impasse, deux threads s’attendent infiniment sans s’exécuter alors que, dans un cas de famine, un thread s’efface et laisse l’autre utiliser les ressources. Une impasse provoquera la famine alors que la famine aidera un fil à sortir d'une impasse.

Images de courtoisie:

  1. Ordinateur par Steve Jurvetson de Menlo Park, USA (CC BY 2.0)
  2. Les «philosophes de la table» par Bdesham (CC BY-SA 3.0)