Atomicidad de operaciones - sistemas operativos

Solo disponible en BuenasTareas
  • Páginas : 3 (723 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de diciembre de 2011
Leer documento completo
Vista previa del texto
Atomicidad de las operaciones (Indivisibilidad de las operaciones) La atomicidad o indivisibilidad de las operaciones es aquella que garantiza que una operación no puede ejecutarse de maneraconcurrente con cualquiera otra operación que involucre un ítem o elemento de la misma; es decir, no se van a ejecutar dos operaciones que utilicen un recurso compartido de manera concurrente hasta que una delas dos desocupe dicho recurso.
Operación wait(S) Begin If S>0 Then S := S-1 Else bloquear el proceso en S End Operación signal(S) Begin If algunos procesos están bloqueados en S Then activar unproceso bloqueado; Else S := S + 1; End

El deshabilitar las interrupciones garantiza que ninguna operación interrumpirá en la ejecución del SC de wait y signal, luego se habilitan para que lasdemás operaciones sigan su ejecución sin problemas. Si se eliminan estas operaciones de interrupciones no se garantiza la atomicidad de ninguna de ambas operaciones es decir se pueden ejecutar varios waity varios signal de manera concurrente resultando en una corrupción o modificación indebida de un recurso compartido. Test & Set Esta instrucción realiza dos acciones. Por una parte “prueba” el valorde un byte de memoria, de tal modo que el código de condición indica si el valor era cero o no cero. También establece todos los bits en el byte a 1s. Ningún otro CPU u operación puede acceder al bytede memoria hasta que ambas instrucciones estén completas. Ejemplo: LOCK ENTRY_TEST . DC TS BC . X‘00’ LOCK 7, ENTRY_TEST . Lock se inicializa para abrir Test and set lock Loop si está cerrado(Sección crítica)

MVI

LOCK, X‘00’

Open the lock (by moving 0s)

Este ejemplo muestra cómo se obtiene la indivisibilidad de operaciones wait y signal. La primera línea en lenguaje ensambladordeclara la variable LOCK y la inicializa a un 0 hexadecimal, LOCK se usa como una variable de bloqueo con la convención de que un valor no cero en LOCK implica que el bloqueo está cerrado, y un valor...
tracking img