La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Algoritmos de Control Características y ejemplos.

Presentaciones similares


Presentación del tema: "1 Algoritmos de Control Características y ejemplos."— Transcripción de la presentación:

1 1 Algoritmos de Control Características y ejemplos

2 2 Algoritmos Distribuidos Definición: abstracción lógica de un sistema distribuido, se habla de un conjunto de procesos y de líneas de comunicación virtuales Definición: abstracción lógica de un sistema distribuido, se habla de un conjunto de procesos y de líneas de comunicación virtuales Tipos: Tipos: de aplicación de aplicación de control de control

3 3 Algoritmos distribuidos aplicación Son los algoritmos que definen una aplicación Son los algoritmos que definen una aplicación Representan la interfaz final entre los usuarios y el sistema distribuido Representan la interfaz final entre los usuarios y el sistema distribuido Se apoyan en arquitecturas de software como: Se apoyan en arquitecturas de software como: CORBA: Common Object Request Broker Architecture CORBA: Common Object Request Broker Architecture COM: Component Object Model COM: Component Object Model EJB: Enterprise JavaBeans EJB: Enterprise JavaBeans

4 4 Algoritmos distribuidos control Estan por abajo de las aplicaciones Estan por abajo de las aplicaciones Proporcionan dos tipos de servicios Proporcionan dos tipos de servicios Proveedor de primitivas Proveedor de primitivas exclusión mutua exclusión mutua envío/recepción mensajes envío/recepción mensajes control de concurrencia control de concurrencia administración de archivos administración de archivos Observadores de propiedades Observadores de propiedades interbloqueo interbloqueo terminación de la ejecución terminación de la ejecución recolectores de basura recolectores de basura

5 5 Algoritmos de aplicación y control Medio de soporte de comunicaciones A1A1 CTL 1 A2A2 CTL 2 AiAi CTL i AnAn CTL n..... CTL i : control de la i-ésima aplicación A i : aplicación

6 6 Algunos algoritmos distribuidos de control Algoritmo exclusión mutua de Le Lann Algoritmo exclusión mutua de Le Lann Algoritmo elección de Chang-Roberts Algoritmo elección de Chang-Roberts Algoritmo de ruteo de Chandy Misra Algoritmo de ruteo de Chandy Misra Algoritmo de ruteo de tablas compactas Algoritmo de ruteo de tablas compactas El ruteo por intervalos El ruteo por intervalos

7 7 La exclusión mutua Exclusión mutua: asegurar que solo un proceso tiene acceso a un recurso compartido por varios procesos en un momento dado Exclusión mutua: asegurar que solo un proceso tiene acceso a un recurso compartido por varios procesos en un momento dado Sección crítica: parte del código donde el procesos utiliza el recurso compartido Sección crítica: parte del código donde el procesos utiliza el recurso compartido Los procesos no comparten memoria en común Los procesos no comparten memoria en común Los procesos se comunican a través de mensajes Los procesos se comunican a través de mensajes

8 8 Algoritmos Exclusión Mutua El algoritmo de LeLann El algoritmo de LeLann El algoritmo de LeLann tolerante a fallas El algoritmo de LeLann tolerante a fallas El algoritmo de Ricart y Agrawala El algoritmo de Ricart y Agrawala El algoritmo de Misra El algoritmo de Misra

9 9 El algoritmo de LeLann Se hace circular una ficha Se hace circular una ficha El proceso que tiene la ficha esta en S.C. El proceso que tiene la ficha esta en S.C. El algoritmo es el siguiente El algoritmo es el siguiente esperar [ficha] de Pi-1 enviar [ficha] a Pi+1

10 10 La elección En algunos algoritmos es necesario un proceso coordinador En algunos algoritmos es necesario un proceso coordinador Si el proceso coordinador cae, es necesario que los procesos que queden elijan a uno de entre ellos Si el proceso coordinador cae, es necesario que los procesos que queden elijan a uno de entre ellos Hipótesis general: cada proceso posee una identidad distinta de los otros, la cual usualmente es representada por un número Hipótesis general: cada proceso posee una identidad distinta de los otros, la cual usualmente es representada por un número La elección se realiza de acuerdo a dicha identidad La elección se realiza de acuerdo a dicha identidad

11 11 Algoritmos elección Algoritmo de LeLann Algoritmo de LeLann Algoritmo de Chang & Roberts Algoritmo de Chang & Roberts Algoritmo de Hirschberg y Sinclair Algoritmo de Hirschberg y Sinclair Algoritmo Bulley (abusador) Algoritmo Bulley (abusador) Algoritmo de Dolev, Klawe y Rodeh Algoritmo de Dolev, Klawe y Rodeh

