1 algoritmos de control características y ejemplos
TRANSCRIPT
11
Algoritmos de ControlAlgoritmos de Control
Características y ejemplosCaracterí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
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
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
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
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
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
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
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
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
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
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
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
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
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
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;
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
1818
Criterios de definición de algoritmos Criterios de definición de algoritmos de ruteode ruteo
ExactitudExactitud ComplejidadComplejidad EficienciaEficiencia ResistenciaResistencia AdaptabilidadAdaptabilidad EquidadEquidad
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
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
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]
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
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
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
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
2626
Ejemplo ejecuciónEjemplo ejecución
p1
p2
p5
p4
p3
p6
3
5
4
2 6
4
2
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
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
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
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
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.
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{
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
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
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
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
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.
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
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
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
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
4242
Raíz: l=0
Ancestro: l < lv
v
T[v]l > lv l > lvl < lv
Ruteando paquetes para v
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
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 )
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