Le système d'exploitation est le logiciel le plus fondamental fonctionnant sur un ordinateur. Il est responsable de la gestion de la mémoire et des processus de l'ordinateur, ainsi que de la protection des détails du matériel des programmes d'application qui l'utilisent. Le système d'exploitation d'un ordinateur assure également une allocation équitable des ressources aux utilisateurs et aux programmes, par opposition à une répartition égale entre les processus. Un système de planification équitable permet à un processus d'utiliser le processeur pendant que l'autre attend dans la file d'attente. En conséquence, chaque thread obtient suffisamment d’accès à des ressources limitées, ce qui évite les deux conditions les plus courantes qui auraient autrement retardé le processus: 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 quelques points clés comparant les deux sur différents fronts.
L'interblocage est une condition dans laquelle un ensemble de threads est bloqué car chaque processus contenant une ressource tente d'accéder à d'autres ressources détenues par un autre processus, ce qui empêche éventuellement une planification système équitable. Une situation de blocage se produit lorsque les quatre conditions suivantes sont vérifiées: Une 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 libérée volontairement que par le processus la détenant; Conserver et attendre signifie qu'un processus qui détient des ressources peut demander des ressources supplémentaires détenues par d'autres processus et; Attente circulaire signifie que deux processus ou plus sont bloqués dans une chaîne circulaire en attendant que chaque processus libère ses ressources respectives..
La famine est une condition qui survient lorsqu'un processus entre indéfiniment dans la période d'attente, car un processus de faible priorité ne peut jamais accéder à la ressource en raison d'un flux constant de processus de haute priorité accédant à la même ressource. C'est un problème de gestion des ressources car un processus se voit refuser l'accès à la ressource dont il a besoin, ce qui le place dans une période d'attente indéfinie. Cela se produit parce que la ressource dont elle a besoin n'est jamais allouée au processus, ce qui le prive de ressources, d'où son nom. Le meilleur moyen d'éviter la famine consiste à utiliser la technique de vieillissement qui augmente progressivement la priorité des processus en attente depuis longtemps afin de garantir un système de planification juste.
Le blocage et la famine sont des concepts liés qui empêchent une planification système équitable dans laquelle les processus sont empêchés d'accéder aux ressources. Comme son nom l'indique, l'interblocage fait référence à une condition dans laquelle un ensemble de threads ou de processus est bloqué car chaque processus attend l'acquisition d'une ressource détenue par un autre processus, ce qui entraîne une impasse dans laquelle les programmes cessent de fonctionner. La famine, en revanche, est déclenchée par un blocage qui provoque le gel d’un processus, car un processus de priorité basse se voit refuser l’accès à une ressource affectée à un processus de priorité élevée..
Un interblocage fait référence à une condition spécifique qui survient lorsqu'un thread ou un processus entre dans une période d'attente parce que la ressource système demandée est détenue par un autre processus, qui attend à son tour qu'un autre processus libère sa ressource, créant ainsi un blocage. Ceci est dû à une mauvaise utilisation des ressources. La famine est une condition de report indéfinie dans laquelle un processus peu prioritaire se voit refuser l'accès aux ressources dont il a besoin parce que les ressources sont allouées à un autre processus hautement prioritaire. C'est un problème de gestion des ressources qui oblige le système à allouer des ressources à des processus hautement prioritaires..
L'impasse est la forme ultime de famine qui est provoquée lorsque les quatre conditions suivantes se produisent simultanément: exclusion mutuelle, aucune préemption, mise en attente et attente circulaire. Une situation de blocage se produit uniquement dans les systèmes dans lesquels les quatre conditions sont vérifiées. La famine se produit en fonction de différentes conditions, par exemple lorsqu'il n'y a pas assez de ressources à gérer et que la priorité des processus commence à diminuer ou lorsque les processus commencent à transférer des ressources à d'autres processus sans contrôle. Si un processus de priorité basse demande une ressource réservée aux processus de priorité la plus élevée, le processus est à jamais inactif. La famine survient également lorsque les ressources sont allouées de manière arbitraire, ce qui oblige les processus à attendre plus longtemps..
La famine peut être évitée en utilisant un algorithme de planification approprié avec une file d'attente prioritaire qui utilise également la technique de vieillissement, une technique de planification qui ajoute le facteur de vieillissement à la priorité de chaque demande, ce qui augmente le niveau de priorité des processus en attente peu prioritaires pendant longtemps. De plus, fournir plus de ressources aux programmes devrait éviter d’encombrer les 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 les autres et un seul processus doit être autorisé à accéder à une ressource à la fois..
Le blocage et la famine sont des concepts liés dans les systèmes d'exploitation multitraitement ou les systèmes distribués, qui permettent à un ou plusieurs threads ou processus de rester bloqués dans l'attente des 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, ce qui provoque le gel du processus, processus de haute priorité et besoin d'attendre pour toujours.