Plusieurs processus attendent sans fin que d'autres processus libèrent les ressources occupées en raison de la concurrence pour les ressources.
Il existe une contradiction entre les ressources limitées du système informatique et les nombreux processus demandant l'allocation de ressources. Lorsque le nombre total de ressources requises par plusieurs processus est supérieur au nombre de ressources que le système peut fournir, le processus préemptera les ressources. Si les ressources préemptées par le processus ne sont pas correctement gérées ou allouées, un blocage se produira. (Apprentissage recommandé : Tutoriel vidéo sur le front-end Web)
L'impasse fait référence au fait que deux processus ou plus sont en compétition pour les ressources ou communiquent entre eux pendant l'exécution. une sorte de phénomène de blocage. Sans force extérieure, ils ne pourront pas avancer. À ce moment-là, on dit que le système est dans un état de blocage ou que le système est dans une impasse. Ces processus qui s'attendent toujours les uns les autres sont appelés processus de blocage.
Conditions
Bien qu'un blocage puisse survenir lors de l'exécution d'un processus, certaines conditions doivent être remplies pour qu'un blocage se produise. Les quatre conditions nécessaires suivantes sont requises.
1) Condition d'exclusion mutuelle : fait référence à l'utilisation exclusive des ressources allouées par un processus, c'est-à-dire qu'une certaine ressource n'est occupée que par un seul processus sur une période donnée. S'il existe d'autres processus demandant des ressources à ce moment-là, le demandeur ne peut qu'attendre que le processus occupant les ressources soit épuisé et libéré.
2) Conditions de demande et de maintien : cela signifie que le processus a détenu au moins une ressource, mais a fait une nouvelle demande de ressource et que la ressource a été occupée par d'autres processus à ce moment-là, le processus demandeur. est bloqué, mais il a déjà demandé la ressource. Les autres ressources obtenues restent inchangées.
3) Condition de non-privation : fait référence à la ressource que le processus a obtenue. Elle ne peut pas être privée avant d'être épuisée, et ne peut être libérée d'elle-même qu'une fois épuisée.
4) Condition d'attente de boucle : lorsqu'un blocage se produit, il doit y avoir un processus - une chaîne circulaire de ressources, c'est-à-dire P0 dans l'ensemble de processus {P0, P1, P2,···,Pn} En attente d'une ressource occupée par P1 ; P1 attend une ressource occupée par P2,..., Pn attend une ressource occupée par P0.
Cause
La concurrence pour les ressources provoque une impasse dans les processus
Lorsque des ressources telles que des imprimantes sont partagées par plusieurs processus du système , files d'attente publiques, etc., lorsque le nombre n'est pas suffisant pour répondre aux besoins des processus, les processus entreront en compétition pour les ressources et provoqueront une impasse.
En concurrence pour les ressources temporaires
Les ressources d'imprimante mentionnées ci-dessus sont des ressources réutilisables séquentiellement et sont appelées ressources permanentes. Il existe également une ressource dite temporaire, qui fait référence à une ressource générée par un processus, utilisée par un autre processus et qui devient inutile après une courte période de temps. Par conséquent, elle est également appelée ressource consommable, telle que le matériel. interruptions, signaux, messages et messages tampons, etc., cela peut également provoquer un blocage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!