La invalidación de la memoria caché es una de las dos técnicas para mantener la coherencia de la memoria caché en un sistema en el que múltiples núcleos comparten una memoria caché de menor nivel. Esto permite que las condiciones de carrera entren al sistema, como se explica a continuación.
Cada vez que un cliente A (un nodo de caché) solicita acceso de escritura, todos los demás clientes que contienen la copia compartida de datos deben recibir invalidaciones. Esto tiene que suceder a través de una red de interconexiones. Ahora, durante esta fase transitoria (el tiempo entre el momento en que se envían las invalidaciones pero aún no se reciben), si otro cliente B solicita un acceso de lectura o escritura, los resultados dependen completamente de la solicitud que llegue primero al servidor (el directorio). El protocolo debe hacer lo correcto para cualquiera de estas posibilidades. Se espera que sea lo suficientemente inteligente como para desenredar todas esas condiciones de carrera . Ahí es donde la codificación de un protocolo de coherencia de caché con invalidación de caché se vuelve difícil. El desafío radica en manejar correctamente estos casos inusuales de condiciones de carrera, y hay una gran cantidad de ellos posibles. Si modela el protocolo utilizando una máquina de estado, un verificador de máquina de estado normalmente descubrirá miles de rutas en el diagrama de estado.
La otra alternativa para mantener la coherencia es la Actualización de caché, en la que el escritor envía una copia de los datos nuevos a cada cliente que tiene acceso de lectura. Pero esto sacrifica el desempeño de los casos comunes, para lograr la simplicidad del protocolo.
- ¿Qué tan bueno es el curso de informática en RIT?
- ¿Qué campo de investigación combina informática y física?
- ¿Cuál es el futuro de la programación de computadoras?
- ¿Cuáles son las diferentes áreas en las que un estudiante de informática de segundo año puede realizar su pasantía de verano?
- ¿Cuáles son algunos de los proyectos prácticos de informática?