45
1 Algoritmos de Algoritmos de Control Control Características y Características y ejemplos ejemplos

1 Algoritmos de Control Características y ejemplos

Embed Size (px)

Citation preview

Page 1: 1 Algoritmos de Control Características y ejemplos

11

Algoritmos de ControlAlgoritmos de Control

Características y ejemplosCaracterísticas y ejemplos

Page 2: 1 Algoritmos de Control Características y ejemplos

22

Algoritmos DistribuidosAlgoritmos Distribuidos

Definición: abstracción lógica de un sistema Definición: abstracción lógica de un sistema distribuido, se habla de un conjunto de distribuido, se habla de un conjunto de procesos y de líneas de comunicación virtualesprocesos y de líneas de comunicación virtuales

Tipos:Tipos: de aplicaciónde aplicación de controlde control

Page 3: 1 Algoritmos de Control Características y ejemplos

33

Algoritmos distribuidos aplicaciónAlgoritmos 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 Representan la interfaz final entre los usuarios y el

sistema distribuidosistema distribuido Se apoyan en arquitecturas de software como:Se apoyan en arquitecturas de software como:

CORBA: Common Object Request Broker ArchitectureCORBA: Common Object Request Broker Architecture COM: Component Object ModelCOM: Component Object Model EJB: Enterprise JavaBeansEJB: Enterprise JavaBeans

Page 4: 1 Algoritmos de Control Características y ejemplos

44

Algoritmos distribuidos controlAlgoritmos distribuidos control

Estan por abajo de las aplicacionesEstan por abajo de las aplicaciones Proporcionan dos tipos de serviciosProporcionan dos tipos de servicios

Proveedor de primitivasProveedor de primitivas exclusión mutuaexclusión mutua envío/recepción mensajesenvío/recepción mensajes control de concurrenciacontrol de concurrencia administración de archivosadministración de archivos

Observadores de propiedadesObservadores de propiedades interbloqueointerbloqueo terminación de la ejecuciónterminación de la ejecución recolectores de basurarecolectores de basura

Page 5: 1 Algoritmos de Control Características y ejemplos

55

Algoritmos de aplicación y controlAlgoritmos de aplicación y control

Medio de soporte de comunicaciones

A1

CTL1

A2

CTL2

Ai

CTLi

An

CTLn

.....

..... .....

....

.

CTLi :control de la i-ésima aplicaciónAi: aplicación

Page 6: 1 Algoritmos de Control Características y ejemplos

66

Algunos algoritmos distribuidos de Algunos algoritmos distribuidos de controlcontrol

Algoritmo exclusión mutua de Le LannAlgoritmo exclusión mutua de Le Lann Algoritmo elección de Chang-RobertsAlgoritmo elección de Chang-Roberts Algoritmo de ruteo de Chandy MisraAlgoritmo de ruteo de Chandy Misra Algoritmo de ruteo de tablas compactasAlgoritmo de ruteo de tablas compactas El ruteo por intervalosEl ruteo por intervalos

Page 7: 1 Algoritmos de Control Características y ejemplos

77

La exclusión mutuaLa exclusión mutua

Exclusión mutua:Exclusión mutua: asegurar que solo un proceso asegurar que solo un proceso tiene acceso a un recurso compartido por varios tiene acceso a un recurso compartido por varios procesos en un momento dadoprocesos en un momento dado

Sección crítica:Sección crítica: parte del código donde el parte del código donde el procesos utiliza el recurso compartidoprocesos utiliza el recurso compartido

Los procesos no comparten memoria en comúnLos procesos no comparten memoria en común Los procesos se comunican a través de mensajesLos procesos se comunican a través de mensajes

Page 8: 1 Algoritmos de Control Características y ejemplos

88

Algoritmos Exclusión MutuaAlgoritmos Exclusión Mutua

