Вы находитесь на странице: 1из 15

a)-Tiempos y Estados

globales.
b)-Memoria compartida
distribuida.
Sincronización de relojes
• La sincronización de relojes en un sistema distribuido consiste en garantizar que
los procesos se ejecuten en forma cronológica y a la misma vez respetar el
orden de los eventos dentro del sistema. Para lograr esto existen varios métodos
o algoritmos que se programan dentro del sistema operativo.
RELOJES FISICOS
• Cuando utilizamos una base de tiempo Universal, se dice que utilizamos Relojes Físicos. Son útiles en aplicaciones que se
manejan eventos secuenciados a alta velocidad, de tal suerte que no hay recursos disponibles para organizar la sincronización; En
ciertos sistemas (por ejemplo, los sistemas de tiempo real), es importante la hora real del reloj. Para estos sistemas se necesitan
relojes físicos externos. Por razones de eficiencia y redundancia, por lo general son recomendables varios relojes fisicos, lo cual
implica dos problemas:
1.- Cómo sincronizamos los relojes con la hora exacta del mundo real?
2.- Cómo sincronizamos los relojes entre sí?
Los relojes físicos deben ser iguales (estar sincronizados), no deben desviarse del tiempo real más allá de cierta magnitud. Debido
a la distorsión del tiempo y las derivas en los relojes de los distintos CPU's, en ciertos sistemas es importante la hora real del reloj,
por lo que se precisan relojes físicos externos (más de uno) y se deben sincronizar con los relojes del mundo real.
RELOJES LÓGICOS.
• La idea de un reloj lógico consiste en crear un sistema de convergencia del tiempo mediante la medición de las derivas, de
tal suerte que la noción de tiempo universal se sustituye por la noción de un tiempoo global auto-ajustable.
Los relojes lógicos son útiles para ordenar eventos en ausencia de un reloj común. Cada proceso P mantiene una variable
entera LCP (su reloj lógico), cuando un proceso P genera un evento, LCP = LCP +1, entonces cuando un proceso envía
un mensaje incluye el valor de su reloj; si otro proceso Q recibe un mensaje, éste debe revisar su reloj lógico para
determinar si existe secuencialidad con el mensaje en turno o su puede trabajar en concurrencia. Los relojes lógicos sólo
representan una relación de orden parcial, y funcionan mediante la alteración del conteo de tiempo para mantener la
sincronización mediante variables que afectan la hora de referencia. El reloj lógico establece un orden total entre eventos
si se añade el número del procesador, pero esto implica pagar un precio por la comunicación y por mantener el registro la
tabla de CPU's.
Relojes Lógicos (Algoritmo de
Lamport)
Estados globales
Hay tareas para las que necesitamos conocer el estado
global del sistema:
a) Detección de objetos distribuidos que ya no se utilizan.

b) Un interbloqueo distribuido ocurre cuando dos procesos


esperan un mensaje del otro.

c) Detectar la terminación de un algoritmo distribuido.


Memoria compartida distribuida
• La memoria compartida distribuida (DSM) es una abstracción utilizada para compartir datos
entre computadores que no comparten memoria física. Los procesos acceden a DSM para
leer y actualizar, dentro de sus espacios de direcciones, sobre lo que aparenta ser la
memoria interna normal asignada a un proceso. Sin embargo, existe un sistema subyacente
en tiempo de ejecución que asegura de forma transparente que procesos diferentes
ejecutándose en computadores diferentes observen las actualizaciones realizadas entre
ellas. Es como si 1os procesos accedieran a una única memoria compartida, pero de hecho
la memoria física está distribuida.
Modelos de Consistencia

• Un modelo de consistencia es esencialmente un contrato entre procesos y el


almacenamiento de datos. Es decir: si los procesos acuerdan obedecer ciertas
reglas, el almacenamiento promete trabajar correctamente.

• Normalmente un proceso que realiza una operación de lectura espera que esa
operación devuelva un valor que refleje el resultado de la última operación de
escritura sobre el dato.
Consistencia Casual
• La condición a cumplir para que unos datos sean causalmente consistentes es:
a) Escrituras que están potencialmente relacionadas en forma causal deben ser vistas por
todos los procesos en el mismo orden.

b) Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes


máquinas.

• Es permitida con un almacenamiento causalmente consistente, pero no con un


almacenamiento secuencialmente consistente o con un almacenamiento consistente en
forma estricta.
Consistencia Secuencial
• La consistencia secuencial es una forma ligeramente más débil de la
consistencia estricta. Satisface la siguiente condición:

• El resultado de una ejecución es el mismo si las operaciones (lectura y escritura)


de todos los procesos sobre el dato fueron ejecutadas en algún orden secuencial

a) Un dato almacenado secuencialmente consistente.

b) Un dato almacenado que no es secuencialmente consistente.


Consistencia Débil
• Los accesos a variables de sincronización asociadas con los datos almacenados son
secuencialmente consistentes.

Propiedades

a) No se permite operación sobre una variable de sincronización hasta que todas las
escrituras previas de hayan completado.

b) No se permiten operaciones de escritura o lectura sobre datos hasta que no se


hayan completado operaciones previas sobre variables de sincronización.
Consistencia de Liberación
• Se basa en el supuesto de que los accesos a variables compartidas se protegen
en secciones críticas empleando primitivas de sincronización, como por ejemplo
locks. En tal caso, todo acceso esta precedido por una operación adquiere y
seguido por una operación release. Es responsabilidad del programador que
esta propiedad se cumpla en todos los programas.
Consistencia Estricta
• Está definido por la siguiente condición: Cualquier lectura a una localidad de memoria x
regresa el valor guardado por la operación de escritura más reciente en x Esta definición
supone la existencia de un tiempo global absoluto (como en la física de Newton), para que
la determinación del evento "más reciente" no sea ambigua. Esta consistencia es típica de
sistemas uniprocesador, donde nunca se pueden presentar dos eventos simultáneamente.
Sin embargo es prácticamente imposible de lograr en sistemas multiprocesador
(distribuidos o no), debido a que pueden existir escrituras y lecturas en memoria separadas
por espacios mínimos de tiempo que no alcanzan a cumplir la condición exigida.
VENTAJAS DE LA MEMORIA
DISTRIBUIDA
• Ilusión de una memoria física compartida, sin cuellos de botella.

• Escabilidad (podemos extender el sistema sin mucho problema).

• Menor costo.
DESVENTAJAS DE LA MEMORIA
DISTRIBUIDA
• Topología de red muy importante.

• Administración de la red.

Вам также может понравиться