Está en la página 1de 128

Diseo de Sistemas Distribuidos

Mster en Ciencia y Tecnologa Informtica


Curso 2012-2013
Flix Garca Carballeira
Grupo de Arquitectura de Computadores
felix.garcia@uc3m.es
Modelos y algoritmos distribuidos
Tipos de sistemas informticos
Computer systems
Single system Distributed systems
(multiple systems)
PC/work. SMP/MPP Vector Mainframe
clusters Client/Server Grids Peer-to-peer
centralized decentralized
control and management
Flix Garca Carballeira 2 Sistemas Distribuidos (2012-2013)
Cloud
Sistema distribuido
Sistema compuesto por recursos de computacin fsicamente
distribuidos conectados a travs de una red que se comunican y
coordinan entre s
Flix Garca Carballeira 3 Sistemas Distribuidos (2012-2013)
Computacin distribuida
Computacin que se realiza en un sistema distribuido
procesos
procesos
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 4
procesos
servicios
Leyes de la tecnologa
Ley de Moore.
El N de transistores en un
chip se dobla cada
1824 meses.
Ley de Gilder
1,000,000,000,000
100,000,000,000
Moore/
Transistors
10,000,000,000
1,000,000,000
100,000,000
10,000,000
1,000,000
El ancho de banda agregado
se triplica cada ao
Ley de Metcalfe
El valor (utilidad) de una red es
proporcional al cuadrado del
nmero de nodos
1970
Gilder/
Bandwidth
Metcalf/
Network
Nodes
100,000
10,000
1,000
100
10
1
1975 1980 1985 1990 1995 2000 2005 2010
2,300 6,000 29,000 275,000 1.2 mil 5.5 mil 42 mil 252 mil 1.344 bil
50 50 56 1,544 45,000 145,000 10 mil 2.43 bil 200.49 bil
4 111 200 10,000 300,000 1 mil 140 mil 3.5 bil 300 bil
Flix Garca Carballeira 5 Sistemas Distribuidos (2012-2013)
Prximos 10 aos
(Communications of the ACM, 9/2011)
Internet de las cosas. En 2020 habr 50 billones de
dispositivos interconectados (6 por persona)
Datos. En 2011 se van a crear en el mundo 1.2 zettabyes de
datos
En 2015 el 91% de los datos en Internet sern videos En 2015 el 91% de los datos en Internet sern videos
Cloud. En 2020, una tercera parte de los datos residirn en el
cloud
Mejoras en las redes. En 2021 se espera que las velocidades de
las redes se incrementen 3 millones de veces
Incremento de la conectividad y de las redes sociales
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 6
Elementos de un sistema distribuido
Programas: conjunto de instrucciones.
Procesos: programa en ejecucin.
Datos manipulados por los programas
Componente: elemento HW o SW que soporta la ejecucin del
sistema sistema
Una red de computadores es un conjunto de computadores
conectados por una red de interconexin.
Un protocolo es un conjunto de reglas e instrucciones que
gobiernan la comunicacin en un sistema distribuido, es decir,
el intercambio de mensajes.
Flix Garca Carballeira 7 Sistemas Distribuidos (2012-2013)
Caractersticas
Mltiples componentes autnomos
Ausencia de un reloj global
Todos los recursos pueden no ser accesibles a la vez
El software ejecuta en procesos concurrentes sobre mquinas
diferentes diferentes
Software ms complejo
Mltiples puntos de fallo
Mltiples puntos de control
Comunicacin a travs de redes
Flix Garca Carballeira 8 Sistemas Distribuidos (2012-2013)
Ventajas que pueden ofrecer los sistemas
distribuidos
Compartir recursos (HW, SW, datos).
Ofrecen una buena relacin coste/rendimiento
Capacidad de crecimiento
Tolerancia a fallos, disponibilidad, replicacin
Distribucin de la carga Distribucin de la carga
Concurrencia. Servicio a mltiples usuarios
Velocidad. Capacidad global de procesamiento disponible para
ejecucin paralela de una aplicacin
Flix Garca Carballeira 9 Sistemas Distribuidos (2012-2013)
Sistemas distribuidos y paralelos
Sistemas distribuidos
Objetivo: compartir recursos y colaborar.
Redes de computadores
Sistemas paralelos
Objetivo:
Alto rendimiento (speedup). Alto rendimiento (speedup).
Alta productividad
Mquinas paralelas (arquitecturas dedicadas)
Multiprocesadores
Multicomputadores
Redes de estaciones de trabajo trabajando como un multicomputador
(cluster)
Grid Computing (www.gridcomputing.com)
Flix Garca Carballeira 10 Sistemas Distribuidos (2012-2013)
Aspectos de diseo
Heterogeneidad: contemplar diferentes HW, SW, lenguajes de
programacin, velocidad,
Extensibilidad: abierto a nuevos estndares, aplicaciones,
tecnologas.
Escalabilidad: permitir el crecimiento del sistema Escalabilidad: permitir el crecimiento del sistema
Seguridad: confidencialidad, integridad, autenticacin
Tolerancia a fallos y disponibilidad: identificar y tratar los
fallos
Control de concurrencia: coordinar las acciones que ocurren en
diferentes sistemas.
Flix Garca Carballeira 11 Sistemas Distribuidos (2012-2013)
Aspectos de diseo
Puntos de control no nicos: funciones distribuidas en sistemas
autnomos
Sin una visin global: es imposible tener una visin precisa e
instantnea del estado de todo el sistema
Transparencia: visin de un sistema unico Transparencia: visin de un sistema unico
Asincrona: los mensajes tardan un tiempo (variable) en ser
entregados
Calidad de servicio: ofrecer garantias del servicio (velocidad,
seguridad, disponibilidad,.)
Algoritmos eficientes
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 12
Transparencia
Heterogeneidad: acceso a recursos heterogneos de forma idntica
Acceso: acceso a recursos locales y remotos de forma idntica
Ubicacin: Acceso a recursos sin conocimiento de su posicin fsica en la
red
Concurrencia: ejecucin concurrente de procesos sin interferencias
Replicacin: uso de mltiples rplicas de recursos sin conocimiento de su Replicacin: uso de mltiples rplicas de recursos sin conocimiento de su
existencia
Fallos: permitir la ejecucin aun en presencia de fallos
Movilidad: permitir el movimiento de los recursos y clientes sin afectar a
su funcionamiento
Crecimiento: permitir la capacidad de crecimiento sin afectar al sistema y
aplicaciones
Rendimiento: rendimiento similar en recursos locales y remotos
Flix Garca Carballeira 13 Sistemas Distribuidos (2012-2013)
Escalabilidad
Un sistema distribuido es escalable si su capacidad de
procesamiento puede crecer al aadir ms usuarios
Aumenta el rendimiento al aumentar el nmero de nodos
El tiempo de respuesta no aumenta
La fiabilidad no se degrada La fiabilidad no se degrada
Mtodos para conseguir escalabilidad:
Replicacin
Caching
Distribucin (DHT, DNS,)
Flix Garca Carballeira 14 Sistemas Distribuidos (2012-2013)
Control de concurrencia
Un sistema distribuido es inherentemente concurrente
Se debe asegurar:
Linearizability: el resultado de la ejecucin llamadas
concurrentes debe ser equivalente a su ejecucin secuencial
Serializability: El resultado de la ejecucin de secuencias de Serializability: El resultado de la ejecucin de secuencias de
operaciones ejecutadas concurrentemente deben ser
equivalentes a la ejecucin secuencial de cada una de esas
secuencias
Flix Garca Carballeira 15 Sistemas Distribuidos (2012-2013)
Tolerancia a fallos
Un sistema distribuido es inherentemente ms propenso a
errores
Un sistema es tolerante a fallos si el sistema cumple sus
especificaciones a pesar de la presencia de fallos
Se debe asegurar: Se debe asegurar:
Disponibilidad: los recursos son disponibles a pesar de que
haya fallos.
Atomicidad: la consistencia de los recursos se debe asegurar
a pesar de fallos
Flix Garca Carballeira 16 Sistemas Distribuidos (2012-2013)
Falacias de los sistemas distribuidos
http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Comput
ing
La red es fiable
La latencia es cero
El ancho de banda es infinito El ancho de banda es infinito
La red es segura
La topologa no cambia
Hay un administrador
El coste de transporte es cero
La red es homognea
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 17
La red no es fiable
Prdida de datagramas entre dos procesos que ejecutan en dos
PC conectados por una Gigabit Ethernet
Intercambio de 100000 datagramas.
Mensaje
(bytes)
% datagramas
perdidos
Longitud de la
rfaga
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 18
(bytes) perdidos rfaga
mxima
64 74 % 25
128 83% 44
256 92% 27
512 96% 20
1024 98% 12
Elementos que intervienen en la
comunicacin
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 19
Papel del sistema operativo
Los sistemas operativos proporcionan implementaciones de los
protocolos de comunicaciones
El SW de comunicacin de un sistema operativo se organiza
como un conjunto de componentes con tareas concretas
Subsistema de almacenamiento: buffers donde almacenar los paquetes
que llegan y se envan (limitado) que llegan y se envan (limitado)
En implementaciones UNIX tpicas:
TCP reserva para cada puerto (socket) un buffer de 8 KB y UDP reserva
2 buffers de 8KB. El tamao se puede incrementar hasta 64 KB
Los mensajes a enviar se copian a estos buffers
El contenido de estos buffers se fragmenta y se copian a nuevos bloques
de memoria a utilizar por IP
IP enva finalmente los paquetes por la interfaz de red correspondiente
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 20
Papel del sistema operativo
Un sistema operativo puede perder paquetes cuando la tasa de
envos y de recepcin es muy grande
En sistemas operativos multiusuario la prdida de paquetes
suele producirse a rfagas debido a los algoritmos de
planificacin planificacin
La latencia del SO
ha crecido en trminos
relativos
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 21
0
5
10
15
20
25
30
35
40
1985-1990 1990-1995 1995-2000 2000-20005
Sobrecarga del sistema operativo
en la transferencia de mensajes
80
100
120
P
o
r
c
e
n
t
a
j
e

