Saltar al contenido
uencoder

Data Race

Una carrera de datos ocurre cuando varios hilos leen y escriben la misma ubicación de forma concurrente, con al menos una escritura y sin sincronización, provocando un comportamiento indefinido.

Propósito

Comprender el comportamiento indefinido que causan las carreras de datos y sus defensas; una preocupación central de la corrección de programas concurrentes.

Mecanismo

El hilo A escribe x mientras el hilo B lee/escribe x sin sincronización; el resultado es indeterminado (valores desgarrados, escrituras parciales). En C/C++ una carrera de datos es comportamiento indefinido. Defensas: mutexes, operaciones atómicas, barreras de memoria.

Casos de uso

  • Análisis de corrección de la concurrencia
  • Auditoría de seguridad de hilos
  • Detección de carreras de datos

Herramientas relacionadas

References