Conditions de concurrence
Un article de Wikipédia, l'encyclopédie libre.
Cet article est une ébauche concernant l’informatique.
Vous pouvez partager vos connaissances en l’améliorant. (Comment ?).
|
Les conditions de concurrence correspondent aux situations dans lesquelles se retrouvent plusieurs processus tentant d'accéder au même moment à une même ressource partagée ( Fichier, Imprimante, etc... ). Le résultat de telles situations dépend de la manière dont elles sont traitées. En effet, s'il n'y a pas une gestion ad hoc des problèmes que posent les conditions de concurrences il peut en résulter des situations inexpliquées (Fichiers tronqués, attentes d'E/S infinies, etc...)
Sommaire |
[modifier] Conditions de concurrence
Dans un contexte multitâche, plusieurs processus sont ammenés à accèder à une même ressource. Un exemple classique est l'accès à une zone mémoire commune entre plusieurs thread. Ces situations où plusieurs processus accèdent à une même ressource partagée au même moment sont nommées conditions de concurrence.
[modifier] Exemple d'accès à une ressource d'impression
Lorsqu'un processus veut imprimer une page, il écrit une entrée dans une liste d'attente et incrémente un pointeur qui pointe vers la prochaine entrée libre. Qu'arrive-t-il si un premier processus entre son entrée et que le systeme d'exploitation décide d'allouer le processeur à un deuxième processus immédiatement après ? Le second processus, s'il demande lui aussi une impression, va écrire son entrée dans la même que celle du premier processus puisque celui-ci n'a pas eu le temps d'incrementer le pointeur. La page du premier processus ne sera donc pas imprimée.
[modifier] L'exclusion mutuelle
|
|
L'exclusion mutuelle est une méthode permettant d'éviter les conditions de concurrence et donc de s'assurer que lorsqu'un processus accède à un élément partagé, les autres processus seront bloqués en attente de la ressource.
Si l'on empêche les processus d'accéder en même temps à la même ressource partagée c’est-à-dire d'entrer dans leur section critique au même moment, les conditions de concurrences sont évitées.
Différents types d'exclusion mutuelle existe :
- La désactivation des interruptions
- Les moniteurs
- Les verrous
- Les sémaphores
- Les mutex (Version simplifié des sémaphores)