miércoles, 7 de octubre de 2009

EXCLUSIÓN MUTUA

Evitar que fragmentos de código conocidos como secciones críticas sean accedidas al mismo tiempo a recursos que no deben ser compartidos.

La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean en la comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones cualesquiera del código normal y esto puede provocar graves fallos.


A NIVEL SOFTWARE


Para los procesos concurrentes que se ejecuten en máquinas monoprocesador o multiprocesador con memoria principal compartida.

A NIVEL HARDWARE




  • Optimistas.
    Consideran que lo mas probable es que no haya conflictos, y si los hay sea en número reducido, por lo que permiten cualquier acceso a la variable compartida. En caso de conflicto, mantienen la integridad del sistema descartando las actualizaciones.
    Pesimistas.
    Bloquean todo aquello que pueda interferir.
    Actualizan la variable.
    Desbloquean lo bloqueado al principio.

    · Deshabilitar interrupciones y habilitar interrupciones (pesimista).
    · Test and Set (Compartir y Fijar) (pesimista).
    · Comparar e intercambiar (optimista).

No hay comentarios:

Publicar un comentario