next up previous contents
Next: Exchange Up: Ayuda con hardware Previous: Ayuda con hardware

Test-and-set

La instrucción test-and-set (TAS) implementa una comprobación del contenido de una variable en la memoria al mismo tiempo que varía su contenido en caso que la comprobación se realizó con exito.

Así se puede realizar la exclusión mutua con

Initially:  vi is equal false
            C  is equal true

Loop:
  non-critical section
  loop
    if C equals true          ; atomic test-and-set
      set C to false and exit
  endloop
  set vi to true
  critical section
  set vi to false
  set C to true;

En caso de un sistema multi-procesador hay que tener cuidado que la operación test-and-set esté realizada cerca de la memoria compartida.



© 2003, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática