Tableau de comparaison
Base de comparaison | Impasse | famine |
---|---|---|
De base | Le blocage est où aucun processus ne progresse et est bloqué. | La famine est le moment où les processus de faible priorité sont bloqués et le processus de haute priorité se poursuit. |
État naissant | L’occurrence d’exclusion mutuelle, de mise en attente et d’attente, d’absence de préemption et d’attente circulaire simultanément. | Application des priorités, gestion des ressources incontrôlée. |
Autre nom | Attente circulaire. | Lifelock. |
Ressources | Dans une impasse, les ressources demandées sont bloquées par les autres processus. | En état de famine, les ressources demandées sont utilisées en permanence par des processus hautement prioritaires. |
La prévention | Éviter l'exclusion mutuelle, attendre et attendre, circuler et permettre la préemption. | Vieillissement. |
Définition de blocage
Le blocage est une situation dans laquelle plusieurs processus de la CPU se font concurrence pour le nombre fini de ressources disponibles dans la CPU. Ici, chaque processus contient une ressource et attend l'acquisition d'une ressource détenue par un autre processus. Tous les processus attendent les ressources de manière circulaire. Dans l'image ci-dessous, vous pouvez voir que le processus P1 a acquis la ressource R2 qui est demandée par le processus P2 et que le processus P1 demande une ressource R1 qui est à nouveau détenue par R2. Ainsi, les processus P1 et P2 forment une impasse.
- Exclusion mutuelle: un seul processus à la fois peut utiliser une ressource si un autre processus demande la même ressource, il doit attendre que le processus utilisant la ressource la libère.
- Conserver et attendre: un processus doit détenir une ressource et attendre l'acquisition d'une autre ressource détenue par un autre processus.
- Pas de préemption: le processus contenant les ressources ne peut pas être préempté. Le processus contenant la ressource doit libérer la ressource volontairement une fois la tâche terminée.
- Attente circulaire: le processus doit attendre les ressources de manière circulaire. Supposons que nous ayons trois processus {P0, P1, P2}. Le P0 doit attendre la ressource détenue par P1; P1 doit attendre pour acquérir la ressource détenue par le processus P2 et P2 doit attendre pour acquérir le processus détenu par P0.
Bien que certaines applications puissent détecter les programmes susceptibles d'être bloqués. Mais le système d'exploitation n'est jamais responsable de la prévention des blocages. Il est de la responsabilité des programmeurs de concevoir des programmes sans blocage. Cela peut être fait en évitant les conditions ci-dessus nécessaires à l’apparition d’une impasse.
Définition de la famine
La famine peut être définie comme lorsqu'une demande de processus pour une ressource et que cette ressource a été utilisée en permanence par les autres processus, le processus demandeur est alors confronté à la famine. En période de famine, un processus prêt à exécuter attend que le processeur alloue la ressource. Mais le processus doit attendre indéfiniment car les autres processus bloquent en permanence les ressources demandées.
Le problème de la famine se pose généralement dans l'algorithme d'ordonnancement prioritaire . Dans l'algorithme d'ordonnancement prioritaire, la ressource est toujours affectée au processus de priorité supérieure, empêchant ainsi le processus de priorité inférieure d'obtenir la ressource demandée.
Le vieillissement peut résoudre le problème de la famine. Le vieillissement augmente progressivement la priorité du processus qui attend depuis longtemps les ressources. Le vieillissement empêche un processus peu prioritaire d'attendre indéfiniment une ressource.
Différences clés entre le blocage et la famine dans un système d'exploitation
- Dans une impasse, aucun des processus ne poursuit son exécution, chaque processus est bloqué dans l'attente des ressources acquises par l'autre processus. En revanche, la famine est une condition qui permet aux processus possédant une priorité plus élevée d’acquérir les ressources en continu en empêchant les processus de priorité basse d’acquérir des ressources, ce qui entraîne le blocage indéfini des processus de priorité basse.
- Le blocage se produit lorsque quatre conditions sont exclues: exclusion mutuelle, attente et attente, absence de préemption et attente circulaire simultanément. Toutefois, la famine survient lorsque les priorités de processus ont été appliquées lors de l'allocation des ressources ou lorsqu'il existe une gestion non contrôlée des ressources dans le système.
- L'impasse est souvent appelée par le nom circulaire wait alors que la famine s'appelle le verrou vécu .
- Dans l’impasse, les ressources sont bloquées par le processus alors que, dans le cas de famine, les processus sont utilisés en permanence par les processus hautement prioritaires.
- On peut éviter l'impasse en évitant les conditions telles que l'exclusion mutuelle, le maintien en attente et l'attente circulaire et en permettant la préemption des processus qui conservent des ressources pendant une longue période. D'autre part, le vieillissement peut prévenir la famine.
Conclusion:
Les impasses et la famine retardent l'exécution du processus en le bloquant. D'une part, une impasse peut provoquer la faim dans les processus et, d'autre part, une famine peut les sortir de l'impasse.