Sobrecarga del SO
Fast-Ethernet
Gigabit Ethernet
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 22
0
20
40
60
P
o
r
c
e
n
t
a
j
e

Tamao del mensaje (bytes)
La latencia es cero
Latencia: tiempo en transferir datos de un lugar a otro
Tamao del mensaje (bytes) Latencia (s)
64 0,00015
128 0,00015
256 0,00015
Latencia en una
Gigabit Ethernet
256 0,00015
512 0,000248
1024 0,000248
2048 0,000251
4096 0,000349
8192 0,000597
16384 0,001030
32768 0,002068
65536 0,002238
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 23
Ancho de banda no es infinito
60
80
100
120
T

t
u
l
o

d
e
l

e
j
e
MB/s real
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 24
0
20
40
60
T

t
u
l
o

d
e
l

e
j
e
Ttulo del eje
Lectura
The Seven Deadly Sins of Distributed Systems
Steve Muir, Department of Computer Science, Princeton
University
First Workshop on Real, Large Distributed Systems
(PDF) (PDF)
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 25
The Seven Deadly Sins of Distributed
Systems
Las redes no son fiables
DNS no es un buen sistema de nombrado
Los relojes locales son imprecisos y no fiables
Los sistemas distribuidos de gran escala siempre tienen
inconsistencias inconsistencias
Los eventos improbables ocurren con frecuencia en grandes
sistemas
La sobreutilizacin es una condicin normal
La transparencia limitada del sistema obstaculiza la depuracin
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 26
El teorema CAP
Brewer, PODC 2000
Solo se pueden tener dos de estas tres propiedads:
Consistencia, disponibilidad, tolerancia a las particiones
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 27
Middelware
Lenguajes de programacin
Aplicaciones
Software que soporta la ejecucin de aplicaciones distribuidas
Sistema operativo
Middleware
Red de interconexin
Hardware
Sistema operativo
Hardware
Artculo: Midleware for distributed systems
http://www.cs.wustl.edu/~schmidt/PDF/middleware-chapter.pdf
Flix Garca Carballeira 28 Sistemas Distribuidos (2012-2013)
Funciones de un middleware
Ocultar la distribucin
Ocultar la heterogeneidad de los componentes (HW, SW,
datos, protocolos, lenguajes de programacin, )
Ofrecer interfaces de alto nivel estndar y uniformes para el
desarrollo de aplicaciones desarrollo de aplicaciones
Ofrecer servicios comunes para facilitar la colaboracin entre
las aplicaciones
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 29
Modelo genrico de middleware
Interfaz para los clientes
Procesos que ofrecen servicios
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 30
Paradigmas de comunicacin
Paso de mensajes
Modelo cliente-servidor
Objetos distribuidos
Servicios web
Middlewares orientados a mensajes Middlewares orientados a mensajes
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 31
Comunicacin basada en mensajes
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 32
Punto a punto
multicast
Sockets
Comunicacin cliente-servidor
Mensaje de peticin
Servidor Cliente
Solicitar
operacin
Recibir peticin
Seleccioar servicio
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 33
(esperar)
(contina)
Mensaje de respuesta
Ejecutar servicio
Seleccioar servicio
Enviar respueta
Sockets, RPC, RMI, Servicios Web
Llamadas a procedimientos remotos
Remote procedure calls (RPC)
proc1(arg1, arg2)
Process A
Process B
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 34
proc2(arg1)
proc3(arg1,arg2,arg3)
Llamadas a procedimiento remoto
main(){
...
r = sumar (4, 5);
...
}
Cliente
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 35
sumar(int a, int b)
int r;
r = a + b;
return r;
}
servidor
peticin
respuesta
Llamada a procedimiento remoto
main(){
...
r = sumar (4, 5);
...
}
a
Dir retorno
b
c
Cliente
servidor
Stub
sumar(int a, int b)
send(a, b);
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 36
c
main(){
receive (4, 5)...
r = sumar (4, 5);
send (r)
}
sumar(int a, int b)
int r;
r = a + b;
return r;
}
servidor
receive(r);
return(r);
}
peticion
respuesta
Stub
Aspectos relacionados con las RPC
Lenguaje de definicin de interfaces. Generador de stubs.
Representacin de datos
Tipos de parmetros. Transferencia de parmetros
Enlace entre el cliente y el servidor (binding)
Semntica de las RPC en presencia de fallos Semntica de las RPC en presencia de fallos
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 37
Ejemplo de representacin de datos
Mensaje: Smith, London, 1934
03
47
5
"Smit"
index in
sequence of bytes
4 bytes
notes
length of string
Smith
XDR
CDR
811
1215
1619
20-23
2427
"h___"
6
"Lond"
"on__"
1934
Smith
length of string
London
unsigned long
<person>
<name>Smith</name>
<place>London</place>
<year>1934</year>
</person >
XML
Flix Garca Carballeira 38 Sistemas Distribuidos (2012-2013)
Evolucin de las RPC
Flix Garca Carballeira 39 Sistemas Distribuidos (2012-2013)
CORBA
Representa un modelo para crear objetos y componentes
distribuidos
Modelo de comunicacin estndar para entornos heterogneos
(HW, SW, lenguajes)
Es una especificacin Es una especificacin
Desarrollado por Object Management Group (OMG)
Flix Garca Carballeira 40 Sistemas Distribuidos (2012-2013)
Heterogeneidad
Bibliotecas
CORBA
Aplicacin
Bibliotecas
CORBA
Aplicacin
CORBA
Hardware
Sistema
Operativo
Lenguaje Prog.
CORBA
Hardware
Sistema
Operativo
Lenguaje Prog. Comunicaciones
CORBA
Flix Garca Carballeira 41 Sistemas Distribuidos (2012-2013)
Arquitectura de comunicaciones
en CORBA
ORB ORB
Skel. DSI
Cliente Objeto Servidor
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 42
ORB
ORB
DII Stub
ORB
Interfaz
ORB
Interfaz
Skel. DSI
Object Adapter (OA)
Red
The rise and fall of CORBA
Communications of the ACM
Volume 51 , Issue 8 (August 2008)
PDF
Flix Garca Carballeira 43 Sistemas Distribuidos (2012-2013)
Middlewares orientados a mensajes
Motivacin
Las RPC y la invocacin de mtodos remotos son
Inadecuados para algunas aplicaciones distribuidas
Ejemplo: Acceso parcial a rplicas (BitTorrent)
Puede ser resuelto con multithreading
Dificulta el
desarrollo de
la aplicacin
thread
thread
thread
peticin
respuesta
Flix Garca Carballeira 44 Sistemas Distribuidos (2012-2013)
Middlewares orientados a mensajes
Message-Oriented Middleware (MOM)
Modelo de comunicacin asncrono
Mensajes normalmente sin tipo. La estructura interna de los
mensajes es responsabilidad de la aplicacin.
Mayor flexibilidad Mayor flexibilidad
Flix Garca Carballeira 45 Sistemas Distribuidos (2012-2013)
Objetivos de los MOM
Integracin de diferentes tipos de sistemas
Garanta en la entrega y persistencia de los mensajes
Los mensajes llegan en el orden correcto
Prioridades
Entrega causal Entrega causal
Diferentes modelos de comunicacin
Punto a punto
Uno a muchos
Muchos a muchos
Flix Garca Carballeira 46 Sistemas Distribuidos (2012-2013)
Ejemplos de middlwares orientados a
mensajes
Sun Java Message Service (JMS)
WebSphere MQ (was MQSeries)
SunTM ONE Middleware
MSMQ Microsoft Message Queue Server
MessageQ de Bea Systems MessageQ de Bea Systems
Flix Garca Carballeira 47 Sistemas Distribuidos (2012-2013)
Sitios Web y servicios web
Un sitio web es un servicio de documentos que utiliza HTTP
Los servicios web son aplicaciones basadas en internet que
soportan el modelo cliente-servidor utilizando estndares web
Aplicacin
invocacin
respuesta
stubs
Ejecucin
Flix Garca Carballeira 48 Sistemas Distribuidos (2012-2013)
Interoperabilidad en entornos heterogneos
Servicios basados en protocolos y mecanismos estndar
HTTP: transporte utilizado
SOAP: empaqueta la informacin y la transmite entre el
cliente y el proveedor del servicio
XML: describe la informacin, los mensajes XML: describe la informacin, los mensajes
UDDI: lista de servicios disponibles
WSDL: descripcin del servicio
Ventajas:
Paso de cortafuegos
Difcil en otros entornos como Java RMI o CORBA
Flix Garca Carballeira 49 Sistemas Distribuidos (2012-2013)
Ejemplos de sistemas distribuidos
Sistemas Cliente-servidor
Redes de estaciones de trabajo
Internet
Clusters
Grid computing Grid computing
Peer-to-peer
Cloud computing
Computacin voluntaria
Redes de sensores
Flix Garca Carballeira 50 Sistemas Distribuidos (2012-2013)
Modelos de sistemas distribuidos
Modelo sncrono
Relojes sincronizados
Entrega de mensajes acotada
Tiempo de ejecucin de procesos acotado
Modelo asncrono Modelo asncrono
No hay sincronizacin de relojes
Entrega de mensajes no acotada
Tiempo de ejecucin de procesos totalmente arbitraria
Sistemas parcialmente sncronos
Tiempos acotados pero desconocidos
Flix Garca Carballeira 51 Sistemas Distribuidos (2012-2013)
Tipos de pasos de mensajes
Paso de mensajes sncrono
El envo y la recepcin de un mensaje m, ocurren
simultneamente
Paso de mensajes asncrono Paso de mensajes asncrono
El envo de un mensaje m y su recepcin no estn acoplados. No
tienen porque ocurrir de forma consecutiva
Flix Garca Carballeira 52 Sistemas Distribuidos (2012-2013)
Modelo de sistema distribuido
Modelo de sistema:
Procesos secuenciales {P
1
, P
2
, ...P
n
} que ejecutan un
algoritmo local
Canales de comunicacin
Eventos en P
i
Eventos en P
i
E
i
= {e
i1
, e
i2
, ...e
in
}
Tipos de eventos locales
Internos (cambios en el estado de un proceso)
Comunicacin (envo, recepcin)
Diagramas espacio-tiempo
P0
e
01
e
02
e
03
e
05
e
04
e
11
e
12
e
13
P1
Flix Garca Carballeira 53 Sistemas Distribuidos (2012-2013)
Sistema distribuido como un sistema de
transicin de estados
Un sistema distribuido se puede modelar como un sistema
de transicin de estados STE (C, , I)
1. C es un conjunto de estados
2. describe las posibles transiciones( C C)
3. I describe los estados iniciales(I C)
El estado de un sistema distribuido, C, se puede describir
como
La configuracin actual de cada proceso/procesador
Los mensajes en trnsito por la red
Flix Garca Carballeira 54 Sistemas Distribuidos (2012-2013)
Configuraciones y estados
En el sistema de transicin de estados del sistema distribuido
Los estados se denominan configuraciones
Las transiciones se denominan transiciones de configuracin
En el sistema de transicin de estados de cada proceso
Los estados se denominan estados Los estados se denominan estados
Las transiciones se denominan eventos
Una ejecucin en un sistema distribuido es una secuencia de
configuraciones (
1
,
2
,
3
, ) donde:

1
es una configuracin inicial,
Hay una transicin entre
i

i+1
para todo i 1
La secuencia puede ser finita o infinita
Flix Garca Carballeira 55 Sistemas Distribuidos (2012-2013)
Transiciones y paso de mensajes
Paso de mensajes sncrono
El envo y la recepcin de un mensaje m, ocurren en la misma
transicin
Paso de mensajes asncrono Paso de mensajes asncrono
El envo de un mensaje m y su recepcin ocurren en transiciones
diferentes
Flix Garca Carballeira 56 Sistemas Distribuidos (2012-2013)
Algoritmos locales
Algoritmo local:
Un proceso cambia de un estado a otro (evento inerno)
Un proceso cambia de un estado a otro y enva un mensaje a otro
proceso (evento de envo)
Un proceso recibe un mensaje y cambia su estado (evento de
recepcin) recepcin)
Restricciones
Un proceso p solo puede recibir un mensaje despus de
haber sido enviado por otro
Un proceso p solo puede cambiar del estado c al estado d si
est actualmente en el estado c
Flix Garca Carballeira 57 Sistemas Distribuidos (2012-2013)
Orden causal
La relacin
H
sobre eventos de una ejecucin distribuida, denominada
orden causal, se define como:
Si e ocurre antes que f en el mismo proceso, entonces e
H
f
Si s es un evento de envo y r su correspondiente evento de recepcin, Si s es un evento de envo y r su correspondiente evento de recepcin,
entonces s
H
r

