Définition
Ensembles de techniques et de mécanismes qui coordonnent l'accès simultané à des ressources partagées afin que les opérations conservent la correction, l'isolation et les invariants attendus malgré des exécutions chevauchées.
Principe
Principe
Imposer une sérialisation ou un ordre équivalent des opérations en conflit (par verrous, horodatages, versions, validation optimiste ou protocoles transactionnels) de sorte que les exécutions entrelacées soient observationnellement équivalentes à une exécution sérielle correcte ou à un niveau d'isolation spécifié.
Démonstration
Démonstration
Un système de gestion de base de données utilise le verrouillage en deux phases : la transaction A obtient un verrou d'écriture sur le compte X avant le débit, la transaction B se bloque sur ce verrou jusqu'à la validation de A, évitant ainsi l'anomalie de mise à jour perdue et garantissant l'invariant du solde du compte.
Mauvaise application
Mauvaise application
Appliquer une exclusion mutuelle à grande granularité sur des ressources non liées pour éviter des conditions de course ; cela évite les courses mais sérialise inutilement des opérations indépendantes, provoquant un effondrement du débit et une augmentation des latences.
Conséquence
Conséquence
Bien appliqué, les anomalies sur l'état partagé (mises à jour perdues, lectures sales, lectures non reproductibles) sont empêchées et les invariants du programme sont préservés, au prix d'un surcoût de coordination et d'une contention ou d'un risque de blocage si mal gérés.
Inversion
Inversion
Absence de contrôle de concurrence : les opérations concurrentes s'exécutent sans coordination, produisant des courses, des résultats non déterministes, des mises à jour perdues et des violations d'invariants dépendant de l'ordonnancement.
Limite
Limite
S'applique aux programmes multi‑threads, transactions de base de données et magasins distribués où l'état mutable partagé est accédé simultanément. Exclut l'accès à des données purement immuables et l'exécution strictement séquentielle mono‑thread. Les garanties dépendent du niveau d'isolation choisi et du modèle système (synchrone vs asynchrone, arrêt‑définitif vs byzantin).
Tension sémantique
Tension sémantique
Tension entre la sérialisabilité stricte (correction maximale) et le débit/la latence : le verrouillage pessimiste donne une forte isolation mais une forte contention ; les méthodes optimistes améliorent le débit mais peuvent augmenter le nombre d'annulations. Autre tension entre contrôle local et coordination globale en environnements distribués.
Synthèse
Synthèse
Le contrôle de concurrence regroupe des mécanismes qui transforment des accès chevauchés en exécutions satisfaisant des critères de correction choisis en détectant et ordonnant les opérations conflictuelles, en équilibrant protection des invariants et coûts de performance.