El algoritmo de LeLannEl algoritmo de LeLann El algoritmo de LeLann tolerante a fallasEl algoritmo de LeLann tolerante a fallas El algoritmo de Ricart y AgrawalaEl algoritmo de Ricart y Agrawala El algoritmo de MisraEl algoritmo de Misra

Page 9: 1 Algoritmos de Control Características y ejemplos

99

El algoritmo de LeLannEl algoritmo de LeLann

Se hace circular una fichaSe 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 siguienteEl algoritmo es el siguiente

esperar [ficha] de Pi-1<Código Sección Critica>

enviar [ficha] a Pi+1

Page 10: 1 Algoritmos de Control Características y ejemplos

1010

La elecciónLa elección

En algunos algoritmos es necesario un proceso En algunos algoritmos es necesario un proceso coordinadorcoordinador

Si el proceso coordinador cae, es necesario que los Si el proceso coordinador cae, es necesario que los procesos que queden elijan a uno de entre ellosprocesos que queden elijan a uno de entre ellos

Hipótesis general: cada proceso posee una identidad Hipótesis general: cada proceso posee una identidad distinta de los otros, la cual usualmente es representada distinta de los otros, la cual usualmente es representada por un númeropor un número

La elección se realiza de acuerdo a dicha identidadLa elección se realiza de acuerdo a dicha identidad

Page 11: 1 Algoritmos de Control Características y ejemplos

1111

Algoritmos elecciónAlgoritmos elección

Algoritmo de LeLannAlgoritmo de LeLann Algoritmo de Chang & RobertsAlgoritmo de Chang & Roberts Algoritmo de Hirschberg y SinclairAlgoritmo de Hirschberg y Sinclair Algoritmo Bulley (abusador)Algoritmo Bulley (abusador) Algoritmo de Dolev, Klawe y RodehAlgoritmo de Dolev, Klawe y Rodeh

Page 12: 1 Algoritmos de Control Características y ejemplos

1212

Algoritmo Chang & RobertsAlgoritmo Chang & Roberts Procesos agrupados en anillo unidireccionalProcesos agrupados en anillo unidireccional Cada proceso tiene un identificador únicoCada proceso tiene un identificador único Se conoce el número total de procesosSe conoce el número total de procesos Principio:Principio:

Cada proceso Pi envía su número a su vecino Cada proceso Pi envía su número a su vecino izquierdo Pj, izquierdo Pj,

Cuando Pj recibe el mensaje compara el número Cuando Pj recibe el mensaje compara el número con el suyo u envía el mejor a su vecino izquierdocon el suyo u envía el mejor a su vecino izquierdo

Proceso que recibe mensaje con su número sabe Proceso que recibe mensaje con su número sabe que su número ha dado la vuelta y es el elegidoque su número ha dado la vuelta y es el elegido

Page 13: 1 Algoritmos de Control Características y ejemplos

1313

Código: variables, mensajes y procedimientosCódigo: variables, mensajes y procedimientos

Cada proceso cuenta con las variables siguientes:Cada proceso cuenta con las variables siguientes: ego ego id_proc;id_proc; identificador del procesoidentificador del proceso participaparticipa booleano;booleano; inicializado en falsoinicializado en falso coordinador coordinador id_proc;id_proc; identificador del ganadoridentificador del ganador

Se tienen dos tipos de mensajes:Se tienen dos tipos de mensajes: [elección, x]: [elección, x]: x es candidato a la elecciónx es candidato a la elección [elegido, x]: [elegido, x]: x ganó la elecciónx ganó la elección

Primitiva de comunicación:Primitiva de comunicación: env-vi[x]env-vi[x]: envía mensaje x al vecino izquierdo del proceso emisor: envía mensaje x al vecino izquierdo del proceso emisor

Page 14: 1 Algoritmos de Control Características y ejemplos

1414

Código algoritmoCódigo algoritmo inicio del algoritmoinicio del algoritmo

decisión provocar una elección participa := verdadero; env-vi [elección, ego]fin-decisión

