¿Es correcta mi comprensión de la memoria transaccional como se describe a continuación?

Dec 22 2020

Estoy tratando de entender la MT. He leído la respuesta de Ben aquí y traté de entender algunos otros artículos en Internet. Sin embargo, todavía no estoy muy seguro de haber entendido correctamente. Según tengo entendido, en la memoria transaccional, los subprocesos pueden ejecutar las transacciones en paralelo. Si dos (o más) subprocesos intentan acceder a la misma variable de transacción, todos los subprocesos excepto uno abortarán la transacción y comenzarán de nuevo (en algún momento, no necesariamente de inmediato). El que no aborta actualiza la variable de transacción.

En pocas palabras, en TM todos los subprocesos se ejecutan en paralelo y esperamos que no haya superposiciones de acceso a las variables transaccionales y, si las hay, solo dejamos que un subproceso continúe, mientras que los demás retroceden y vuelven a intentarlo. ¿Es correcta esta comprensión de la MT?

Respuestas

1 mevets Dec 23 2020 at 11:26

Esa es una muy buena sinopsis. Los detalles son bastante complicados y es posible que algunas transacciones no se puedan expresar en un monitor de TM dado; lo que significa que es posible que deba incluir dos implementaciones de su transacción: una optimista y una pesimista.

La caché es la implementación subyacente; cuando hace una referencia transaccional a la memoria, la caché lo nota y genera una alarma (reinicio) cuando se modifica alguna de esas referencias, o rechaza el cierre de la transacción si alguna ha sido modificada.

El número de variables transaccionales puede tener que, en general, ser menor que la asociatividad de su caché; de lo contrario, se desalojarían unos a otros del caché, lo que resultaría en una transacción que nunca podría completarse.

Cómo funcionan las interrupciones en medio de una transacción sigue siendo un problema abierto.

En resumen, fue una idea un poco fascinante hace 20 años. A medida que se acerca a la usabilidad general, parece tener requisitos de hardware en rápida expansión. Puede ser más útil para calentar los climas fríos que para acelerar los sistemas informáticos.