¿Qué es la memoria transaccional?

En el software, el esquema de memoria transaccional es un curso de acción para la programación multiproceso que utiliza transacciones que son muy parecidas a las que usa una base de datos. Cuando dos o más subprocesos intentan acceder a los mismos datos al mismo tiempo, muchas situaciones indeseables diferentes pueden dar lugar a los casos en que el resultado de un programa depende de la orden de acceso a los subprocesos. Por lo general, se desea un pedido y en la lectura múltiple, las cerraduras son la forma predominante y simple de garantizar que solo un solo hilo tenga acceso a un recurso específico a la vez.

Este enfoque de la memoria transaccional contiene múltiples problemas con respecto a los bloqueos en la lectura múltiple. Un bloqueo puede volverse permanente si se produce algún tipo de error inesperado, y los bloqueos pueden generar problemas impredecibles con concurrencia, como un punto muerto o inversión prioritaria. Como resultado de que las cerraduras son muy finas, otro problema incluye el código que finalmente termina pasando la mayor parte del tiempo entre el bloqueo, el cambio de contexto y la UNLocking. Este es un problema crucial porque puede hacer que el código pase más tiempo en estas acciones que en hacer otro trabajo importante en el programa. Por el contrario, los bloqueos de grano grueso pueden causar una disminución del rendimiento del procesamiento y una concurrencia disminuida.

Los problemas en la memoria transaccional se abordan mediante bloqueos avanzados, incluido el "bloque de bloqueo" de C#, bloqueos de lectura-escritura, barreras de escritura, etc. Una de las principales prioridades en lo que respecta a la memoria transaccional es no tener cerraduras ni tiempo de procesamiento de bloqueos innecesarios. Por lo general, se acuerda que una estructura de datos que se comparte está libre de bloqueos si sus operaciones no requieren exclusión mutua. Las estructuras de datos compartidas y libres de cerraduras evitan problemas comúnmente asociados con las técnicas de bloqueo estándar si se encuentran en sistemas que son altamente concurrentes.

El modelo de coherencia y consistencia de memoria transaccional (TCC) es un nuevo,modelo propuesto en memoria compartida. Según el modelo, las transacciones atómicas son unidades invariablemente básicas de lo siguiente: trabajo paralelo, coherencia de memoria, comunicación y consistencia de la referencia de memoria. El modelo TCC también simplifica el software paralelo al eliminar la sincronización que utiliza bloqueos de estándares o semáforos. A través del hardware, TCC también combina cada escritura de cada región de ocurrencia de transacción en un paquete para transmitir atómicamente el paquete a un estado de memoria que se comparte permanentemente. Además del hardware de coherencia simplificado, esto significa que se necesita una reducción en los mensajes de baja latencia y una eliminación completa de ciertos protocolos de coherencia estándar.

OTROS IDIOMAS