H
Es transitiva
Si a
H
b y b
H
c entonces a
H
c

H
es reflexiva.
a
H
a para cualquier evento
Dos eventos , a y b, son concurrentes sii a
H
b y b
H
a
Flix Garca Carballeira 58 Sistemas Distribuidos (2012-2013)
Ejemplos de eventos
p1
p2
Eventos concurrentes Eventos relacionados
causalmente
p2
p3
time
Eventos relacionados
causalmente
Flix Garca Carballeira 59 Sistemas Distribuidos (2012-2013)
Ejecuciones equivalentes
Dos ejecuciones distribuidas F y E son equivalentes (F~E )
si:
Tienen el mismo conjunto de eventos
Se mantiene el orden causal
Flix Garca Carballeira 60 Sistemas Distribuidos (2012-2013)
Ejemplos de ejecuciones equivalentes
p1
p2
p3
tiempo
p1
Mismo color ~ orden causal
p2
p3
tiempo
p1
p2
p3
tiempo
Flix Garca Carballeira 61 Sistemas Distribuidos (2012-2013)
Algoritmos distribuidos
Los algoritmos distribuidos deben tener las siguientes
propiedades:
La informacin relevante se distribuye entre varias
mquinas
Los procesos toman las decisiones slo en base a la Los procesos toman las decisiones slo en base a la
informacin local
Debe evitarse un punto nico de fallo
No existe un reloj comn
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 62
Ejemplos de algoritmos distribuidos
Sincronizacin de relojes, ordenacin de eventos
Exclusin mutua distribuida
Algoritmos de eleccin
Comunicacin multicast y ordenacin de mensajes
Problemas de consenso Problemas de consenso
Deteccin de interbloqueos
Asignacin de recursos
Planificacin
Tolerancia a fallos
Flix Garca Carballeira 63 Sistemas Distribuidos (2012-2013)
Ordenacin de eventos
Monitorizacin del comportamiento de una aplicacin distribuida
Ejemplo: El observador debe ordenar los eventos de recepcin de
mensajes en los procesos P1 y P2
e1, e2, e3, e4, e5
P1
m1 m3 m4
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 64
P2
Observador
m1
m2
m3 m4
m5
e1 e2 e3 e4 e5
Ejemplo
Monitorizacin del comportamiento de una aplicacin distribuida
El observador debe ordenar los eventos de recepcin de mensajes en los
procesos P1 y P2
e1, e2, e3, e4, e5
P1
m1 m3 m4
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 65
P2
Observador
m1
m2
m3 m4
m5
e1 e2 e3 e4 e5
Para ordenar eventos podemos asignarles marcas de tiempo
ei ek MT(ei) < MT (ek )
Marcas de tiempo en el observador?
P1
m1
m2
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 66
P2
Observador
m2
e1 e2
?
Marcas de tiempo en de los procesos?
P1
m1
m2
1
6
3
8
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 67
P2
Observador
m2
e1-6
6
8
e2-3
?
Marcas de tiempo en de los procesos?
P1
m1
m2
1
6
3
8
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 68
P2
Observador
m2
e1-6
6
8
e2-3
Los relojes deben estar sincronizados
Relojes fsicos
Para ordenar dos eventos de un proceso basta con asignarles
una marca de tiempo
Para un instante fsico t
H
i
(t): valor del reloj HW (oscilador)
C
i
(t): valor del reloj SW (generado por el SO)
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 69
C
i
(t): valor del reloj SW (generado por el SO)
C
i
(t) = a H
i
(t) + b
Ej: # ms o ns transcurridos desde una fecha de referencia
Resolucin del reloj: periodo entre actualizaciones de C
i
(t)
Determina la ordenacin de eventos
Dos relojes en dos computadores diferentes dan medidas
distintas
Necesidad de sincronizar relojes fsicos de un sistema
distribuido
Sincronizacin de relojes fsicos
D: Cota mxima de sincronizacin
S: fuente del tiempo UTC, t
Sincronizacin externa:
Los relojes estn sincronizados si |S(t) - C
i
(t)| < D
Los relojes se consideran sincronizados dentro de D
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 70
Los relojes se consideran sincronizados dentro de D
Sincronizacin interna entre los relojes de los computadores de
un sistema distribuido
Los relojes estn sincronizados si |C
i
(t) - C
j
(t)| < D
Dados dos eventos de dos computadores se puede establecer
su orden en funcin de sus relojes si estn sincronizados
Sincronizacin externa sincronizacin interna