Page 15: 1 Algoritmos de Control Características y ejemplos

1515

Código algoritmo Código algoritmo recepción mensajerecepción mensaje

recepción_mensaje [elección, j] caso si (j > ego) entonces

env-vi [elección, j]participa := verdadero

si (j = ego) entoncesenv-vi [elección, j]

si (j < ego) y (~ participa) ) entoncesenv-vi [elección, ego];participa := verdadero;

fin-casofin-recepción_mensaje

Page 16: 1 Algoritmos de Control Características y ejemplos

1616

Código algoritmoCódigo algoritmo notificación ganadornotificación ganador

recepción_mensaje [elegido, j]coordinador:= j;participante := falso;si (j ego) entonces

env-vi [elegido, j];fsi

fin recepcion_mensaje;

Page 17: 1 Algoritmos de Control Características y ejemplos

1717

El ruteoEl ruteo Definición:Definición: termino usado para describir el proceso a través del termino usado para describir el proceso a través del

cual un proceso selecciona uno (o algunas veces más) de sus 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 vecinos para que le de seguimiento a un paquete en su camino a un último destino.un último destino.

Objetivo:Objetivo: generar (para cada proceso) un procedimiento de toma generar (para cada proceso) un procedimiento de toma de decisiones para realizar esta función y garantizar la entrega de de decisiones para realizar esta función y garantizar la entrega de cada paquetecada paquete

Eficiencia:Eficiencia: existen diferentes parámetros para medir un algoritmo existen diferentes parámetros para medir un algoritmo de ruteo:de ruteo: número de saltosnúmero de saltos ruta mínimaruta mínima retardo mínimoretardo mínimo

Page 18: 1 Algoritmos de Control Características y ejemplos

1818

Criterios de definición de algoritmos Criterios de definición de algoritmos de ruteode ruteo

ExactitudExactitud ComplejidadComplejidad EficienciaEficiencia ResistenciaResistencia AdaptabilidadAdaptabilidad EquidadEquidad

Page 19: 1 Algoritmos de Control Características y ejemplos

1919

Algoritmos de ruteoAlgoritmos de ruteo

Algoritmo de Chandy y MisraAlgoritmo de Chandy y Misra Algoritmo de TouegAlgoritmo de Toueg Algoritmo de tablas compactasAlgoritmo de tablas compactas Algoritmo por intervalosAlgoritmo por intervalos

Page 20: 1 Algoritmos de Control Características y ejemplos

2020

Algoritmo ChandyAlgoritmo Chandy MisraMisra

Considera un grafo G = (V,E), donde V es el conjunto Considera un grafo G = (V,E), donde V es el conjunto de vértices (procesos) y E el de aristasde vértices (procesos) y E el de aristas

Calcula la distancia mínima entre un vértice (V1) y el Calcula la distancia mínima entre un vértice (V1) y el resto de los vértices del graforesto de los vértices del grafo

Son aristas dirigidasSon aristas dirigidas Cada arista tiene asociado un costoCada arista tiene asociado un costo El costo puede ser negativo, por lo que es posible que El costo puede ser negativo, por lo que es posible que

exista un ciclo de longitud total negativa, (llamado exista un ciclo de longitud total negativa, (llamado ciclo negativo)ciclo negativo)

Solo se tratara el caso de aristas con costos positivosSolo se tratara el caso de aristas con costos positivos

Page 21: 1 Algoritmos de Control Características y ejemplos

2121

Variables y mensajesVariables y mensajes Cada procesos Pi cuenta con las variables siguientes:Cada procesos Pi cuenta con las variables siguientes:

wwjkjk entero; entero; costo arista entre vcosto arista entre vjj y v y vkk

vv11, v, vii id_proc;id_proc; identificadores proceso inicial y actualidentificadores proceso inicial y actual predpred id_porc;id_porc; identificador predecesor procesoidentificador predecesor proceso dd entero;entero; longitud más corta entre vlongitud más corta entre v11 y v y vii

