Menú Principal
Sincronización de relojes
Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeño y de la consistencia de los datos, además de mantener seguras todas estas operaciones .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. La sincronización de procesos en los sistemas distribuidos resulta más compleja que en los centralizados, debido a que la información y el procesamiento se mantienen en diferentes nodos. Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos y de cómputo. Tales vistas pueden ser provistas por los mecanismos de sincronización. El término sincronización se define como la forma de forzar un orden parcial o total en cualquier conjunto de eventos, y es usado para hacer referencia a tres problemas distintos pero relacionados entre sí:
1. La sincronización entre el emisor y el receptor.
2. La especificación y control de la actividad común entre procesos cooperativos.
3. La serialización de accesos concurrentes a objetos compartidos por múltiples procesos.
Sincronización de relojes
Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeño y de la consistencia de los datos, además de mantener seguras todas estas operaciones .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. La sincronización de procesos en los sistemas distribuidos resulta más compleja que en los centralizados, debido a que la información y el procesamiento se mantienen en diferentes nodos. Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos y de cómputo. Tales vistas pueden ser provistas por los mecanismos de sincronización. El término sincronización se define como la forma de forzar un orden parcial o total en cualquier conjunto de eventos, y es usado para hacer referencia a tres problemas distintos pero relacionados entre sí:
1. La sincronización entre el emisor y el receptor.
2. La especificación y control de la actividad común entre procesos cooperativos.
3. La serialización de accesos concurrentes a objetos compartidos por múltiples procesos.
Los relojes lógicos son aquellos por los
cuales están ordenados los sucesos de una forma única. Para poder usar en
general el tiempo físico se debe sincronizar perfectamente bien los relojes a
lo largo de un sistema distribuido para poder así obtener el orden de cualquier
par arbitrario de sucesos que ocurran en él, pero es poco probable que esto
ocurra por que no se puede sincronizar perfectamente los relojes a lo largo de
un sistema distribuido. Se puede utilizar un esquema que similar a la
casualidad física, que se aplica en los sistemas distribuidos, para controlar
el orden de algunos sucesos que ocurren en diversos procesos. La cual está
basada en dos puntos sencillos y obvios. Cuando se envía un mensaje entre
procesos, el suceso de enviar el mensaje ocurrió antes del de recepción del
mismo. Lamport llamo a la ordenación obtenida al generalizar estas dos
relaciones la realización suceder antes.
•El interés en las aplicaciones distribuidas, no necesariamente es el tiempo exacto, sino la secuencia en que ocurren los eventos. Así, se pueden manejar relojes lógicos, en lugar de relojes físicos.
•Reloj lógico: contador de software que se incrementa monótonamente, cuyo valor no necesita estar relacionado con ningún reloj físico.
•Generalmente se asocia a cada proceso un reloj lógico.
•El interés en las aplicaciones distribuidas, no necesariamente es el tiempo exacto, sino la secuencia en que ocurren los eventos. Así, se pueden manejar relojes lógicos, en lugar de relojes físicos.
•Reloj lógico: contador de software que se incrementa monótonamente, cuyo valor no necesita estar relacionado con ningún reloj físico.
•Generalmente se asocia a cada proceso un reloj lógico.
RELOJES
FÍSICOS
Los relojes físicos son relojes que: Deben ser
iguales (estar sincronizados).
No deben desviarse del tiempo real más allá de cierta magnitud. En ciertos sistemas es importante la hora real del reloj:
No deben desviarse del tiempo real más allá de cierta magnitud. En ciertos sistemas es importante la hora real del reloj:
Se
precisan relojes físicos externos (más de uno).
Algoritmos
para la sincronización de relojes
• Algoritmo de Cristhian: Es el
más sencillo consiste en utilizar un servidor de reloj y medir los tiempos de
latencia, dichos tiempos se consideran en el tiempo formal, este algoritmo se
basa en que el ordenador cliente envía un mensaje al servidor de tiempo
preguntándole la hora actual y cuando el cliente recibe el mensaje de respuesta
debe actualizar su reloj
• Algoritmo de Berkeley: Este algoritmo sugiere que se coordinen todos los relojes de los nodos en un tiempo t en específico. En este algoritmo se elige un coordinador para que actué como maestro y este se va a encargar de preguntar a todas las estaciones o esclavos su hora y una vez obtenida la respuesta calcula un tiempo promedio y actualiza las horas de los esclavos.
• Algoritmo de Berkeley: Este algoritmo sugiere que se coordinen todos los relojes de los nodos en un tiempo t en específico. En este algoritmo se elige un coordinador para que actué como maestro y este se va a encargar de preguntar a todas las estaciones o esclavos su hora y una vez obtenida la respuesta calcula un tiempo promedio y actualiza las horas de los esclavos.
USO DE RELOJES SINCRONIZADOS: Hasta hace poco, se dispone del hardware y software necesarios para la sincronización de relojes a gran escala (es decir, en todo Internet).
EXCLUSIÓN MUTUA
• Los sistemas con varios procesos se programan más fácilmente mediante las regiones críticas.
• Cuando un proceso debe leer o actualizar ciertas estructuras de datos compartidas, primero entra a una región crítica para lograr la exclusión mutua y garantizar que ningún otro proceso utilice las estructuras de datos al mismo tiempo.
• En los sistemas con un solo procesador, las regiones críticas se protegen mediante semáforos, monitores y construcciones similares.
Para mas:
http://geneura.ugr.es/~gustavo/aco/teoria/exclusion/exclusion.pdf
• Cuando un proceso debe leer o actualizar ciertas estructuras de datos compartidas, primero entra a una región crítica para lograr la exclusión mutua y garantizar que ningún otro proceso utilice las estructuras de datos al mismo tiempo.
• En los sistemas con un solo procesador, las regiones críticas se protegen mediante semáforos, monitores y construcciones similares.
Para mas:
http://geneura.ugr.es/~gustavo/aco/teoria/exclusion/exclusion.pdf
ALGORITMOS DE ELECCIÓN.
Muchos de los algoritmos distribuidos
necesitan que uno de los procesos que interviene en ellos, actúe como el
coordinador, iniciador, secuenciador o que desempeñe en cierta forma un papel especial. El objetivo de los algoritmos de elección es garantizar que al iniciar una elección, ésta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador.
• Por ejemplo en el coordinador del algoritmo centralizado.
• No importa cuál de todos los procesos que intervienen sea el que sea el que asuma esta responsabilidad, uno de ellos debe de hacerlo.
Algoritmos basados en paso de mensajes:
En estos algoritmos, se comparte un token único entre todos los nodos. Se permite que un nodo entre a la SC si posee al token. Este tipo de algoritmos utilizan números de secuencia en lugar de marcas de tiempo. Cada petición del token contiene un número de secuencia y el número de secuencia del resto de los nodos. Un nodo incrementa el contador de número de secuencia cada vez que realiza una petición para poseer al token. Una de las funciones principales de los número de secuencia, es distinguir entre peticiones viejas y nuevas. En segundo lugar, la forma en que se asegura la exclusión mutua debido a que mientras un nodo posea al token, ningún otro nodo podrá entrar a la SC.
En estos algoritmos, se comparte un token único entre todos los nodos. Se permite que un nodo entre a la SC si posee al token. Este tipo de algoritmos utilizan números de secuencia en lugar de marcas de tiempo. Cada petición del token contiene un número de secuencia y el número de secuencia del resto de los nodos. Un nodo incrementa el contador de número de secuencia cada vez que realiza una petición para poseer al token. Una de las funciones principales de los número de secuencia, es distinguir entre peticiones viejas y nuevas. En segundo lugar, la forma en que se asegura la exclusión mutua debido a que mientras un nodo posea al token, ningún otro nodo podrá entrar a la SC.
Algoritmos no basados en paso de mensajes:
Estos algoritmos requieren dos o más rondas sucesivas de mensajes entre los nodos. Se basan en una aseveración porque un nodo puede entrar a su sección crítica de procesamiento (SC) cuando una aseveración en sus variables se vuelve verdadera. Se forza la exclusión mutua porque la aseveración es verdadera en un solo nodo en un determinado momento.
Bloqueos en Sistemas Distribuidos
Son peores que los bloqueos en sistemas
monoprocesador: Son más difíciles de evitar, prevenir, detectar y
solucionar. Toda la información relevante está dispersa en
muchas máquinas. Son especialmente críticos en sistemas de bases de
datos distribuidos. Las estrategias usuales para el manejo de los
bloqueos son:
Algoritmo del avestruz:
· Ignorar
el problema.
· Detección:
Permitir que ocurran los bloqueos, detectarlos e intentar recuperarse de
ellos.
· Prevención:
Hacer que los bloqueos sean imposibles desde el punto de vista estructural.
· Evitarlos:
Evitar los bloqueos mediante la asignación cuidadosa de los recursos.
El algoritmo del avestruz merece las mismas
consideraciones que en el caso de mono-procesador. En los sistemas distribuidos
resulta muy difícil implantar algoritmos para evitar los bloqueos:
· Se
requiere saber de antemano la proporción de cada recurso que necesitará cada
proceso.
· Es
muy difícil disponer de esta información en forma práctica.
Las técnicas más aplicables para el análisis de
los bloqueos en sistemas distribuidos son:
- Detección.
- Prevención
Videos
No hay comentarios:
Publicar un comentario