sistemas distribuidos
medida del tiempo y la coordinación en el tratamiento de los eventos o sucesos que se
producen en un sistema distribuido.
Sistemas
Distribuidos
1. Introducción
2. La Comunicación
3. Sistemas Operativos Distribuidos
4. Sincronización y Coordinación
Comenzaremos por examinar la noción de tiempo y veremoscómo se pueden
sincronizar los relojes de distintos ordenadores, de tal forma que todos tengan la misma
medida de cuándo se ha producido un cierto evento. Como veremos, muchas veces no
es necesario que todos los equipos del sistema tengan registrada la hora exacta en que
se produce cada evento, sino que simplemente es suficiente con tener los eventos
ordenados en el tiempo.
La segunda partedel capítulo está dedicado a la coordinación de procesos,
entendiendo por coordinación el hecho de ponerse de acuerdo entre varios procesos
para llevar a cabo alguna acción. Esta acción puede ser el conseguir el derecho a entrar
en una región crítica en exclusión mutua, o la elección de un proceso, entre un grupo de
procesos, que actúe como coordinador de las actividades del resto de losprocesos del
grupo. En último lugar comentaremos el consenso distribuido, con algoritmos de
coordinación tolerantes a fallos, viendo, como ejemplo, el problema de los generales
bizantinos.
1. Sincronización de Relojes
- Relojes físicos
- Relojes lógicos
2. Coordinación
- Exclusión mutua
- Elección de coordinador
- Consenso distribuido
Sistemas Distribuidos
Sistemas DistribuidosSincronización y Coordinación - 1
Sincronización y Coordinación - 1
Sincronización de Relojes
Sincronización
Hay que saber en qué
momento se produce cada
evento en un ordenador
Los Procesos Necesitan
Sincronizarse
Sistemas de Tiempo Real
Propósito General: make, Kerberos, backup, ...
Sistema
Centralizado
Un Reloj
Sistema
Distribuido
Múltiples
Relojes
UnaReferencia Horaria
Múltiples
Referencias
Horarias
Hora
Externa
2.145
2.150
Equipo A
2.144
cc prueba.c
prueba.o
2.155
Equipo B
2.143
edit prueba.c
La medida del tiempo es una cuestión muy importante en los sistemas distribuidos. En
los sistemas centralizados también lo es, pero no se le da importancia debido a que no
es ningún problema conseguir que todos los procesostengan una misma referencia: el
reloj compartido. En cambio en los sistemas distribuidos cada ordenador tiene su propio
reloj y, como veremos, no resulta fácil sincronizarlos.
Como hemos dicho, la medida del tiempo es muy importante, pues resulta normal tener
que saber a qué hora del día han sucedido los distintos eventos que se producen en un
ordenador. La precisión requerida en cada caso varía,siendo los sistemas de tiempo
real los que posiblemente requieren una mayor precisión. No obstante, incluso en
sistemas de propósito general se hace necesario el disponer de una sincronía horaria.
La herramienta make sirve como ejemplo claro de esta necesidad. Supongamos que
tenemos un programa compuesto por múltiples módulos que se están escribiendo y
actualizando por diversos programadoresdesde equipos distintos. En cualquier
momento, desde cualquier puesto, puede solicitarse la generación de un programa
ejecutable mediante el comando make. Pero ahora estamos en un entorno distribuido
con reparto de carga, de tal manera que la compilación de un fichero no tiene por qué
realizarse en la misma estación en la que se editó. El comando make comprueba que la
hora de un ficheroobjeto debe ser posterior a la del correspondiente fichero fuente, pues
de no ser así significa que no se ha actualizado el fichero objeto, y se genera la
compilación del fichero fuente. Pues bien, supongamos que un fichero compilado genera
un objeto con la hora 2144. Poco después el encargado de ese fichero fuente lo edita
con su hora local 2143 (obviamente, el equipo donde se edita va retrasado...
Regístrate para leer el documento completo.