Las instrucciones de carga vinculada (LL) y almacenamiento condicional (SC) son una forma de lograr actualizaciones de memoria atómica en sistemas multiprocesador de memoria compartida, sin bloquear ubicaciones de memoria para el acceso exclusivo de un procesador.
La idea es que use LL para cargar el valor almacenado en una ubicación de memoria en un registro, modificarlo como quiera allí y luego escribirlo de nuevo en el mismo lugar usando SC. SC solo sobrescribirá el valor en la memoria con el modificado si ningún otro procesador lo ha alterado mientras trabajaba en la copia en el registro. Tiene el efecto secundario de establecer un indicador de estado para indicar si tuvo éxito o no.
Cuando el valor actualizado se almacena con éxito, un hilo puede confiar en que su secuencia de lectura-modificación-escritura se completó sin interferencia de otros hilos. En caso de falla, depende del programa decidir si renunciar o recargar la dirección e intentar nuevamente, pero al menos no produce una condición de carrera no detectada.
- Mi Pen drive está lleno, pero no puedo ver ningún archivo, ¿por qué?
- ¿Unsigned int no garantiza un rango mayor de valores no negativos que su homólogo firmado?
- ¿Dónde puedo encontrar conjuntos de datos públicos de ataques de IoT y enrutadores para un proyecto de investigación?
- ¿Cuál es la diferencia entre base de datos paralela y mapreduce?
- ¿Hay recursos o tutoriales para comprender rápidamente la lógica y los algoritmos aplicados?