ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sincronizacion


Enviado por   •  9 de Junio de 2013  •  3.867 Palabras (16 Páginas)  •  496 Visitas

Página 1 de 16

SINCRONIZACIÓN

Aquí revisaremos como pueden sincronizarse los procesos. Por ejemplo, es importante que varios procesos no accedan simultáneamente a un recurso compartido, digamos a una impresora, sino que cooperen para garantizar a cada uno el acceso exclusivo temporal al recurso. La sincronización en sistemas distribuidos es con frecuencia mucho más difícil comparada con la de sistemas de un procesador.

Ahora veamos el análisis de un asunto de sincronización basado en tiempo real, seguido de la sincronización en la que solo importan cuestiones de ordenamiento relativo en lugar del ordenamiento en tiempo absoluto.

Sincronización del reloj

En un sistema centralizado, el tiempo no es ambiguo. Cuando un proceso quiere saber la hora, realiza una llamada de sistema y el núcleo se la dice. Si un proceso A pregunta la hora, y después un proceso B pregunta lo hora, el valor que obtiene B será mayor que el valor que obtuvo A. en un sistema distribuido, lograr un acuerdo con respecto al tiempo no es algo trivial.

Relojes físicos

Casi todas las computadoras tienen un circuito para dar seguimiento al tiempo. A pesar del amplio de la palabra “reloj” para hacer referencia a estos dispositivos, en realidad no son relojes en el sentido usual. Tal vez cronómetro sea una mejor palabra con la cual designarlos. Un cronómetro de computadora, en general, es un cristal de cuarzo mecanizado con precisión. Cuando este dispositivo se mantiene sujeto a tensión los cristales de cuarzo oscilan en una frecuencia bien definida que depende del tipo de cristal, de la forma de su corte, y de la cantidad de tensión. Hay dos registros asociados con cada cristal, un contador y un registro de mantenedor. Cada oscilación del cristal disminuye el contador en uno. Cuando el contador llega a cero, se genera una interrupción y el contador se reinicia a partir del registro de mantenedor. De esta manera, es posible programar un cronómetro para programar una interrupción 60 veces por segundo, o a cualquier otra frecuencia deseada. A cada interrupción se le conoce como marca de reloj.

Aunque la frecuencia con la que oscila un cristal es en general bastante estable, resulta imposible garantizar que los cristales de los diferentes computadores funcionen exactamente con la misma frecuencia. En la práctica, cuando un sistema tiene n computadoras, los n cristales funcionaran a velocidades ligeramente diferentes, lo cual ocasiona que los relojes (software) se salgan gradualmente de sincronía y arrojen diferentes valores cuando se leen. Esta diferencia en valores se conoce como distorsión de reloj.

Sistema de posicionamiento global

Como un paso hacia la solución de problemas de sincronización de relojes, primero consideremos un problema relacionado, a saber, como determinar nuestra posición geográfica en cualquier parte del planeta. Este problema de posicionamiento se resuelve por sí mismo a través de un sistema distribuido altamente específico y dedicado llamado GPS que significa sistema de posicionamiento global. El GPS es un sistema distribuido basado en un satélite puesto en órbita en 1978. Aunque ha sido utilizado principalmente en aplicaciones militares, en años recientes ha encontrado su camino para muchas aplicaciones civiles, principalmente en la navegación.

El GPS utiliza 29 satélites que circulan cada uno en una órbita situada a una altura aproximada de 20000 km. Cada satélite tiene hasta cuatro relojes atómicos que son calibrados regularmente desde estaciones especiales ubicadas en la Tierra. Un satélite transmite su posición de manera continua, y registra el tiempo de cada mensaje con su tiempo local. Esta transmisión permite a cada receptor localizado en la Tierra calcular exactamente su propia posición, empleando en principio solo tres satélites.

Algoritmos de sincronización de relojes

Si una maquina tiene un receptor WWV, el objetivo es mantener todas las demás maquinas sincronizadas con tal receptor. Si ninguna maquina tiene un receptor WWV, cada máquina da seguimiento a su propio tiempo, y el objetivo es mantenerlas juntas en tanto sea posible. Se han propuesto muchos algoritmos para realizar esta sincronización.

Si dos relojes parten del UTC en la dirección opuesta, en un tiempo Dt después de ser sincronizados pueden estar, cuando mucho, a 2p ∆t de diferencia. Si los diseñadores del sistema operativo quieren garantizar que dos relojes nunca difieran por mas de δ, los relojes deben ser sincronizados nuevamente (en el software) al menos cada δ/2p segundos. Los diversos algoritmos difieren precisamente en como se lleva a cabo esta sincronización.

Protocolo de tiempo de red

Un método común en muchos protocolos es dejar a los clientes contactar a un servidor de tiempo. El ultimo puede proporcionar exactamente el tiempo actual, por ejemplo, debido a que está equipado con un receptor WWV o un reloj exacto. Por supuesto, el problema cuando se contacta al servidor es que los retrasos del mensaje ocasionaran que el tiempo reportado no este actualizado. El truco reside en encontrar una buena estimación para estos retrasos.

El caso del protocolo de tiempo de red (NTP, por sus siglas en ingles), este se configura en pares entre servidores. En otras palabras, B también sondeara a A en cuanto a su tiempo actual.

Al aplicar el NTP simétricamente debe, en principio, permitir también a B ajustar su reloj con el de A. sin embargo, si se sabe que el reloj de B es más exacto, entonces tal ajuste sería imprudente. Para resolver este problema, el NTP divide a los servidores en estratos. Un servidor con un reloj de referencia, tal como como receptor WWV o un reloj atómico, se conoce como servidor de estado 1 (se dice que el propio reloj opera en el estado 0). Cuando A contacte a B, solo ajustara su tiempo si su propio estrato es más alto que el de B. además, después de la sincronización, el estado de A será un nivel más alto que el de B.

Existen muchas características importantes del NTP, de las cuales una gran cantidad se relaciona con identificación y enmascaramiento de errores, pero también con ataques a la seguridad. Mills (1992) describe al NTP, y es reconocido por lograr una exactitud en el rango de 1 a 50 ms.

Algoritmo de Berkeley

En Berkeley UNIX el servidor de tiempo (de hecho un demonio de tiempo) es cativo, ya que cada cierto tiempo pregunta a cada máquina sobre la hora ahí registrada. Basado en las respuestas, calcula un tiempo promedio y les indica a todas las maquinas que adelanten o trasen sus relojes, según la nueva hora. Este método es conveniente

...

Descargar como (para miembros actualizados)  txt (25.1 Kb)  
Leer 15 páginas más »
Disponible sólo en Clubensayos.com