Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitecturas 1pp PDF
Arquitecturas 1pp PDF
Arquitectura de
los Sistemas
Distribuidos
Índice
• Introducción
• Arquitecturas para computación distribuida
– Arquitecturas de computación en Google
• Modelo Map-Reduce y Pregel
• Arquitectura cliente-servidor
– Variaciones del modelo
– Aspectos de diseño del modelo cliente/servidor
• Arquitectura editor-subscriptor
• Arquitectura Peer-to-peer
– Sistemas P2P desestructurados
– Sistemas P2P estructurados
• Protocolo Chord
int MPI_Cart_create(MPI_Comm comm, int ndims, int *dims, int *periods, int reorder, MPI_Comm *comm_cart);
int MPI_Cart_shift(MPI_Comm comm_cart, int direction, int disp, int *rank_source, int *rank_dest);
Using MPI
William Gropp, Ewing Lusk y Anthony Skjellum (MIT Press)
Sistemas Operativos Distribuidos Fernando Pérez Costoya
6
Arquit. de computación en Google
• MapReduce (≈ 80% de computaciones en Google)
– Maestro-trabajador con dos fases: Map y Reduce
– Map: T procesa su parte de datos de entrada y genera (clave, valor)
• P.ej. Palabras que aparecen en su parte de datos de entrada
– Reduce: T procesa valores asociados a una clave
• P.ej. Frecuencia de palabras en todos los datos de entrada
• Pregel (≈ 20% de computaciones en Google)
– Modelo diseñado para procesar grafos de gran escala
– Computación organizada en “supersteps” síncronos:
• Cada vértice recibe datos de otros vértices por aristas de entrada
• Cambia su estado y genera datos por vértices de salida
• Incluso puede cambiar topología del grafo
– Inspirado en modelo “Bulk Synchronous Parallel” de Valiant
– Implementado como arquitectura maestro/trabajador
• M reparte grafo entre T y controla sincronización de “supersteps”
Sistemas Operativos Distribuidos Fernando Pérez Costoya
7
Modelo de computación Map-Reduce
Interfaz de Servicio
Petición (args.)
Resp=Código(args)
Interfaz de Servicio 1
Petición (args.)
Forward
Open
Reverse
C C S C p S
p p p p p
C S C S C S
p p
C C S C S
Interfaz de Servicio
Petición
Resp=Código(args)
Interfaz de Servicio
Petición(args)+Código
Cliente Servidor
Respuesta
Resp=Código(args)
M1 M2
1
C DM2 + ptoS DM2 + ptoS S
M2
2 Idsrv → ptoS
DM2 + ptoB binder
M1
C DM2+idsrv
Idsrv → ptoS
1
M2
Binder → ptoB
DM2 + ptoS S
M2
Idsrv → ptoS
DM2 + ptoB binder
M1
¿idsrv?
1
C DM2+idsrv ptoS
M2
Binder → ptoB 2
DM2 + ptoS S
Binder → ptoB
Sistemas Operativos Distribuidos Fernando Pérez Costoya
30
ID servicio = [idsrv]; Sólo BG: Alta
M3
Idsrv → DM2 + ptoS
DM3 + ptoB binder
M1 2
M2 1
binder→ DM3+ptoB
DM2 + ptoS S
M3
idsrv→ DM2 + ptoS
DM3 + ptoB binder
M1
¿idsrv?
1
C idsrv DM2 + ptoS
M2
binder→ DM3+ptoB 2
DM2 + ptoS S
M1 M2
Idsrv → ptoS
C idsrv DM2 + ptoL BL
2
M3 M2 1
Idsrv → DM2
BG DM3 + ptoB DM2 + ptoS S
3
4 Idsrv → DM2 BL → ptoL | BG→ DM3+ptoB
Sistemas Operativos Distribuidos Fernando Pérez Costoya
33
ID servicio = [idsrv]; BG+BL: Consulta
C S
open(“f”,...)
x N | pos 0
OPEN, “f”
3 x
x
“f”; inodo N
C S
read(3,b,t)
x N | ant+tl
READ, x, t
3 x
DATOS, tl (leído)
“f”; inodo N
C S
lseek(3,m,p)
x N | pos p
LSEEK,x,m=SEEK_SET,p
3 x
p
“f”; inodo N
C S
close(3)
x -
CLOSE, x
3 -
OK
“f”; inodo N
C S
open(“f”,...)
BUSCAR, “f”
3 N | pos 0
N
“f”; inodo N
C S
read(3,b,t)
READ, N, ant, t
3 N | ant+tl
DATOS, tl (leído)
“f”; inodo N
C S
lseek(3,m,p)
3 N | pos p
“f”; inodo N
C S
close(3)
3 -
“f”; inodo N
cola de mensajes de S
m1 → C1
m2 → C2
m3 → libre S
Sistemas Operativos Distribuidos Fernando Pérez Costoya
54
Serv. cerrojos con estado: leases (4)
C1 C2 C3
c1 → lease(m1)
c3 → lock(m3) cola de mensajes de S
c2 → lease(m2)
Ø Treinicio>Tlease S
Sistemas Operativos Distribuidos Fernando Pérez Costoya
55
Serv. cerrojos con estado: leases (5)
C1 C2 C3
suscribe(ev5)
Su1 notifica(ev5)
Ed1
suscribe(ev3)
Su2
publica(ev5)
Ed2
suscribe(ev5)
Su3 notifica(ev5)
Ed3
suscribe(ev1)
Su4
Cl Ed
genera genera
datos datos
Entidad Entidad
Entidad
Entidad
Entidad
Entidad
Entidad
Entidad Entidad
Interfaz de Diálogo
Wikipedia Chord
Sistemas Operativos Distribuidos Fernando Pérez Costoya
76
Búsqueda en anillo 24
Wikipedia Chord
Sistemas Operativos Distribuidos Fernando Pérez Costoya
77
Búsqueda con fingers
Np Ns Np Ns Np Ns Np Ns
Nn Nn Nn Nn
Estado join(Nn) stabilize(Nn) stabilize(Np)
inicial