Livelock: Quelle est, par exemple, la différence avec le blocage

Table des matières:

Anonim

Qu'est-ce que Livelock?

Un Livelock est une situation dans laquelle une demande de verrouillage exclusif est refusée à plusieurs reprises, car de nombreux verrous partagés qui se chevauchent continuent d'interférer. Les processus continuent de changer leur statut, ce qui les empêche en outre de terminer la tâche. Cela les empêche en outre de terminer la tâche.

Dans ce didacticiel sur le système d'exploitation, vous apprendrez:

  • Qu'est-ce que Livelock?
  • Exemples de Livelock
  • Qu'est-ce qui mène à Livelock?
  • Qu'est-ce que Deadlock?
  • Exemple de blocage
  • Qu'est-ce que la famine?
  • Différence entre l'impasse, la famine et Livelock

Exemples de Livelock

Exemple 1:

Un exemple le plus simple de Livelock serait deux personnes qui se rencontrent face à face dans un couloir, et les deux s'écartent pour laisser passer l'autre. Ils finissent par se déplacer d'un côté à l'autre sans faire de progrès car ils se déplacent de la même manière à l'époque. Ici, ils ne se croisent jamais.

Exemple 2:

Vous pouvez voir dans l'image ci-dessus, chacun des deux processus donnés a besoin de deux ressources, et ils utilisent le registre d'entrée de sondage primitif pour essayer d'acquérir les verrous nécessaires. Si la tentative échoue, la méthode fonctionne à nouveau.

  1. Processus A hold Y ressource
  2. Le processus B contient la ressource X
  3. Le processus A nécessite une ressource X
  4. Le processus B nécessite une ressource Y

En supposant que le processus A s'exécute en premier et acquiert la ressource de données X, puis le processus B s'exécute et acquiert la ressource Y, quel que soit le processus exécuté en premier, aucun d'entre eux ne progresse davantage.

Cependant, aucun des deux processus n'est bloqué. Ils utilisent les ressources du processeur à plusieurs reprises sans qu'aucun progrès ne soit réalisé, mais arrêtent également tout bloc de traitement.

Par conséquent, cette situation n'est pas celle d'une impasse car il n'y a pas un seul processus qui est bloqué, mais nous sommes confrontés à une situation équivalente à une impasse, qui est LIVELOCK.

Qu'est-ce qui mène à Livelock?

Livelock se produit lorsque le nombre total de processus autorisés dans un système spécifique doit être défini par le nombre total d'entrées dans la table de processus. Par conséquent, les emplacements de table de processus doivent être appelés ressources finies.

Qu'est-ce que Deadlock?

Un blocage est une situation qui se produit dans le système d'exploitation lorsqu'un processus entre dans un état d'attente car un autre processus en attente contient la ressource demandée. Le blocage est un problème courant dans le multi-traitement où plusieurs processus partagent un type spécifique de ressource mutuellement exclusive appelée verrouillage logiciel ou logiciel.

Exemple de blocage

  • Un exemple concret serait le trafic, qui ne va que dans une seule direction.
  • Ici, un pont est considéré comme une ressource.
  • Ainsi, lorsque l'impasse se produit, elle peut être facilement résolue si une voiture fait une sauvegarde (préempter les ressources et revenir en arrière).
  • Plusieurs voitures peuvent devoir être sauvegardées en cas de situation de blocage.
  • La famine est donc possible.
Exemple de blocage

Qu'est-ce que la famine?

La famine est une situation dans laquelle tous les processus de faible priorité ont été bloqués et les processus de haute priorité se poursuivent. Dans n'importe quel système, les demandes de ressources de priorité élevée / faible continuent à se produire de manière dynamique. Par conséquent, certaines politiques sont nécessaires pour décider qui bénéficie du soutien quand.

En utilisant certains algorithmes, certains processus peuvent ne pas obtenir le service souhaité même s'ils ne sont pas bloqués. La famine se produit lorsque certains threads rendent les ressources partagées indisponibles pendant une longue période.

Exemple de famine:

Par exemple, un objet propose une méthode synchronisée dont le retour est susceptible de prendre beaucoup de temps. Si un thread utilise fréquemment cette méthode, d'autres threads qui ont également besoin d'un accès synchronisé fréquent au même objet seront souvent bloqués.

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

  • Un blocage est une situation qui se produit dans le système d'exploitation lorsqu'un processus entre dans un état d'attente car la ressource demandée est détenue par un autre processus en attente.
  • Un vivelock, d'un autre côté, est presque similaire à une impasse, sauf que les états des processus impliqués dans un vivelock continuent toujours à changer les uns vers les autres, aucun ne progresse.
  • Ainsi, Livelock est un cas unique de pénurie de ressources.

Résumé:

  • Définition: Un Livelock est une situation dans laquelle une demande de verrouillage exclusif est refusée à plusieurs reprises, car de nombreux verrous partagés qui se chevauchent continuent d'interférer.
  • Livelock se produit lorsque le nombre total de processus autorisés dans un système spécifique doit être défini par le nombre total d'entrées dans la table de processus
  • Un blocage est une situation qui se produit dans le système d'exploitation lorsqu'un processus entre dans un état d'attente car un autre processus en attente contient la ressource demandée.
  • Un exemple concret serait le trafic, qui ne va que dans une seule direction.
  • Un exemple de Livelock serait deux personnes qui se rencontrent face à face dans un couloir, et les deux s'écartent pour laisser passer l'autre.
  • La famine est une situation dans laquelle tous les processus de faible priorité ont été bloqués et les processus de haute priorité se poursuivent.