Hace pocos meses en Ciencias de la computación e ingeniería... planteé un problema relacionado con programación concurrente. En ese momento no lo respondí porque una respuesta buena exigía explicaciones detalladas y largas. La realidad del hardware moderno: aunque los algoritmos anteriores para solucionar la exclusión mutua para dos y N procesos son formalmente correctos no funcionarán en la mayoría de procesadores modernos.No debería sorprenderte, los fabricantes de procesadores intentan maximizar el uso del procesador con todos los niveles...
|
etiquetas: hardware moderno , barreras memoria
Sí, muy popular. De hecho hoy en la cola del pan no se hablaba de otra cosa
¡¡¡Sáquenla ya de portada!!!
que no falte de na
¿Es una señal?
El procesador esta usando consistencia relajada (PC)... y el software debe actuar en consecuencia (mediante membars... que por cierto no tienen nada que ver con los locks). Lo que te pasa en el algoritmo es un problema de acceso "no controlado". El concepto del modelo de consistencia es más fino que eso. Leete antes class.stanford.edu/c4x/Engineering/CS316/asset/A_Primer_on_Memory_Cons
Este articulo mete más ruido que nueces.
en.wikipedia.org/wiki/Software_transactional_memory
Por cierto Haswell tiene soporte en el ISA (Extensiones TSX)
en.wikipedia.org/wiki/Transactional_Synchronization_Extensions
> Es memoria transaccional en ambos casos, no?
Ya, me lié yo, lo leí y pensé sólo en hardware.
En la "academia" se sigue discutiendo y estudiando el tema de cache con soporte de transacciones
Sincronizar procesos es de lo más jodido que me encuentro.
Aunque es reconfortante cuando consigues que las tareas pasen de una hora y media a 20 minutos lanzando hilos.
Por cierto, @gallir se equivoca, es Front Side Bus, no buffer.
www.youtube.com/watch?v=Njui7Tx2s40#t=71