12 12 Algoritmo Chang & Roberts Procesos agrupados en anillo unidireccional Procesos agrupados en anillo unidireccional Cada proceso tiene un identificador único Cada proceso tiene un identificador único Se conoce el número total de procesos Se conoce el número total de procesos Principio: Principio: Cada proceso Pi envía su número a su vecino izquierdo Pj, Cada proceso Pi envía su número a su vecino izquierdo Pj, Cuando Pj recibe el mensaje compara el número con el suyo u envía el mejor a su vecino izquierdo Cuando Pj recibe el mensaje compara el número con el suyo u envía el mejor a su vecino izquierdo Proceso que recibe mensaje con su número sabe que su número ha dado la vuelta y es el elegido Proceso que recibe mensaje con su número sabe que su número ha dado la vuelta y es el elegido

13 13 Código: variables, mensajes y procedimientos Cada proceso cuenta con las variables siguientes: Cada proceso cuenta con las variables siguientes: ego id_proc;identificador del proceso ego id_proc;identificador del proceso participa booleano;inicializado en falso participa booleano;inicializado en falso coordinador id_proc;identificador del ganador coordinador id_proc;identificador del ganador Se tienen dos tipos de mensajes: Se tienen dos tipos de mensajes: [elección, x]: x es candidato a la elección [elección, x]: x es candidato a la elección [elegido, x]: x ganó la elección [elegido, x]: x ganó la elección Primitiva de comunicación: Primitiva de comunicación: env-vi[x]: envía mensaje x al vecino izquierdo del proceso emisor env-vi[x]: envía mensaje x al vecino izquierdo del proceso emisor

14 14 Código algoritmo inicio del algoritmo decisión provocar una elección participa := verdadero; env-vi [elección, ego] fin-decisión

15 15 Código algoritmo recepción mensaje recepción_mensaje [elección, j] caso si (j > ego) entonces env-vi [elección, j] participa := verdadero si (j = ego) entonces env-vi [elección, j] si (j < ego) y (~ participa) ) entonces env-vi [elección, ego]; participa := verdadero; fin-caso fin-recepción_mensaje

16 16 Código algoritmo notificación ganador recepción_mensaje [elegido, j] coordinador:= j; participante := falso; si (j ego) entonces env-vi [elegido, j]; fsi fin recepcion_mensaje;

17 17 El ruteo Definición: termino usado para describir el proceso a través del cual un proceso selecciona uno (o algunas veces más) de sus vecinos para que le de seguimiento a un paquete en su camino a un último destino. Definición: termino usado para describir el proceso a través del cual un proceso selecciona uno (o algunas veces más) de sus vecinos para que le de seguimiento a un paquete en su camino a un último destino. Objetivo: generar (para cada proceso) un procedimiento de toma de decisiones para realizar esta función y garantizar la entrega de cada paquete Objetivo: generar (para cada proceso) un procedimiento de toma de decisiones para realizar esta función y garantizar la entrega de cada paquete Eficiencia: existen diferentes parámetros para medir un algoritmo de ruteo: Eficiencia: existen diferentes parámetros para medir un algoritmo de ruteo: número de saltos número de saltos ruta mínima ruta mínima retardo mínimo retardo mínimo

18 18 Criterios de definición de algoritmos de ruteo Exactitud Exactitud Complejidad Complejidad Eficiencia Eficiencia Resistencia Resistencia Adaptabilidad Adaptabilidad Equidad Equidad

19 19 Algoritmos de ruteo Algoritmo de Chandy y Misra Algoritmo de Chandy y Misra Algoritmo de Toueg Algoritmo de Toueg Algoritmo de tablas compactas Algoritmo de tablas compactas Algoritmo por intervalos Algoritmo por intervalos

20 20 Algoritmo Chandy Misra Considera un grafo G = (V,E), donde V es el conjunto de vértices (procesos) y E el de aristas Considera un grafo G = (V,E), donde V es el conjunto de vértices (procesos) y E el de aristas Calcula la distancia mínima entre un vértice (V1) y el resto de los vértices del grafo Calcula la distancia mínima entre un vértice (V1) y el resto de los vértices del grafo Son aristas dirigidas Son aristas dirigidas Cada arista tiene asociado un costo Cada arista tiene asociado un costo El costo puede ser negativo, por lo que es posible que exista un ciclo de longitud total negativa, (llamado ciclo negativo) El costo puede ser negativo, por lo que es posible que exista un ciclo de longitud total negativa, (llamado ciclo negativo) Solo se tratara el caso de aristas con costos positivos Solo se tratara el caso de aristas con costos positivos