(inicializado en )(inicializado en ) numnum entero;entero; número mensajes que se han enviado número mensajes que se han enviado

y no se ha recibido un acuse de reciboy no se ha recibido un acuse de recibo Se tienen dos tipos de mensajes:Se tienen dos tipos de mensajes:

[s,x][s,x]: : s s es la distancia entre ves la distancia entre v11 y v y vii, y , y xx es el penúltimo es el penúltimo

vértice de la cadena de procesos entre vvértice de la cadena de procesos entre v11 y v y vi.i.

[ack][ack]: proceso p: proceso pjj envía un ack a p envía un ack a pii en respuesta a un mensaje en respuesta a un mensaje

[s,x][s,x]

Page 22: 1 Algoritmos de Control Características y ejemplos

2222

Código algoritmoCódigo algoritmoinicialización y recepción mensaje [s,x] eninicialización y recepción mensaje [s,x] en pp11

inicialización d:=0;pred:= indefinido;enviar [w1k, p1] a (todos los sucesores de p1)

fin-inicialización

recepción_mensaje [s,pi] si (s < 0)

<ciclo negativo>sino

enviar [ack] a pi

fin-recepción_mensaje

Page 23: 1 Algoritmos de Control Características y ejemplos

2323

Código algoritmoCódigo algoritmorecepción acuses de recibo en precepción acuses de recibo en p11

recepción_mensaje [ack] num:=num-1;

si (num = 0) entonces<ciclo negativo>

fsifin-recepción_mensaje

recepción_mensaje [ack] del proceso pk

num:=num+1;si (num = 0) entonces

enviar [ack] a pred;fsi

fin-recepcion_mensaje

Page 24: 1 Algoritmos de Control Características y ejemplos

2424

Código algoritmoCódigo algoritmoinicialización de todos procesos, salvo pinicialización de todos procesos, salvo p11

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

Page 25: 1 Algoritmos de Control Características y ejemplos

2525

Código algoritmoCódigo algoritmorecepción mensaje en proceso precepción mensaje en proceso pjj

recepción_mensaje [s,pi] si (s < d) entonces:

si (num > 0) entoncesenviar [ ack ] a pred;

pred:=pi;d:=s;enviar [d+wjk, pj] a (todos sucesores de pj)num:=num+ (numero sucesores de pj)si (num = 0) entonces

enviar [ack] a pred;sino /* mensaje no representa una mejoría */

enviar [ack] a pred;fin-recepcion_mensaje

Page 26: 1 Algoritmos de Control Características y ejemplos

2626

Ejemplo ejecuciónEjemplo ejecución

p1

p2

p5

p4

p3

p6

3

5

4

2 6

4

2

Page 27: 1 Algoritmos de Control Características y ejemplos

2727

El ruteo con tablas compactasy por intervalos

Nicolas Santoro, Ramez Khatib Labelling and Implicit Routing in NetworksThe computer JournalVol. 28. No. 1 1985, pp. 5-8

Leeuwen, J, Van and Tan, R.B.Interval RoutingComputerJournalVol. 30 1987, pp. 298-307

Page 28: 1 Algoritmos de Control Características y ejemplos

2828

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

Page 29: 1 Algoritmos de Control Características y ejemplos

2929

w2

w1

w4

u

w3

dest. canal

v1 w2

u -

vj w3

uN w1

canal destinosw1 ... , uN

w2 v1, ...w3 ..., vj, ...

Tamaño tablas de ruteo

Page 30: 1 Algoritmos de Control Características y ejemplos

3030

Método de ruteo basado en una numeración de sitios del 0 a N-1=> aritmética en ZZN

Definición.El intervalo cíclico [a,b) de ZZN es el conjunto de enteros definido por

[a,b)

Nota:Si a < b el intervalo es lineal

