Différence entre l'impasse et la famine dans le système d'exploitation OS

Différence entre l'impasse et la famine dans le système d'exploitation OS

Le système d'exploitation est le logiciel le plus fondamental qui s'exécute sur un ordinateur. Il est responsable de la gestion de la mémoire et des processus de l'ordinateur, ainsi que de protéger les détails du matériel des programmes d'application à l'aide. Le système d'exploitation d'un ordinateur garantit également une allocation équitable des ressources aux utilisateurs et aux programmes par opposition à une distribution égale entre les processus. Un système de planification équitable permet à un processus d'utiliser le CPU pendant que l'autre attend dans la file d'attente. En conséquence, chaque thread a suffisamment accès aux ressources limitées empêchant les deux conditions les plus courantes qui auraient retardé le processus autrement: l'impasse et la famine. Les deux sont des concepts liés où les processus n'ont pas accès aux ressources. Cet article met en évidence certains points clés comparant les deux sur divers fronts.

Qu'est-ce que l'impasse?

L'impasse est une condition où un ensemble de threads est bloqué car chaque processus détenant une ressource essaie d'accéder à d'autres ressources qui sont détenues par un autre processus empêchant finalement une planification du système équitable. Une situation de blocage survient lorsque les quatre conditions suivantes sont vraies: l'exclusion mutuelle signifie qu'un seul processus peut accéder à une ressource à la fois; Aucune condition de préemption signifie qu'une ressource ne peut être publiée que volontairement par le processus détenant la ressource; Hold & Wait signifie qu'un processus détenant des ressources peut demander des ressources supplémentaires détenues par d'autres processus et; L'attente circulaire signifie que deux processus ou plus sont coincés dans une chaîne circulaire en attendant que chaque processus libère ses ressources respectives.

Qu'est-ce que la famine?

La famine est une condition qui survient lorsqu'un processus entre dans la période d'attente indéfiniment car un processus de faible priorité n'a jamais la possibilité d'accéder à la ressource en raison d'un flux constant de processus de grande priorité qui accédaient à la même ressource. Il s'agit d'un problème de gestion des ressources car un processus est refusé l'accès à la ressource dont il faut, poussant ainsi le processus dans une période d'attente indéfinie. Cela se produit parce que la ressource dont il a besoin n'est jamais allouée au processus provoquant la faim du processus pour les ressources, d'où le nom. La meilleure façon d'éviter la famine est d'utiliser la technique du vieillissement qui augmente progressivement la priorité des processus qui sont dans la période d'attente pendant longtemps afin d'assurer un système de planification équitable.

Différence entre l'impasse et la famine dans le système d'exploitation

  1. Définition de l'impasse et de la famine

L'impasse et la famine sont des concepts liés qui empêchent une planification du système équitable lorsque les processus sont bloqués d'accès aux ressources. L'impasse, comme son nom l'indique, fait référence à une condition où un ensemble de threads ou de processus est bloqué car chaque processus attend d'acquérir une ressource qui est détenue par un autre processus, ce qui entraîne une situation dans une impasse où les programmes cessent de fonctionner. La famine, en revanche, est déclenchée par une impasse qui provoque le gel d'un processus car un processus de priorité faible est refusé l'accès à une ressource allouée à un processus de grande priorité.

  1. Condition

Une impasse fait référence à une condition spécifique qui se produit lorsqu'un thread ou un processus entre dans une période d'attente car la ressource système qu'il a demandée est détenue par un autre processus, qui à son tour attend un autre processus pour publier sa ressource, créant ainsi une impasse. Ceci est causé par une mauvaise utilisation des ressources. La famine est une condition de report indéfinie où un processus de faible priorité est refusé l'accès aux ressources dont elle a besoin, car les ressources sont allouées à un autre processus de grande priorité. Il s'agit d'un problème de gestion des ressources qui oblige le système à allouer des ressources à uniquement des processus de grande priorité.

  1. Caractérisation de l'impasse et de la famine

L'impasse est la forme ultime de famine causée lorsque les quatre conditions suivantes se produisent simultanément: exclusion mutuelle, pas de préemption, de maintien et d'attente et d'attente circulaire. Une condition de blocage ne se produit que dans les systèmes dans lesquels les quatre conditions sont vraies. La famine se produit sur la base de différentes conditions, comme lorsqu'il n'y a pas suffisamment de ressources pour faire le tour et la priorité des processus commence à s'abaisser ou lorsque les processus commencent à remettre des ressources à d'autres processus sans contrôle. Si un processus à faible priorité demande une ressource réservée aux processus les plus prioritaires, le processus affiche à jamais. La famine se produit également lorsque les ressources sont allouées arbitrairement, ce qui fait que des processus attendent une période plus longue.

  1. La prévention

Starvation can be prevented by using a proper scheduling algorithm with priority queue that in fact also uses the aging technique - a scheduling technique which adds the aging factor to the priority of each request meaning it increases the priority level of low priority processes that have been waiting pendant longtemps. Fournir également plus de ressources aux programmes devrait éviter une congestion continue des ressources. Pour empêcher le système d'entrer dans une impasse, les processus doivent se voir refuser l'accès à une ou plusieurs ressources tout en attendant simultanément d'autres et un seul processus devrait être autorisé à accéder à une ressource à la fois.

Blocage vs. St famine: graphique de comparaison

Résumé de l'impasse vs. famine

L'impasse et la famine sont des concepts liés à des systèmes d'exploitation multiprocesseurs ou à des systèmes distribués qui provoquent un ou plusieurs threads ou processus bloqués en attendant les ressources dont ils ont besoin. L'impasse est une situation qui survient lorsqu'un ou plusieurs processus demandent l'accès à la même ressource provoquant le gel du processus, tandis que la famine est causée par une impasse qui pousse le processus à un état de report indéfini parce que les processus sont refusés l'accès à une ressource détenue par un état indéfini processus de haute priorité et besoin d'attendre éternellement.