21 21 Variables y mensajes Cada procesos Pi cuenta con las variables siguientes: Cada procesos Pi cuenta con las variables siguientes: w jk entero; costo arista entre v j y v k w jk entero; costo arista entre v j y v k v 1, v i id_proc;identificadores proceso inicial y actual v 1, v i id_proc;identificadores proceso inicial y actual predid_porc;identificador predecesor proceso predid_porc;identificador predecesor proceso dentero;longitud más corta entre v 1 y v i (inicializado en ) dentero;longitud más corta entre v 1 y v i (inicializado en ) numentero;número mensajes que se han enviado y no se ha recibido un acuse de recibo numentero;número mensajes que se han enviado y no se ha recibido un acuse de recibo Se tienen dos tipos de mensajes: Se tienen dos tipos de mensajes: [s,x]: s es la distancia entre v 1 y v i, y x es el penúltimo vértice de la cadena de procesos entre v 1 y v i. [s,x]: s es la distancia entre v 1 y v i, y x es el penúltimo vértice de la cadena de procesos entre v 1 y v i. [ack]: proceso p j envía un ack a p i en respuesta a un mensaje [s,x] [ack]: proceso p j envía un ack a p i en respuesta a un mensaje [s,x]

22 22 Código algoritmo inicialización y recepción mensaje [s,x] en p 1 inicialización d:=0; pred:= indefinido; enviar [w 1k, p 1 ] a (todos los sucesores de p 1 ) fin-inicialización recepción_mensaje [s,p i ] si (s < 0) sino enviar [ack] a p i fin-recepción_mensaje

23 23 Código algoritmo recepción acuses de recibo en p 1 recepción_mensaje [ack] num:=num-1; si (num = 0) entonces fsi fin-recepción_mensaje recepción_mensaje [ack] del proceso p k num:=num+1; si (num = 0) entonces enviar [ack] a pred; fsi fin-recepcion_mensaje

24 24 Código algoritmo inicialización de todos procesos, salvo p 1 inicialización_procesos pj (j 1) /* No se ha recibido ningún mensaje, no hay mensajes de ack */ d = ; pred = indefinido; num=0; fin inicialización_procesos

25 25 Código algoritmo recepción mensaje en proceso p j recepción_mensaje [s,p i ] si (s < d) entonces: si (num > 0) entonces enviar [ ack ] a pred; pred:=p i ; d:=s; enviar [d+w jk, p j ] a (todos sucesores de p j ) num:=num+ (numero sucesores de p j ) si (num = 0) entonces enviar [ack] a pred; sino /* mensaje no representa una mejoría */ enviar [ack] a pred; fin-recepcion_mensaje

26 26 Ejemplo ejecución p1p1 p2p2 p5p5 p4p4 p3p3 p6p

27 27 El ruteo con tablas compactas y por intervalos Nicolas Santoro, Ramez Khatib Labelling and Implicit Routing in Networks The computer Journal Vol. 28. No , pp. 5-8 Leeuwen, J, Van and Tan, R.B. Interval Routing ComputerJournal Vol , pp

28 28 Desventajas algoritmos clásicos: mantenimiento de una tabla de ruteo en cada sitio, constituida de una entrada para cada destino posible Posible mejoramiento: indexar las tablas de ruteo por los canales salientes, con la indicación de las destinaciones Ruteo con tablas compactas sobre un árbol

29 29 w2 w1 w4 u w3 dest. canal v 1 w 2 u - v j w 3 u N w 1 canal destinos w 1..., u N w 2 v 1,... w 3..., v j,... Tamaño tablas de ruteo