{

Esquema de numeración de un árbol

{ , ,....., }a a b a < b

a b

1 1 si

{0,..., b -1,a,... N -1} si

[ , )a a

a b [a,b) [b,a)

N

para el complemento de es

Z

Page 31: 1 Algoritmos de Control Características y ejemplos

3131

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 destinosque deben ser direccionadas por ese canal es un intervalo cíclico.

Page 32: 1 Algoritmos de Control Características y ejemplos

3232

Esquema de ruteo

Atribución de identidades a los sitios de la red:1. Se construye un árbol sobre la red2. 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 ZN

Los puertos serán etiquetados por:

lw si w es un hijo de uuw =

lu + | T[u] | si w es un padre de u{

Page 33: 1 Algoritmos de Control Características y ejemplos

3333

w

T[w]

xlx = lw + T[w] - 1

lww’

lw’ = lw + T[w]

Volvo = 0

Enumeración a partir de un recorrido en preorden

Page 34: 1 Algoritmos de Control Características y ejemplos

3434

ZN

0

a1

Destinos ruteados vía canal a1a2

ai

Destinos ruteados vía canal ai

ai+1

adeg

La partición de ZN en un nodo

Page 35: 1 Algoritmos de Control Características y ejemplos

3535

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 = lu) entonces

entregar el paquete localmente

sino

fsi

seleccionar ;

enviar paquete a traves canal etiquetado

a : d [a , a )

a

i i i+

i

1

Page 36: 1 Algoritmos de Control Características y ejemplos

3636

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 deruteo por intervalos

Page 37: 1 Algoritmos de Control Características y ejemplos

3737

Definición esquema numeración

Un esquema de etiquetaje de tipo ILS de ZN para una red esta definido como:

1. una asignación de diferentes identificadores de ZN a los sitios de la red y

2. para cada sitio una asignación de diferentes números de ZN 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.

Page 38: 1 Algoritmos de Control Características y ejemplos

3838

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

Page 39: 1 Algoritmos de Control Características y ejemplos

3939

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].

LemaExiste 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

Page 40: 1 Algoritmos de Control Características y ejemplos

4040

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 [lw, lw + | T[w] | ].

kw = lw + |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 = lw

(b) si w es un hijo de u (en T) entonces uw = lw

(c) si w es el padre de u entonces uw = ku a menos que( ku = 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 ( ku = N ) entonces uw = lw

Reglas esquema de numeración

Page 41: 1 Algoritmos de Control Características y ejemplos

4141

0

1

2 5

3 4 6 7

8

9

10 11

8

910

1

0

9

0 8

10 11

0 11 0

8

52

4

8

6 77 8

5

3 43 5 1

Aristas árbol

Aristas follaje

Ejemplo ancestros

Page 42: 1 Algoritmos de Control Características y ejemplos

4242

Raíz: l=0

Ancestro: l < lv

v

T[v]l > lv l > lvl < lv

Ruteando paquetes para v

Page 43: 1 Algoritmos de Control Características y ejemplos

4343

Lema 1 Si (lu > lv ) entonces lw < lu

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

fv(u) = ( -lca(u, v), lu)

Lema 3 Si (lu < lv) entonces fv(w) < fv(u)

Si entonces ( )l l l lu v w v

Propiedades de numeración

Page 44: 1 Algoritmos de Control Características y ejemplos

4444

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 )

Page 45: 1 Algoritmos de Control Características y ejemplos

Otros algoritmos de controlOtros algoritmos de control

Algoritmos de detección de terminaciónAlgoritmos de detección de terminación Algoritmos de detección de interbloqueoAlgoritmos de detección de interbloqueo Algoritmos de cobertura de árbol (spanning-Algoritmos de cobertura de árbol (spanning-

tree)tree) Algoritmos de recorrido de gráfosAlgoritmos de recorrido de gráfos Algoritmos de flujo maximalAlgoritmos de flujo maximal Algoritmos tolerantes a fallasAlgoritmos tolerantes a fallas