Descargar

Sincronización en los SS.DD.

Enviado por Pablo Turmero


    edu.red

    Sincronización en los ss.dd En un sistema con un procesador, la sincronización entre procesos usa herramientas como semáforos, monitores, etc. esas facilidades suponen de manera implícita la existencia de memoria compartida En los ss.dd. no contamos con esa memoria compartida, hemos de buscar otras técnicas Incluso el simple hecho de determinar si el evento A ocurrió antes que el evento B requerirá reflexión cuidadosa

    edu.red

    Sincronización de relojes En un sistema centralizado, el tiempo no tiene ambigüedades Si el proceso A pide la hora, y un poco después el proceso B también la pide, el valor obtenido por B es siempre mayor o igual que el obtenido por A En un s.d. no es tan sencillo. ¿qué implica el carecer de un reloj global?

    edu.red

    Sincronización de relojes Pensemos en el programa make en un entorno distribuido de dos máquinas

    La sincronización de relojes es muy importante! máquina que ejecuta el compilador máquina que ejecuta el editor tiempo del reloj local tiempo del reloj local 2144 2145 2146 2147 2142 2143 2144 2145 output.o creado output.c creado

    edu.red

    Sincronización de relojes ¿se pueden sincronizar los relojes en un sistema distribuido? Lamport demostró que sí: lo que importa no es una sincronización del tiempo absoluto, sino que el orden de los eventos sea el mismo en todas las máquinas En el ejemplo del make lo que importa no es la hora en que se crean output.o y ouput.c, sino el orden en que fueron creados Por otro lado, si dos procesos no interactuan, no es necesario que sus relojes estén sincronizados

    edu.red

    Sincronización de relojes Tipos de relojes: relojes lógicos: las máquinas tienen el mismo valor de reloj, aunque marquen una hora distinta de la real relojes físicos: las máquinas tienen el mismo valor de reloj, y éste no debe desvíarse de la hora real más alla de cierta magnitud

    edu.red

    Sincronización de relojes lógicos Lamport definió la relación “ocurre antes de” La expresión a->b se lee “a ocurre antes de b” e indica que todos los procesos coinciden en que primero ocurre a y después b se cumple: Si a y b son dos eventos en el mismo proceso y a ocurre antes que b, entonces a->b es verdadero Si a es el evento del envío de un mensaje por un proceso y b es el evento de la recepción del mensaje por otro proceso, entonces a->b es verdadero

    edu.red

    Sincronización de relojes lógicos ¿de qué forma podemos sincronizar relojes lógicos? Necesitamos una forma de asociar a cada evento a un valor de tiempo C(a) en el que todos los procesos estén de acuerdo Los valores de tiempo deben tener la propiedad de que si a->b entonces C(a)