30 30 Método de ruteo basado en una numeración de sitios del 0 a N-1 Z => aritmética en Z N Definición. Z El intervalo cíclico [a,b) de Z N es el conjunto de enteros definido por [a,b) Nota: Si a < b el intervalo es lineal { Esquema de numeración de un árbol

31 31 Numeración de nodos Teorema: Los nodos de un árbol pueden estar numerados de tal forma que por cada canal saliente de cada nodo, el conjunto de los destinos que deben ser direccionadas por ese canal es un intervalo cíclico.

32 32 Esquema de ruteo Atribución de identidades a los sitios de la red: 1. Se construye un árbol sobre la red 2. Numeración de 0 a N-1 con la ayuda de un recorrido de árbol en profundidad en orden preestablecido Etiquetaje de los puertos de un nodo u: partición de Z N Los puertos serán etiquetados por: l w si w es un hijo de u uw = l u + | T[u] |si w es un padre de u {

33 33 w T[w] x l x = l w + T[w] - 1 lwlw w l w = l w + T[w] Vo l vo = 0 Enumeración a partir de un recorrido en preorden

34 34 ZNZN 0 a1a1 Destinos ruteados vía canal a 1 a2a2 aiai Destinos ruteados vía canal a i a i+1 a deg La partición de Z N en un nodo

35 35 Protocolo de ruteo El ruteo debe de respetar el protocolo siguiente: Ruteo por intevalo (para el nodo u) Un paquete con destino d es recibido o generado en el nodo u si ( d = l u ) entonces entregar el paquete localmente sino fsi

36 36 Ruteo por intervalos: red arbitraria Definición y construcción Principio: Extensión del esquema de numeración de árbol a una red cualquiera Ventaja: Cada arista es utilizada para la transportación de los paquetes y/o mensajes. Nomenclatura: ILS se utilizará para referirse a un esquema de ruteo por intervalos

37 37 Definición esquema numeración Un esquema de etiquetaje de tipo ILS de Z N para una red esta definido como: 1. una asignación de diferentes identificadores de Z N a los sitios de la red y 2. para cada sitio una asignación de diferentes números de Z N a los canales de cada sitio El ruteo por intervalos considera que un ILS es conocido y la retransmisión de paquetes se efectúa según el algoritmo de Santoro y Khatib.

38 38 Validación del esquema de numeración Un esquema de numeración de tipo ILS es válido si todos los paquetes retransmitidos por esa vía alcanzan su destino -> existencia para todo tipo de red -> problema de eficiencia Teorema Existe para cada red G, un esquema de numeración tipo ILS válido Este esquema puede construirse a partir de una extensión del esquema de numeración/etiquetaje de Santoro y Khatib, aplicado al árbol de expansión T de la red

39 39 Relación con árbol de expansión Definiciones: arista follaje: arista que no pertenece al árbol de expansión T. nodo ancestro: v es un ancestro de u si y solo si u pertenece a T[v]. Lema Existe un árbol de expansión tal que todas las aristas se encuentran entre un nodo y un ancestro de ese nodo Todo árbol obtenido por un recorrido en profundor tienen esa propiedad

40 40 Una búsqueda en profundor de tipo ILS para una red G (considerando el árbol T) es un esquema de numeración que debe de cumplir con las siguientes reglas: 1. Los identificadores de los sitios son calculados a partir de un recorrido en profundor de tipo prefijo en G, i.e. identificadores nodos del sub-árbol T[w] pertenecen a [l w, l w + | T[w] | ]. k w = l w + |T[w]|. 2. El canal uv, de un sitio u esta etiquetado de acuerdo a las siguientes reglas: (a) si uw es una arista follaje entonces uw = l w (b) si w es un hijo de u (en T) entonces uw = l w (c) si w es el padre de u entonces uw = k u a menos que ( k u = N ) y (u tenga una arista follaje hacia la raíz) (d) si w es el padre de u, u tiene una arista follaje hacia la raíz, y ( k u = N ) entonces uw = l w Reglas esquema de numeración

41 Aristas árbol Aristas follaje Ejemplo ancestros

42 42 Raíz: l=0 Ancestro: l < l v v T[v] l > l v l < l v Ruteando paquetes para v

43 43 Lema 1 Si (l u > l v ) entonces l w < l u Lema 2 se define una función, lca(u, v): el ancestro común más económico entre dos nodos u y v es el nodo en el árbol que es un ancestro de u y v f v (u) = ( -lca(u, v), l u ) Lema 3 Si (l u < l v ) entonces f v (w) < f v (u) Propiedades de numeración

44 44 Se puede asegurar que existe un ILS válido para cada red, pero esto no implica nada acerca de las rutas escogidas por el esquema. Para poder analizar la calidad del método de ruteo con respecto al número de etapas, (hops), se utilizarán las siguientes definiciones: 1. Un ILS es óptimo si rutea los paquetes por canales óptimos 2. Un ILS es vecinal si entrega un paquete de un sitio a uno de sus vecinos en una etapa, (hop). 3. Un ILS es lineal si el intervalo correspondiente a cada arista es lineal Se dice que un ILS es de tipo mínimo hop, si es óptimo con respecto al mínimo- hop, (o ruta mínima respectivamente), como medida de costo. Eficiencia del ruteo por intervalos ( caso general )

45 Otros algoritmos de control Algoritmos de detección de terminación Algoritmos de detección de terminación Algoritmos de detección de interbloqueo Algoritmos de detección de interbloqueo Algoritmos de cobertura de árbol (spanning- tree) Algoritmos de cobertura de árbol (spanning- tree) Algoritmos de recorrido de gráfos Algoritmos de recorrido de gráfos Algoritmos de flujo maximal Algoritmos de flujo maximal Algoritmos tolerantes a fallas Algoritmos tolerantes a fallas


Descargar ppt "1 Algoritmos de Control Características y ejemplos."

Presentaciones similares


Anuncios Google