c++ atomicity thread-synchronization

c++ - comparar e intercambiar vs prueba y establecer



atomicity thread-synchronization (2)

test-and-set modifica el contenido de una ubicación de memoria y devuelve su valor antiguo como una sola operación atómica.

compare-and-swap atómica compara el contenido de una ubicación de memoria con un valor dado y, solo si son iguales , modifica el contenido de esa ubicación de memoria a un valor nuevo dado.

La diferencia marcada en negrita.

¿Podría alguien explicarme el funcionamiento y las diferencias de las operaciones anteriores en los subprocesos múltiples?


La prueba y el conjunto operan en un bit, la comparación y el intercambio operan en un campo de 32 bits.

El sistema z / TPF favorece el uso de las instrucciones de prueba y ajuste (TS) porque, con frecuencia, los indicadores de bloqueo son bits que se configuran para controlar el acceso a regiones críticas del código del sistema. La instrucción de prueba y conjunto (TS) requiere menos registros que la instrucción de comparación e intercambio (CS) y requiere menos tiempo de ejecución porque solo se necesita establecer un solo byte.

y encontré estos materiales en: http://www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.html

Puede aprender más sobre TSL con el libro llamado "Sistema operativo moderno, Capítulo 2" ...