Condición de carrera
Condición de carrera (del inglés race condition) es una expresión usada en electrónica y en programación. Múltiples procesos se encuentran en condición de carrera si el resultado de los mismos depende del orden de su ejecución. Si los procesos que están en condición de carrera no son correctamente sincronizados, puede producirse una corrupción de datos, que puede ser aprovechada por exploits locales para vulnerar los sistemas. Análogamente, en circuitos electrónicos se da una condición de carrera cuando la salida de un sistema o subsistema depende del orden en que se hayan activado o desactivado sus componentes.
Una condición de carrera se da principalmente cuando varios procesos acceden al mismo tiempo y cambian el estado de un recurso compartido (por ejemplo una variable), obteniendo de esta forma un valor no esperado de ese recurso.
Véase también
Enlaces externos
- Starvation and Critical Race Analyzers for Ada
- VHDL example
- Paper "Algorithms for the Optimal State Assignment of Asynchronous State Machines" by Robert M. Fuhrer, Bill Lin and Steven M. Nowick
- Paper "A Novel Framework for Solving the State Assignment Problem for Event-Based Specifications" by Luciano Lavagno, Cho W. Moon, Robert K. Brayton and Alberto Sangiovanni-Vincentelli
- Article "Secure programmer: Prevent race conditions—Resource contention can be used against you" by David A. Wheeler
- Chapter "Avoid Race Conditions" (Secure Programming for Linux and Unix HOWTO)
- Race conditions, security, and immutability in Java, with sample source code and comparison to C code, by Chiral Software
- Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)