Résumé
Une situation de compétition (ou situation de concurrence, accès concurrent, concurrence critique, course critique, séquencement critique ; race condition en anglais, littéralement « situation de course »), est une situation caractérisée par un résultat différent selon l'ordre dans lequel agissent les acteurs du système. Le terme est plutôt employé à propos de programmes informatiques et de systèmes électroniques. C'est généralement considéré comme un défaut car source de panne ou de blocage. Une situation de compétition peut survenir dès que plusieurs acteurs tentent d'accéder au même moment à une ressource partagée (fichier, imprimante, etc.) et qu'au moins l'un d'entre eux est susceptible de modifier son état. Cette définition implique que les systèmes dont les ressources partagées sont immuables (dont l'état ne peut pas changer) soient immunisés contre ce problème. Les situations de compétition sont des problèmes particulièrement difficiles à identifier et à corriger puisqu'ils ne surviennent que suite à l'ordonnancement particulier et difficilement reproductible d'une séquence d'évènements. Une situation de compétition peut survenir dans un logiciel multitâche lorsque des données sont partagées sans précautions entre plusieurs tâches. Prenons l'exemple d'un système industriel qui comptabilise la production d'une machine. À chaque fois qu'une pièce est fabriquée, la routine ci-dessous est exécutée : QUAND nouvelle_pièce total_pièces := total_pièces + 1 FIN QUAND Cette routine incrémente le nombre total de pièces fabriquées. Mais si d'une manière ou d'une autre le logiciel est susceptible de réagir à la production concurrente de deux pièces, une situation de compétition survient.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (5)
CS-307: Introduction to multiprocessor architecture
Multiprocessors are a core component in all types of computing infrastructure, from phones to datacenters. This course will build on the prerequisites of processor design and concurrency to introduce
CS-471: Advanced multiprocessor architecture
Multiprocessors are now the defacto building blocks for all computer systems. This course will build upon the basic concepts offered in Computer Architecture I to cover the architecture and organizati
CS-206: Parallelism and concurrency
Course no longer offered for new students; this edition is only a make-up course for those who repeated the year. Please log in with EPFL credentials and consult the mediaspace link below for course v
Afficher plus