Hecho G 15

operación atómica

¿Qué es una operación atómica? Una idea de la operación atómica ayuda a comprender la reentrada, la sección crítica, la seguridad de subprocesos, las primitivas de sincronización, etc. (tendremos próximos artículos sobre cada uno).

Atomicidad,  operación atómica :

En términos simples, atomicidad es irrompibilidad, es decir, una operación ininterrumpida. Si dos usuarios emiten un comando de impresión, cada impresión debe realizarse en un solo intento. Si el controlador de la impresora envía partes de datos de dos usuarios, la impresión no será la esperada. Por lo tanto, el controlador de la impresora debe enviar el comando de impresión como una operación inquebrantable desde una aplicación a la vez (en otras palabras,  sincronizar el acceso a la impresora).

Tenga en cuenta que la terminología de la base de datos sobre la atomicidad sería diferente, pero el concepto es el mismo.

Con un ejemplo podemos entender bien la atomicidad en la programación. Considere en una aplicación de subprocesos múltiples, una función está incrementando una variable global/estática,

contar++; // cuenta tiene almacenamiento permanente en RAM

La declaración anterior se puede descomponer en, al menos, tres operaciones.

  1. Obteniendo valor de conteo
  2. Valor de conteo incremental
  3. Almacenamiento del valor actualizado

Si un subproceso que ejecuta la función que contiene la declaración anterior está obteniendo su valor (digamos 2). Es posible que en este punto de ejecución, el subproceso se pueda adelantar y otro subproceso invoque la misma función. En consecuencia, el valor de count se incrementará a 3 por ese subproceso. Cuando se reanuda el hilo anterior, aún conserva el valor anterior (2), en lugar del valor más reciente (3), y termina escribiendo 3 nuevamente. De hecho, el valor de count debe ser 4 debido al efecto de ambos subprocesos.

Este tipo de errores son bastante difíciles de recrear y localizar.

Un ejemplo de operación atómica es la ejecución de instrucciones, por lo general, la alimentación de instrucciones a la unidad de ejecución no se puede detener en el medio. Sin embargo, una declaración en lenguaje de alto nivel da como resultado múltiples instrucciones. Es la causa raíz de las operaciones no atómicas.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *