Zusammenfassung der Ressource
Sincronizacion en Sistemas Operativos
Distribuidos
- Algoritmos para Sincronizacion de relojes.
- Algoritmo de Cristian.
- Basado en el trabajo de cristian(1989)
- Es un algoritmo centralizado
- Consiste en cada maquina envia un mensaje al servidor para solicitar el tiempo actual
- -Lo hace periodicamente en un tiempo no mayor a una constante definida. -La
respuesta sera tan pronto posible,con el tiempo actual en un mensaje.
- El servidor de tiempo es pasivo
- Tiene dos problemas
- 1.-Problema mayor El tiempo nunca debe correr hacia atras: si el reloj del emisor es
rapido,el tiempo que se espera recibir sera menor que el valor actual que tenga el
emisor La forma de corregirlo es intentar medir el tiempo
- 2.-Problema menor El tiempo que tarda el servidor en responder al emisor es
distinto de cero: La forma de corregirlo es intentar medir el tiempo
- Algoritmo de Berkeley
- Es un algoritmo Centralizado
- Es adecuado cuando no se dispone de un receptor UTC
- El servidor de tiempoRealizar un muestreo periodico de todas las maquinas para
preguntarles el tiempo::
- con la respuesta: Calcula el tiempo promedio Indica a las maquinas que avancen su
reloj o disminuyan la velocidad del mismo hasta lograr lo requerido
- Algoritmos con promedio
- son centralizados
- 1.-Al inicio de cada intervalo,cada maquina transmite el tiempo actual segun su
reloj:Estas transmisiones no seran simultaneas porque no todos los relojes trabajan
a la misma velocidad
- 2.-Despues se inicia un cronometro local para reunir las demas transmisiones que
lleguen en cierto intervalo 'x'
- 3.-Al llehar todas las transmisiones se ajecuta un algoritmo para calcular una nueva
hora para los relojes: -El algoritmo mas sencillo es promediar todos los valores-otro
algoritmo seria el de descartar los valores extremos(mas grandes y mas chicos)y
promediar:Esto en autodefensa contra los relojes sin sentido -Una mejora al
adgoritmo considera la correccion por tiempo de propagacion.
- Fuentes externas de tiempo
- Los sistemas que requieren una sincronizacon muy precisa con UTC se pueden
equipar con varios receptores de UTC
- Las distintas fuentes de tiempo generan distintos rangos(intervalos de tiempo)
donde caeran los respectivos UTC,porque es necesaria una sincronizacion
- Relojes Fisiscos.
- Son necesarios en
ciertos sistemas,por
ejemplo uno de tiempo
real,ya que importa la hora
del reloj: -Seran necesarios
mas de un reloj:Deberan
de estar sincronizados
con el munto real y entre
ellos mismos.
- -La forma de medir el tiempo ha tenido una
evolucion: *En la antiguedad se media
astronomicamente. *En 1941,se comenzo a medir con
relojes atomicos. *La oficina internacional de la hora
en paris(BIH)calcula el tiempo atomico
internacional(TAI). *Surge el UTC:Tiempo coordenado
universal.
- Uso de Relojes Sincronizados.
- Con el hw y sw necesario para la sincronizacion a gran escala(en todo internet) es
posible mantener millones de relojes sincronizados con UTC,con precision de
milisegundos
- algunos algoritmos son:
- Entrega de mensajes a llo ams uno.
- -Incluso en presencia de fallas. -Los mensajes llegan atrabes de una cierta
conexion.Cada mensaje lleva un identificador de conexion y una marca de tiempo.
-Para cada conexion,el servidor registra en una tabla las marcas mas recientes. -si
un mensaje llega con una marca de tiempo menor que la almacenada para esa
conexion,el mensaje se considera duplicado y se rechaza. -Para descartar marcas
de tiempo viejas,cada servidor mantiene una variable: G=Tiempo
actual-MaxTiempoDeVida-MaxDesviacionReloj -Cualquier marca de tiempo mayor que
G puede ser borrada de forma segura. -Los mensajes de conexion desconoidas se
aceptan si su marca en mas reciente que G. Cada cierto tiempo 'T',el tiempo actual
se escribe en el disco. Despues de una cauda se recarga G del disco incrementado
con el periodo de acrualizacion 'T'.
- Consistencia en cache basado en reloj
- -Si un cliente tiene en cache un
fichero para lectura y otro lo pide
para escritura,el servidor debe pedir
al primero que lo invalide,aunque lo
pidiere hace horas. -La utilizacion de
relojes sincronizados elimina esta
sobrecarga. -Cuando un cliente pide
un fichero,se le da un
alquiler(lease)sobre el fichero que
indica el tiempo durante el que la
copia sera valida. -Cuando la copia
esta a punto de expirar el cliente
puede pedir la renovacion. -Si
expira,ya no podra utilizarse y no
hay que mandar un mensaje al
servidor. -Si expira y sigue en la
cache,el cliente puede preguntar al
servidor si la copia(identifica por
una marca de tiempo)aun es la
copia actual.Utilizando
temporizadores el servidor puede
esperar y dejar que el alquiler
expire. -Si un cliente cae,el servidor
no puede saber si ha muerto o es
demasiado lento.
- Authentication tickets in Kerberos
- -Kerberos provee un medio para modulos y
comunicarse usando conexiones seguras y
autentificadas. -Hace uso de llaves privadas con
extencion DES y protocolo de Needham y
Schroeder. -Estos sistemas tienen que hacer uso
de conexiones autentificadas entre cliente/servidor.
-Utiliza los relojes sincronizados de dos formas:
1)para limitar el uso de llaves particulares. 2)Ayuda a
la deteccion de mensajes duplicados. -Como hace
uso de metodos de seguridad altos,los relojes
tambien necesitan tener el mismo nivel de
seguridad.
- Relojes Logicos.
- -Su funcionamiento es mas parecido al de un cronometro. -Los ordenadores
poseen un circuito que registra el tiempo,conocido como dispositivo reloj:
*Basicamente es un cronometro. *Consiste en un cristal de cuarzo de precision
semetido a cierta tension:1)Cada cristal se le asocia un registro contador y un
registro mantenedor.2)se puede programar un cronometro para que genere una
interrupcion 'x' veces por segundo.3)cada interrupcion se denomina marca de reloj.
*Al arrancar por 1ra vez el sistema se solicita la fecha y hora,se convierte en una
marca que se compara con una fecha y hora conocida por el sistema y al final se
guarda en memoria. -Cuando un sistema 'n' computadora,y cada una con su reloj: *Es
imposible garantizar que los cristales oscilen con la misma frecuencia. *Habra una
perdida de sincronia en relojes:1)La diferencia entre los valores del tiempo se llama
distorsion de reloj.2)Podria generar fallas en programas dependientes del tiempo.
- -En 1978,lamport demostro que si es posible la sincronizacion de relojes: *Señalo que
la sincronizacion no tiene que ser absoluta:1)Si 2 procesos no interactua no es
necesario la sincronizacion de sus relojes.2)Generalmente lo importante no es que
los procesos esten de acuerdo en la hora,si no que coincidan en el orden en que
ocurren los eventos. *Para sincronizar los relojes logicos,definio una relacion llamada
ocurre antes de:Identificar que todos los procesos coinciden en que primero ocurre
el evento 'a' y luego 'b': a->b
- -Para ciertos algoritmos,lo que importa es la consistencia interna de los relojes:
*Estos relojes son los relojes logicos. *No interesa si estan cercanos a la hora
real,mientras coincidan internamente en una hora.