Relojes lgicos
Dado que no se pueden sincronizar perfectamente los relojes
fsicos en un sistema distribuido, no se pueden utilizar relojes
fsicos para ordenar eventos
Podemos ordenar los eventos de otra forma?
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 71
Podemos ordenar los eventos de otra forma?
P1
P2
Observador
m1
m2
m3 m4
m5
e1 e2 e3 e4 e5
Causalidad potencial
En ausencia de un reloj global la relacin causa-efecto
(precede a) es la nica posibilidad de ordenar eventos
Relacin de causalidad potencial (Lamport)
e = evento j en el proceso i
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 72
e
ij
= evento j en el proceso i
Si j < k entonces e
ij
e
ik
Si e
i
=send(m) y e
j
=receive(m), entonces e
i
e
j
La relacin es transitiva
Dos eventos son concurrentes (a || b) si no se puede deducir
entre ellos una relacin de causalidad potencial
Importancia de la causalidad potencial
Sincronizacin de relojes lgicos
Depuracin distribuida
Registro de estados globales
Monitorizacin
Entrega causal
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 73
Entrega causal
Actualizacin de rplicas
Relojes lgicos (algoritmo de Lamport)
Algoritmo de Lamport (1978)
Cada proceso P mantiene una variable entera RL
p
(reloj lgico)
Cuando un proceso P genera un evento, RL
p
=RL
p
+1
Cuando un proceso enva un mensaje m a otro le aade el valor
de su reloj de su reloj
Cuando un proceso Q recibe un mensaje m con un valor de
tiempo t, el proceso actualiza su reloj, RL
q
=max(RL
q
,t) +1
El algoritmo asegura que si a
H
b entonces RL(a) < RL(b)
Flix Garca Carballeira 74 Sistemas Distribuidos (2012-2013)
Ejemplo
p1
p2
1 3
4
4
5
2 0
0
p3
tiempo
4
1
5
6
0
0
Flix Garca Carballeira 75 Sistemas Distribuidos (2012-2013)
Relojes lgicos totalmente ordenados
Los relojes lgicos de Lamport imponen slo una relacin de
orden parcial:
Eventos de distintos procesos pueden tener asociado una
misma marca de tiempo.
Se puede extender la relacin de orden para conseguir una
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 76
Se puede extender la relacin de orden para conseguir una
relacin de orden total aadiendo el n de proceso
(T
a
, P
a
): marca de tiempo del evento a del proceso P
(T
a
, P
a
) < (T
b
, P
b
) s y solo si
T
a
< T
b
o
T
a
=T
b
y P
a
<P
b
Problemas de los relojes lgicos
No bastan para caracterizar la causalidad
Dados RL(a) y RL(b) no podemos saber:
si a precede a b
si b precede a a
si a y b son concurrentes si a y b son concurrentes
Se necesita una relacin (F(e), <) tal que:
a
H
b si y slo si F(a) < F(b)
Los relojes vectoriales permiten representar de forma
precisa la relacin de causalidad potencial
Flix Garca Carballeira 77 Sistemas Distribuidos (2012-2013)
Problemas de los relojes lgicos
P
1
e11
(1)
e12
(2)
P
2
e21
(1)
e22
(3)
e31 e32 e33
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 78
C(e11) < C(e22), y e11e22 es cierto
C(e11) < C(e32), pero e11 e32 es falso
P
3
e31
(1)
e32
(2)
e33
(3)
Relojes vectoriales
Desarrollado independientemente por Fidge, Mattern y Schmuck
Todo proceso lleva asociado un vector de enteros RV
RV
i
[a] es el valor del reloj vectorial del proceso i cuando ejecuta el evento
a.
Mantenimiento de los relojes vectoriales
Inicialmente RV
i
= 0 i
Cuando un proceso i genera un evento
RV
i
[i ] = RV
i
[i ] +1
Todos los mensajes llevan el RV del envo
Cuando un proceso j recibe un mensaje con RV
RV
j
= max(RV
j
, RV ) (componente a componente)
RV
j
[j ] = RV
j
[j ] +1 (evento de recepcin)
Flix Garca Carballeira 79 Sistemas Distribuidos (2012-2013)
Ejemplo
p1
p2
[2,0,0] [4,0,0] [5,0,0] [3,0,0] [1,0,0]
p2
p3
tiempo
[4,2,0]
[0,0,2]
[4,3,0]
[4,3,3]
[0,1,0]
[0,0,1]
Flix Garca Carballeira 80 Sistemas Distribuidos (2012-2013)
Propiedades de los relojes vectoriales
RV < RV si y solo si
RV RV y
RV[i ] RV[i ], i
Dados dos eventos a y b
a b si y solo si RV(a) < RV(b)

