Différence Entre L'impasse Et La Famine

Table des matières:

Différence Entre L'impasse Et La Famine
Différence Entre L'impasse Et La Famine
Anonim

Impasse vs famine

La principale différence entre l'impasse et la famine est la relation de cause à effet entre eux; 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 alors que la famine peut, parfois, aider à sortir d'une impasse. Dans le monde informatique, lors de l'écriture d'un programme informatique, il y aura plus d'un processus / thread qui s'exécuteront simultanément l'un après l'autre afin de fournir le service requis pour le programme. Par conséquent, pour avoir un système équitable, le programmeur doit s'assurer que tous les processus / threads recevront ou obtiendront un accès suffisant aux ressources dont ils ont besoin. Sinon, il y aura une impasse, et cela mènera à une famine plus tard. En général, un système équitable ne contient aucune impasse ou famine. Les blocages et les famines se produiront principalement lorsque de nombreux threads sont en concurrence pour des ressources limitées.

Qu'est-ce que Deadlock?

Un blocage est une condition qui se produit lorsque deux threads ou processus attendent l'un l'autre pour terminer la tâche. Ils raccrocheront mais ne s'arrêteront jamais ni ne termineront leur tâche. En informatique, les blocages sont visibles partout. Dans une base de données de transactions, lorsque deux processus chacun au sein de sa propre transaction mettent à jour les deux mêmes lignes d'informations mais dans l'ordre opposé, cela entraînera un blocage. Dans la programmation simultanée, un blocage peut se produire lorsque deux actions concurrentes attendront l'une l'autre pour avancer. Dans les systèmes de télécommunications, une impasse peut se produire en raison de la perte ou de la corruption des signaux.

À l'heure actuelle, le blocage est l'un des principaux problèmes des systèmes multiprocesseurs et du calcul parallèle. En tant que solution, un système de verrouillage appelé synchronisation de processus est implémenté pour les logiciels ainsi que pour le matériel.

Différence entre l'impasse et la famine
Différence entre l'impasse et la famine

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 de nutriments nécessaires au maintien de la vie. De même, en informatique, la famine est un problème qui se produit lorsque plusieurs threads ou processus attendent la même ressource, ce que l'on appelle un blocage.

Afin de sortir d'un blocage, l'un des processus ou threads devrait devoir abandonner ou revenir en arrière afin que l'autre thread ou processus puisse utiliser la ressource. Si cela se produit continuellement et que le même processus ou thread doit abandonner ou revenir en arrière à chaque fois tout en laissant d'autres processus ou threads utiliser la ressource, alors le processus ou thread sélectionné, qui a été annulé, subira une situation appelée famine. Par conséquent, pour sortir d'une impasse, la famine est l'une des solutions. Par conséquent, parfois la famine est appelée une sorte de vivelock. Lorsqu'il existe de nombreux processus ou threads de priorité élevée, un processus ou un thread de priorité inférieure mourra toujours de faim dans un blocage.

Il peut y avoir de nombreuses famines telles que la faim de ressources et la faim de CPU. Il existe de nombreux exemples courants de famine. Ce sont le problème des lecteurs-écrivains et le problème des philosophes de la cuisine, qui est plus connu. Il y a cinq philosophes silencieux assis à une table ronde avec des bols de spaghetti. Des fourches 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 s'il a les fourchettes gauche et droite.

Impasse vs famine
Impasse vs famine

Les «Philosophes de la restauration»

Quelle est la différence entre Deadlock et Starvation?

• Processus:

• En cas de blocage, les deux threads ou processus vont attendre l'un l'autre et les deux ne progressent pas.

• En cas de famine, lorsque deux ou plusieurs threads ou processus attendent la même ressource, l'un reviendra et laissera les autres utiliser la ressource en premier et ensuite le thread ou le processus affamé réessaiera. Par conséquent, tous les threads ou processus continueront de toute façon.

• Reculer:

• En cas de blocage, les threads / processus de haute priorité, ainsi que les threads / processus de faible priorité, s'attendront indéfiniment. Ça ne finit jamais.

• Mais, en cas de famine, les moins prioritaires attendront ou reculeront, mais les plus prioritaires continueront.

• Attente ou verrouillage:

• Une impasse est une attente circulaire.

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

• Blocage et famine:

• Un blocage entraîne la famine, mais la famine ne provoque pas un blocage.

• Causes:

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

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

Résumé:

Impasse vs famine

Les blocages et les famines sont quelques-uns des problèmes qui se produisent en raison des courses de données et des conditions de concurrence qui se produisent pendant la programmation ainsi que la mise en œuvre du matériel. Dans un blocage, deux threads attendront indéfiniment l'un l'autre sans s'exécuter tandis que, dans une famine, un thread reviendra et laissera l'autre thread utiliser les ressources. Un blocage provoquera la famine tandis que la famine aidera un thread à sortir d'un blocage.

Images de courtoisie:

  1. Ordinateur par Steve Jurvetson de Menlo Park, États-Unis (CC BY 2.0)
  2. Les «Philosophes de la restauration» de Bdesham (CC BY-SA 3.0)

Recommandé: