Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Sistemas Distribuidos
Nombramiento
Sincronización
Exclusión Mutua
Replicación y Consistencia
23 de Julio de 2023
Tabla de contenidos
1. Nombramiento 1
1.1. Conceptos clave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Nombres planos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1. Multitransmision - Protocolo de Resolución de Direcciones . . . . . . 1
1.2.2. Forwarding Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3. Métodos Basados en el Origen . . . . . . . . . . . . . . . . . . . . . . 2
1.2.4. Tablas Hach Distribuidas . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.5. Árbol Jerárquico de Búsqueda . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Nombres estructurados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1. Implementación de la Resolución de Nombres - Iterativa . . . . . . . 4
1.3.2. Implementación de la Resolución de Nombres - Recursiva . . . . . . . 4
1.4. Nombres basados en atributos . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Sincronización 5
2.1. Sincronización de Reloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. Relojes fı́sicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2. Algoritmos de Sincronización de Relojes . . . . . . . . . . . . . . . . 5
2.2. Relojes Lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1. Relojes Lógicos de Lamport . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2. Relojes Vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Exclusión Mutua 8
3.1. Algoritmos de Exclusión Mutua . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1. Algoritmo Centralizado . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.2. Algoritmo Descentralizado . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.3. Algoritmo Distribuido . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.4. Algoritmo de Anillo de Token . . . . . . . . . . . . . . . . . . . . . . 10
3.2. Algoritmos de Elección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1. Algoritmos del Abuson . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2
3.2.2. Algoritmo de Anillo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.3. Elección en Ambiente Inalámbrico (WAN) . . . . . . . . . . . . . . . 11
3.2.4. Elección de Sistemas de Gran Escala . . . . . . . . . . . . . . . . . . 11
4. Replicación y Consistencia 12
4.0.1. Consistencia Continua . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.0.2. Ordenamiento Consistente de Operaciones . . . . . . . . . . . . . . . 13
4.0.3. Lecturas monotónicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.0.4. Escrituras monotónicas . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.0.5. Administracion de replicas . . . . . . . . . . . . . . . . . . . . . . . . 14
1. Nombramiento
Los nombres juegan un rol fundamental en los sistemas de cómputo para:
Compartir recursos.
Referenciar ubicaciones.
Entidad: Cualquier cosa dentro del sistema. Para ser operada requiere tener un punto
de acceso en una dirección determinada.
Identificador: Hace referencia a una entidad como máximo. Cada entidad es referen-
ciada por al menos un identificador. (En general, son cadenas de bits)
Muchas veces, los identificadores son simplemente cadenas aleatorias de bits, a las
cuales nos referimos convenientemente como nombres planos o no estructurados. Estos, no
referencian la ubicación del punto de acceso del recurso.
Se requiere resolver un identificador hacia la dirección de su entidad
asociada. ¿Soluciones?
1
Problemas:
Cada vez que una entidad se mueve, deja un puntero indicado dónde se ha movido.
Cuando una entidad se mueve de A a B, deja en A una referencia de su nueva ubicación en
B.
Problemas:
Mantiene el registro de la ubicación actual de una entidad. Cada vez que una
entidad se mueve hacia otra asignación, le informa al origen donde se encuentra. La ubicación
de una entidad se lleva a cabo preguntando primero a su origen por la ubicación actual.
Problemas:
2
1.2.5. Árbol Jerárquico de Búsqueda
La red esta dividida en una colección de dominios. Existe un solo dominio de nivel
superior que se expande por toda la red. Los dominios se pueden agrupar en dominios de
mayor nivel y se pueden dividir subdividir en subdominios mas pequeños. El nodo de nivel
superior (raı́z), sabe acerca de todas las entidades.
Si se desea realizar una petición de búsqueda, se debe enviar la petición a los
dominios superiores hasta encontrar un puntero al dominio buscado. Para actualizar la in-
formación de una entidad E, se debe actualizar la información en todos los dominios que
contengan referencias a dicha entidad.
Los nombres planos no son muy convenientes para las personas. Como alternativa,
se tienen los nombres estructurados que están compuestos de nombres sencillos y legibles.
Se organizan fácilmente dentro de un espacio de nombre, comúnmente represen-
tado por un grafo dirigido con dos tipos de nodos: directorios y hojas.
Nodo directorio: Contiene aristas que salen de dicho nodo, cada una con su respectivo
nombre. (Almacena una tabla de directorio)
3
Capa global: Formada por los nodos de alto nivel. Frecuentemente son estables,
es decir, las tablas de directorio rara vez de modifican.
Capa de administración: Esta formada por los nodos directorio que son admi-
nistrados juntos dentro de una sola organización.
Capa de dirección: Consta de nodos que pudieran modificarse de manera regu-
lar.
4
2. Sincronización
Se asume que cada maquina tiene un cronometro que ocasiona una interrupción H
veces por segundo. Cuando el cronometro se apaga, el manipulador de interrupciones agrega 1
al reloj del software. Con esto, se tiene la cantidad de marcas desde un momento determinado.
Dado que cada reloj tiene sus propios tiempos, se definen distorsiones máximas que pueden
existir en consideración del tiempo UTC.
5
Algoritmo de Cristian: Propone que los clientes se conectan con un servidor que
tiene el tiempo exacto. El problema reside en que existen retrasos de mensaje que ocasionaran
que el tiempo reportado no este actualizado. El truco esta en estimar los retrasos de la mejor
forma. Para esto, se miden los tiempos de propagación de los mensajes y se ajusta el reloj
respecto a la estimación generada y el tiempo obtenido desde el servidor.
Algortimo de Berkeley: En este algoritmo, el servidor del tiempo no es pasivo.
Se cuenta con una daemon desde el servidor del tiempo que pregunta cada ciertos intervalos
el tiempo actual de cada sistema. Basado en las respuestas, calcula un tiempo promedio y le
indica a las maquinas que adelanten o retrasen su relojes.
Network Time Protocol: Esta generado para proveer servicios de tiempo en
Internet. Utiliza un sistema de estratos de reloj, donde los sistemas de estrato 1 están coor-
dinados con un reloj externo. Los sistemas de estrato 2 derivan su tiempo de uno o mas de
los sistemas de estrato 1 y ası́ sucesivamente.
Se calculan los tiempo de propagación aplicando el concepto de dispersión respecto
al servidor que se solicita la hora. Posterior a eso, se aplica una fase para la modificación de
la frecuencia de los relojes en base a la diferencia calculada.
6
Útil para cuando se necesita una transmisión totalmente ordenada, es decir, una
operación de transmisión mediante la cual todos los mensajes se entreguen en el mismo orden
a cada destinatario.
En los relojes lógicos de Lamport como solo se conocen los tiempos locales, nada
dice sobre la relación de los eventos a y b. No se puede establecer que si C(a) ≤ C(b) entonces
necesariamente a ocurrió antes de b. Problema: no capturan la causalidad.
Un reloj vectorial, VC(a), asignado a un evento a, tiene la propiedad que si VC(a)
¡VC(b), para algún evento b, entonces se sabe que el evento a precede en causalidad al evento
b. Los relojes vectoriales se construyen de manera que cada proceso Pi mantenga un vector
V Ci con las siguientes propiedades:
Por lo tanto, este tipo de reloj permite tener una causalidad de los eventos. Si no
se puede establecer una relación entre VC(a) y VC(b) entonces quiere decir que son eventos
concurrentes. Con esto, se puede generar una transmisión causalmente ordenada.
7
3. Exclusión Mutua
Para evitar la corrupción y asegurar la consistencia, se necesita encontrar solucio-
nes que garanticen que los procesos tengan acceso mutuamente exclusivo.
Los algoritmos de exclusión mutua se dividen en dos grandes categorı́as:
Ventajas
Desventajas
8
3.1.2. Algoritmo Descentralizado
Consideraciones
Requiere un reordena miento total de los eventos del sistema, lo cual se puede
lograr con relojes lógicos de Lamport. Cuando un proceso desea acceder a un recurso com-
partido, elabora un mensaje que contiene el nombre del recurso, su numero de proceso y
el tiempo actual. Tras generar el mensaje, envı́a dicho mensaje a todos los demás procesos,
incluyéndose de manera conceptual. Cuando un proceso recibe un mensaje de petición de
otro proceso, toma acción dependiendo de su propio estado respecto al recurso mencionado
en el mensaje.
Se distinguen 3 casos:
3. Si el receptor también quiere acceder al recurso, compara el tiempo del mensaje entrante
respecto al suyo. El mejor gana. Si el mensaje entrante es menor, el receptor entrega un
mensaje OK. Si su propio registro es menor, el destinatario encola el mensaje entrante
y no envı́a nada.
Consideraciones
9
• No existe un único punto de fallo.
Problemas
Muchos de los algoritmos de elección requieren un proceso que actúe como coor-
dinador. Supondremos que cada proceso tiene un identificador y los algoritmos intentaran
seleccionar el proceso con mayor id. Los procesos conocen el id del resto y se busca que todos
los procesos sepan cual es el coordinador al terminar el proceso de elección.
10
cada paso del mensaje, el remitente agrega el id de su proceso hasta llegar al proceso que
inicio la elección. Una vez llega el mensaje al proceso que inicio la elección, envı́a un mensaje
por el anillo con el Coordinador informando cual es el nuevo coordinador y los miembros del
nuevo anillo.
Para elegir un lı́der, cualquier nodo de la red puede iniciar una elección enviando
un mensaje de elección a sus vecinos inmediatos. Cuando un nodo recibe el mensaje de
elección, designa al remitente como su padre y posteriormente envı́a un mensaje de elección
a sus vecinos inmediatos a excepción del padre. Cuando un nodo recibe un mensaje de otro
nodo que no sea su padre, simplemente acusa recibo.
Hay situaciones en que se debe seleccionar varios nodos, como el caso de los super
peers.
Requerimientos
• Los nodos normales deben tener acceso de baja latencia a los super peers.
11
4. Replicación y Consistencia
En general, los datos se replican para incrementar la confiabilidad o mejorar el
rendimiento del sistema. A tener en cuenta la consistencia.
Replicación: Ayuda además a realizar una mejor protección contra datos co-
rruptos. También, cuando el sistema necesita escalar en numero de solicitudes que puede
responder y en área geográfica, se puede mejorar el rendimiento replicando el servidor y,
posteriormente, dividiendo el trabajo. El costo tras la replicación es la consistencia.
El como y cuando sincronizar las replicas, para mantener una consis-
tencia entre las copias, es tema de interés y análisis.
Considera un método general para diferenciar tres ejes independientes para defi-
nir inconsistencias: desviación en valores numéricos entre replicas (datos tienen semánticas
numéricas), desviación en el deterioro entre replicas y desviación con respecto al ordenamien-
to de operaciones de actualización.
Para algunas aplicaciones, es tolerable que una replica proporcione datos viejos
siempre y cuando no sean demasiado viejos. Tambien existen aplicaciones en que se permite
el ordenamiento de actualizaciones sea diferente en varias replicas, siempre que las diferencias
sean limitadas.
Conit: unidad con la que se medirá con la consistencia.
Granularidad fina, replicas en inconsistencia rápidamente. Granularidad gruesa,
implica sobrecarga al sistema y una baja del rendimiento total.
12
4.0.2. Ordenamiento Consistente de Operaciones
13
4.0.5. Administracion de replicas
La ubicación de servidores y replicas tiene que ver con encontrar los mejores
lugares para colocar un servidor que pueda hospedar un almacén de datos. (Es mas una
decision economica)
La ubicación de contenido se relaciona con encontrar a los mejores servidores para
colocar el contenido.
Replicas permanentes: se considera como el conjunto inicial de replicas que
constituyen un almacén de datos. Son un numero pequeño de replicas pequeñas.
Replicas iniciadas por servidores: Replicas iniciadas por los servidores acorde
a las necesidades del sistema.
Replica iniciada por el cliente: Se generan mediante los sistemas de caché.
14