a
H
b si y solo si RV(a) < RV(b)
a y b son concurrentes cuando
Ni RV(a) RV(b)[i ] ni RV(b ) RV(b)
Flix Garca Carballeira 81 Sistemas Distribuidos (2012-2013)
Utilidad
p1
p2
p3
[2,0,0] [4,0,0]
[5,2,0]
[5,0,2]
[5,3,0]
[3,0,0]
[1,0,0]
[0,1,0]
[0,0,1]
[5,0,0]
[5,0,3]
time
[5,0,2] [0,0,1]
p2 analiza dos mensajes que recibe: de p1 [4,0,0] y de p2 [5,0,3] y puede
deducir que el de p1 es anterior [4,0,0] [5,0,3]
[5,0,3]
Flix Garca Carballeira 82 Sistemas Distribuidos (2012-2013)
Entrega causal
Se distinguen los eventos recibir y entregar
Entrega FIFO
send
i
(m)
H
send
i
(m) entonces entrega
k
(m)
H
entrega
k
(m)
Entrega causal
send (m) send (m) entonces entrega (m) entrega (m) send
i
(m)
H
send
j
(m) entonces entrega
k
(m)
H
entrega
k
(m)
La entrega causal requiere retrasar la entrega de un mensaje a un
proceso hasta estar seguros que entre dos envos no hay uno
intermedio
Se puede implementar con relojes vectoriales
Flix Garca Carballeira 83 Sistemas Distribuidos (2012-2013)
Ejemplo de entrega no causal
P1
P2
m
P2
P3
m
send(m)
H
send(m) pero en P3 se recibe antes m
Flix Garca Carballeira 84 Sistemas Distribuidos (2012-2013)
Utilidad
p1
p2
p3
[2,0,0] [4,0,0]
[5,2,0]
[5,0,2]
[5,3,0]
[3,0,0]
[1,0,0]
[0,1,0]
[0,0,1]
[5,0,0]
[5,0,3]
time
[5,0,2] [0,0,1]
p2 analiza dos mensajes que recibe: de p1 [4,0,0] y de p2 [5,0,3] y puede
deducir que el de p1 es anterior [4,0,0] [5,0,3]
[5,0,3]
Flix Garca Carballeira 85 Sistemas Distribuidos (2012-2013)
Exclusin mutua distribuida
Los procesos ejecutan el siguiente fragmento de cdigo
entrada()
SECCIN CRTICA
salida()
Requisitos para resolver el problema de la seccin crtica
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 86
Requisitos para resolver el problema de la seccin crtica
Exclusin mutua
Progreso
Espera acotada
Algoritmos
Algoritmo centralizado
Algoritmo distribuido
Anillo con testigo
..
Ejemplo. Algoritmo de votacin de
Maekawa
Idea: no solicitar permiso de todos los procesos, solo de un
subconjunto
Los subconjuntos deben solaparse
A cada proceso Pi se le asocia un conjunto de votantes
{ Vi | i = 1, , N }
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 87
{ Vi | i = 1, , N }
Pi est en Vi
Vi Vj
Todos subconjuntos de igual tamao
Cada proceso Pj est contenido en M subconjutos
votantes
Solucin optima
K ~
M = K
N
Algoritmo de votacin de Maekawa
enter():
state := WANTED;
Multicast request to processes in Vi - { Pi };
Wait until (K - 1) responses are received;
state := HELD;
When Pj receives a request from Pi, i j:
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 88
When Pj receives a request from Pi, i j:
if(state == HELD or voted == TRUE) {
Queue request without responding;
} else {
Reply to Pi;
voted := TRUE;
}
Algoritmo de votacin de Maekawa
release():
state :=RELEASED;
Multicast release to processes in Vi - { Pi };
When Pj receives a release msg from Pi i j:
if(request queue == EMPTY) {
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 89
if(request queue == EMPTY) {
voted := FALSE;
} else {
Remove head of queue, P(k);
Reply to process P(k);
voted := TRUE;
}
Planificacin de procesos en sistemas
distribuidos
Definicin del problema:
Dados un conjunto de procesadores (CE) y unidades de
almacenamiento (SE) distribuidos
Dadas aplicaciones con requisitos de CPU y de
almacenamiento. almacenamiento.
Objetivo: buscar una estrategia que:
Maximice la productividad (throuhgput)
Maximice el uso de los recursos en global
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 90
Algoritmos de distribucin de la carga
Objetivo: decidir en qu procesador se debera ejecutar un
proceso para equilibrar la carga y optimizar el rendimiento.
Evitar que un nodo est inactivo mientras hay procesos
esperando a ejecutar.
Suposiciones:
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 91
Suposiciones:
Todos los procesadores son compatible en el cdigo.
La velocidad de los procesadores puede ser distinta.
Conectividad total: cualquier procesador puede comunicarse
con cualquier otro.
Asignacin de procesadores
Estrategias:
No migratorias: una vez arrancado un proceso ste no
cambia de procesador.
Migratorias: los procesos pueden cambiar de procesador
durante su ejecucin.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 92
durante su ejecucin.
Mejor equilibrio de la carga pero ms complejas.
Criterios de optimizacin:
Maximizar la utilizacin total de las CPUs.
Minimizar el tiempo de respuesta medio.
Minimizar la tasa de respuesta:
Algoritmos de distribucin de la carga
Poltica de transferencia: determina cundo transferir.
Poltica de seleccin: seleccin del proceso a transferir.
Poltica de ubicacin: selecciona el nodo al que transferir.
Poltica de informacin: decide cundo, desde dnde y qu
informacin sobre otros nodos recoger.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 93
informacin sobre otros nodos recoger.
Poltica de transferencia
Basadas en umbral:
Si la carga excede de T unidades de carga en el nodo S, ste
se convierte en emisor de un proceso.
Si la carga cae por debajo de T unidades, entonces S se
convierte en receptor de procesos remotos.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 94
convierte en receptor de procesos remotos.
Tipos de transferencias:
Expulsivas: se pueden transferir los procesos ejecutados
parcialmente.
Supone transferir el estado del proceso (migracin)
No expulsivas: los procesos en ejecucin no pueden ser
transferidos.
Polticas de seleccin
Elegir los procesos nuevos.
Seleccionar los procesos con un tiempo de transferencia
mnimo (poco estado, mnimo uso de los recursos locales).
Seleccionar un proceso si su tiempo de respuesta estimado en
un nodo remoto es menor que el tiempo de respuesta local.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 95
un nodo remoto es menor que el tiempo de respuesta local.
Poltica de ubicacin
Muestreo: se muestrean otros nodos para encontrar uno
adecuado.
Los nodos pueden ser muestreados secuencialmente o en
paralelo.
Seleccin aleatoria.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 96
Seleccin aleatoria.
Nodos ms prximos.
Basada en informacin recogida anteriormente.
Enviar un mensaje al resto de nodos (broadcast).
Dos tipos de polticas:
Iniciadas por el servidor.
Iniciadas por el receptor.
Poltica de informacin
Bajo demanda: la informacin se recoge slo cuando un nodo
se convierte en un emisor o receptor de procesos.
Iniciada por el emisor: el emisor busca receptores.
Iniciada por el receptor: el receptor solicita procesos a
otros nodos.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 97
otros nodos.
Combinada: iniciada por el emisor o por el receptor.
Peridicas: los nodos intercambian informacin
peridicamente.
Sobrecarga constante en el sistema.
No se adapta a las necesidades:
Alta periodicidad: mucha sobrecarga.
Baja periodicidad: reparto de carga ineficaz.
Poltica de informacin
Dirigida por el cambio de estado: los nodos envan su
informacin slo cuando cambia su estado.
Centralizado: la informacin se enva a un nodo central.
Distribuido: la informacin se enva a todos los nodos.
La recogida de informacin depende de la carga del sistema.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 98
La recogida de informacin depende de la carga del sistema.
Estabilidad y efectividad
Un algoritmo es inestable si la tasa de trabajo que llega a un
nodo (externa + transferencias) excede de la capacidad de ese
nodo.
Un algoritmo es inestable si existe la probabilidad de que los
procesos se muevan de un nodo a otro sin haber ejecutado.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 99
procesos se muevan de un nodo a otro sin haber ejecutado.
Un algoritmo es efectivo si mejora el rendimiento del sistema.
Clasificacin de los algoritmos
Dinmicos: Utilizan la carga local para tomar decisiones.
Tienen en cuenta las posibles fluctuaciones.
Sobrecarga en la recogida, almacenamiento y anlisis de la
informacin.
Deterministas: Se toma informacin a priori para la toma de
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 100
Deterministas: Se toma informacin a priori para la toma de
decisiones.
Adaptativos: similar a los dinmicos pero adaptando el
algoritmo a la carga del sistema.
Algoritmos ptimos o subptimos.
Algoritmos locales o globales.
Con locales se transfiere un proceso cuando la mquina local
est muy cargada.
Con globales se tiene en cuenta la carga global del sistema.
Algoritmos iniciado por el emisor
Poltica de transferencia: umbral basado en la longitud de la
cola de CPU.
Poltica de seleccin: procesos nuevos.
Poltica de ubicacin:
Elegir un nodo al azar.
Probar con un n de nodos para encontrar un receptor. Si no
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 101
Probar con un n de nodos para encontrar un receptor. Si no
lo hay, ejecutarlo localmente.
Probar en un n de nodos y elegir aquel con la cola de
planificacin ms corta.
Poltica de informacin: con las dos ltimas la informacin se
recoge cuando un nodo se convierte en emisor.
Estabilidad: inestable con alta carga ya que ser difcil
encontrar receptores y los muestreos consumen ciclos de CPU
innecesarios.
Algoritmos iniciados por el receptor
Poltica de transferencia: umbral basado en la longitud de la
cola de CPU.
Poltica de seleccin: cualquier proceso.
Poltica de ubicacin:
Muestrear aleatoriamente un n limitado de nodos hasta
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 102
Muestrear aleatoriamente un n limitado de nodos hasta
encontrar uno con un nivel de carga mayor que T+1.
Si la bsqueda falla, esperar hasta que otro proceso termine
antes de intentar o esperar un periodo predeterminado.
Poltica de informacin: comienza cuando un nodo se
convierte en receptor.
Estabilidad: estable. A altas cargas, es probable que los
receptores encuentren emisores.
Algoritmos combinados
Poltica de transferencia
0
Tmin
Media
Tmax
receptor emisor
Poltica de ubicacin dirigida por el emisor:
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 103
Poltica de ubicacin dirigida por el emisor:
El emisor difunde un mensaje EMISOR y espera
ACEPTAR.
Un receptor enva ACEPTAR.
Cuando llega ACEPTAR: si el nodo es emisor,
transfiere el proceso ms adecuado.
Si no llega ningn mensaje ACEPTAR, difundir un
mensaje CAMBIO-MEDIA para incrementar la carga
media estimada.
Algoritmos simtricos
Poltica de ubicacin iniciada por el receptor:
Un receptor difunde un mensaje RECPTOR y espera por
mensajes EMISOR.
Si llega un mensaje EMISOR, se enva un mensaje
ACEPTAR.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 104
ACEPTAR.
Si no llega ningn mensaje EMISOR, difundir un mensaje
CAMBIO-MEDIA para decrementar la carga media
estimada en el resto de nodos.
Poltica de seleccin: cualquier proceso.
Poltica de informacin:
Dirigida por demanda.
La carga media del sistema se determina localmente.
Ejemplo 1
N >=T
H>= Hmax
NO
SI
N=N+1
ejecutar el
proceso
localmente
stop
proceso
SI
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 105
H>= Hmax
escoge un nodo
x al azar
NO
H=H+1
enviar el proceso
al nodo x
stop
N: tamao de la cola local; H: contador de saltos
T: tamao umbral de la cola; Hmax: valor mximo del contador de saltos
Polticas del ejemplo 1
Poltica de transferencia: umbral de carga
Poltica de seleccin: cualquier proceso.
Poltica de ubicacin: aleatoria.
Poltica de informacin: comienza cuando un nodo se
convierte en emisor.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 106
convierte en emisor.
Ejemplo 2
N>=T
NO
N=N+1
ejecutar el
proceso
localmente
stop
proceso
SI
P=P+1
P=0
x acepta?
NO
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 107
escoge un nodo
x al azar y probar
P>= Pmax
SI
NO
enviar el proceso
al nodo x
N: tamao de la cola local; P: contador de prueba
T: tamao umbral de la cola; Pmax: mximo valor de prueba
P=P+1 x acepta?
stop
SI
Polticas del ejemplo 2
Poltica de transferencia: umbral de carga.
Poltica de seleccin: cualquier proceso.
Poltica de ubicacin: prueba aleatoria limitada.
Poltica de informacin: comienza cuando un nodo se
convierte en emisor.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 108
convierte en emisor.
Ejemplo 3
N>=T
NO
N=N+1
ejecutar el
proceso
localmente
stop
Probar en todas
las mquinas
proceso
SI
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 109
las mquinas
Enviar el proceso al
nodo x con la carga
ms pequea
N: tamao de la cola local;
T: tamao umbral de la cola;
stop
Polticas del algoritmo 3
Poltica de transferencia: basada en umbral de carga.
Poltica de seleccin: cualquier proceso.
Poltica de ubicacin: nodo con la carga ms pequea.
Poltica de informacin: comienza cuando un nodo se
convierte en emisor.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 110
convierte en emisor.
Planificacin de aplicaciones paralelas
Definicin del problema:
Dado un conjunto de tareas con ciertas restricciones de
precedencia y requisitos de clculo y comunicacin,
Dado un conjunto de procesadores conectados por una red
de interconexin,
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 111
de interconexin,
Encontrar la asignacin de tareas a procesadores y el orden
de ejecucin con el objetivo de minimizar el tiempo de
ejecucin total.
Tipos de planificacin
Planificacin Gang: trabajos que constan de tareas que se
comunican entre s y que ejecutan de forma paralela
Planificacin DAG (Direct Acyclic Graph)
Los trabajos se descomponen en tareas con restricciones de Los trabajos se descomponen en tareas con restricciones de
precedencia entre ellas
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 112
Planificacin DAG
1
2 3
4 2 1
P1
Planificador
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 113
4 5
6
6 5 3
P2
Complejidad del problema
El problema en su forma general es NP-completo
Algoritmos con complejidad polinomial:
Cuando slo hay dos procesadores.
En el caso general se utilizan heursticas.
Los planificadores se eligen por 2 mtricas:
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 114
Los planificadores se eligen por 2 mtricas:
El rendimiento del plan generado.
La eficacia del planificador: tiempo tomado por el
planificador para generar un plan.
Caractersticas adicionales de la
planificacin
En aplicaciones paralelas: el objetivo es minimizar el tiempo
de respuesta y el tiempo de medio de ejecucin por aplicacin.
En trabajos independientes: el objetivo es equilibrar la carga.
Planificaciones expulsivas o no expulsivas.
Planificadores adaptativos:
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 115
Planificadores adaptativos:
Cambiar su funcionamiento segn la informacin recibida
del sistema.
Sobrecarga por la recogida de informacin.
Ejemplo
1
Planificador
2
4 3
10 10
20
20
1
1
1
1
2
1
3
N1 N2
0
10
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 116
5
5
1
1
N1 N2
3
4
5
30
36
Criterios para asignar tareas
Si dos tareas que se comunican se ejecutan en el mismo nodo,
el tiempo de comunicacin es cero y se reduce el tiempo de
respuesta.
Asignar tareas a diferentes nodos, incrementa el paralelismo y
puede reducir el tiempo total de ejecucin
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 117
puede reducir el tiempo total de ejecucin
Algoritmos de agrupacin (clustering)
Proyeccin de los nodos de un grafo de tareas en grupos
(clusters) etiquetados.
Todos los nodos en el mismo grupo se ejecutan en el mismo
procesador.
La agrupacin ptima es NP-completo.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 118
La agrupacin ptima es NP-completo.
{T
1
, ..., T
n
} {C
1
, ..., C
k
}
Planificacin Gang
Todas las tareas de un trabajo deben comenzar su ejecucin
simultneamente
El nmero de tareas debe ser menor o igual que el nmero de
procesadores disponibles
La sobrecarga de comunicacin entre las tareas de un trabajo La sobrecarga de comunicacin entre las tareas de un trabajo
se asume que est incluida en el tiempo de ejecucin de las
tareas.
Ejemplos de planificadores:
First come first served (FCFS)
Adapted first come first serverd (AFCFS)
Largest job first served (LJFS)
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 119
Adapted first come first served (AFCFS)
Intenta planificar un trabajo siempre que los procesadores
asignados a sus tareas estn disponibles
Cuando no hay suficientes procesadores disponibles para un
trabajo, planifica trabajos ms pequeos situados por detrs en
la cola de planificacin la cola de planificacin
Tiende a favorecer a trabajos con pocas tareas
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 120
Largest Job First Served (LJFS)
Las tareas se ordenan por tamao. Las tareas que pertenecen a
trabajos ms grandes se planifican primero
Este mtodo mejora el rendimiento de grandes trabajos
paralelos, pero esto es deseable en muchos casos (centros de
supercomputacin) supercomputacin)
Se ha demostrado que LJFS funciona, en general, mejor que
AFCFS, aunque el rendimiento depende del sistema y de la
carga de trabajo.
Z. Papazachos and H. Karatza, Performance Evaluation of Bag of
Gangs
Scheduling in a Heterogeneous Distributed System, Journal of Systems
and Software, Elsevier, Vol. 83 (2010), pp. 13461354.
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 121
Planificacin DAG
Una tarea sin predecesores se denomina tarea
de entrada
Una tarea sin sucesores se denomina tarea
terminal
Los predecesores de una tarea se denominan
tareas padre
Los sucesores de una tarea se denominan Los sucesores de una tarea se denominan
hijos
Cada vrtice en un DAG representa una tarea
y el arco representa un mensaje que debe ser
enviado de una tarea a otra.
Cada arco tiene asignado un coste de
comunicacin
Una tarea hijo puede comenzar su ejecucin
si ha recibido los datos de entrada de todos
sus padres
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 122
Planificacin DAG
El nivel L de una tarea es la longitud del camino ms largo de
esa tarea a una tarea terminal del grafo, teniendo en cuenta los
tiempos de ejecucin de las tareas y los costes de
comunicacin
El nivel L de una tarea terminal es igual a su tiempo de El nivel L de una tarea terminal es igual a su tiempo de
ejecucin.
El nivel SL (static level) de una tarea es la longitud del camino
ms largo de una tarea a una terminal sin tener en cuenta el
coste de comunicacin
La longitud del camino crtico de un DAG es la longitud del
camino ms largo de una tarea de entrada a una tarea terminal
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 123
Ejemplo
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 124
El camino crtico es 22
Ejemplos de polticas
Highest Leves First (HDL)
La tarea de entrada con el nivel L ms grande se planifica
primero
Dynamic Level Scheduling (DLS)
En cada etapa, se selecciona el par (Ti, Pj) que da el valor En cada etapa, se selecciona el par (Ti, Pj) que da el valor
ms alto para la expresin
SL(Ti) EST(Ti, Pj)
Donde
SL(Ti) es el nivel SL de la tarea Ti y EST(Ti, PJ) es el tiempo
de inicio estimado ms pequeo de Ti en Pj
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 125
Planificacin de tareas independientes
Trabajos que constan de un conjunto de n >= 1 tareas que
pueden ejecutar en paralelo.
Nmero de tareas = grado de paralelismo
Cada tarea se asigna a un procesador
Se puede asignar ms de una tarea al mismo procesador Se puede asignar ms de una tarea al mismo procesador
Puede requerir sincronizacin de tareas
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 126
Algoritmos de planificacin de tareas
independientes
FCFS (fisrt come first serverd).
Ms justo para trabajos individuales, sin overhead,
rendimiento subptimo
STF (shortest task first or shortest time first)
Necesita conocimiento previo de los tiempo de servicio Necesita conocimiento previo de los tiempo de servicio
Algoritmo no expulsivo
Intenta minimizar el retardo medio
Puede haber inanacin
Requiere reordenacin de las colas cada vez que llega un
proceso nuevo
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 127
Algoritmos de planificacin de tareas
independientes
Epoch STF (ESTF)
Las colas de planificacin solo se reordenan en ciertos
periodos de tiempo
El rendimiento de los algoritmos depende mucho de la carga
de trabajo de trabajo
H. D. Karatza, A simulation-based Performance Analysis
of Epoch Task
Scheduling in Distributed Processors, in Communication
Networks andComputer Systems, J. Barria Editor, World
Scientific, Imperial College
Press, 2006, pp. 69-86
Flix Garca Carballeira Sistemas Distribuidos (2012-2013) 128

También podría gustarte