Professional Documents
Culture Documents
CC331
HOD
Estructura de SD
Un SD es un conjunto de procesadores
dbilmente acoplados, interconectados por una
red de comunicaciones
Dbilmente acoplados, significa que los
procesadores no comparten memoria ni reloj
Recurso remotos y locales
Razones para construir SD
CC331
Comparticin de recursos
Aceleracin de clculos compartir carga
Confiabilidad
Comunicacin
HOD
Estructura de SD (I)
CC331
HOD
CC331
HOD
CC331
HOD
SO Distribuidos
Migracin de datos
Transferir todo el archivo a la instalacin
local, todo acceso posterior es local
(Andrew)
Una vez utilizado, se devuelve una copia del
archivo (si existe modificacin)
O transferir slo las porciones del archivo
necesarias para la tarea actual (NFS)
Se devuelve una copia de cada porcin
modificada
CC331
HOD
SO Distribuidos (I)
Migracin de clculos
Transferir el clculo en vez de los datos
Ejemplo,
aplicacin que necesita varios
archivos de gran tamao para generar algn
resumen
Mediante
una llamada a procedimiento
remoto
O mediante mensaje de instalacin para
crear un nuevo proceso
CC331
HOD
SO Distribuidos (II)
Migracin de procesos
CC331
Asuntos de Diseo
Transparencia
Tolerancia a fallos
CC331
HOD
Escalabilidad
Capacidad de un sistema para adaptarse a
un incremento en el servicio
Cuando
la demanda crece, el sistema
debera permitir una fcil incorporacin de
nuevos recursos
Agrupamiento (clusters)
Coleccin de mquinas semi-autnomas que
actan como un sistema
Normalmente existe un servidor dedicado al
agrupamiento, que controla las solicitudes
CC331
HOD
10
Coordinacin Distribuida
Ordenacin de eventos
CC331
HOD
11
CC331
HOD
12
Implementacin de
CC331
RL = max(RL,t) + 1
13
Suposiciones
Sistema consiste de N procesos, cada
proceso reside en un procesador diferente
Cada proceso desea acceder a una SC que
requiere exclusin mutua
Requerimiento
CC331
HOD
14
Enfoque Centralizado
CC331
HOD
15
Colade
peticiones
4
2
1.Peticinde
testigo
2.liberacin
detestigo
CC331
3.concesin
detestigo
HOD
16
Evaluacin:
Entrada a la SC conlleva dos mensajes, incluso
si no hay proceso en la SC
Se retrasa al proceso debido a la duracin del i/v
La salida de la SC involucra un mensaje
No se retrasa al proceso que sale (asncrono)
Retraso
de sincronizacin est asociado al
tiempo de i/v (liberacin-concesin)
El servidor se puede convertir en cuello de
botella
CC331
HOD
17
CC331
HOD
18
CC331
HOD
19
Una implementacin
En la inicializacin:
estado := LIBERADA;
Para entrar en SC
estado := BUSCADA;
Multitransmite peticin a todos los procesos; se aplaza el procesamiento de
peticiones
T := marca temporal de la peticin;
Espera hasta que (nmero de respuestas recibidas = (N 1));
estado := TOMADA;
CC331
HOD
20
41
Respuesta
Respuesta
41
34
CC331
HOD
34
Respuesta
34
21
Comportamiento deseable:
Se obtiene la exclusin mutua
Se asegura la no existencia de bloqueos
mutuos
Se asegura la no existencia de bloqueo
indefinido, ya que la entrada a la SC se
planifica de acuerdo a las marcas de tiempo,
lo que asegura orden FIFO
Nmero de mensajes por entrada a SC es
2*(N-1), nmero mnimo de mensajes cuando
los
procesos
actan
independiente
y
concurrentemente
CC331
HOD
22
Consecuencias indeseables
Los procesos necesitan conocer la identidad de
todos los dems procesos en el sistema, lo que
hace ms complejos el aadir o quitar procesos
Si falla uno de los procesos, se viene abajo todo
el esquema. Se puede resolver monitoreando
continuamente el estado de todos los procesos
Los procesos que no han entrado a SC deben
efectuar pausas frecuentes para asegurar, a los
dems procesos, que pretenden entrar a SC
CC331
HOD
23
CC331
HOD
24
p
4
Testigo
CC331
HOD
25
Evaluacin:
Consume continuamente ancho de banda,
excepto cuando un proceso est en la SC
Retraso que experimenta un proceso que desea
entrar a la SC est entre 0 y N mensajes
Para salir de la SC se necesita slo un mensaje
Retraso de sincronizacin est entre 1 y N
transmisiones de mensajes
CC331
HOD
26
Prevencin
de
bloqueos
mutuos
ordenando los recursos del sistema:
Definir un ordenamiento global entre los
recursos del sistema
Asignar un nmero nico a todos los recursos
del sistema
Proceso solicita recurso con nmero nico i
slo si no retiene un recurso con un nmero
mayor que i
Simple
de implementar y genera poco
overhead
CC331
HOD
27
CC331
HOD
28
CC331
HOD
29
El esquema no expropiativo
El esquema expropiativo
CC331
30
Consideraciones:
Esquema no expropiativo, el proceso ms
viejo debe esperar a que otro ms joven
libere su recurso
Mientras ms viejo el proceso ms tiende a
esperar
Esquema expropiativo, un proceso viejo
nunca espera a uno joven
Existen menos retrocesos en el esquema
expropiativo
CC331
HOD
31
CC331
HOD
32
CC331
HOD
33
CC331
HOD
34
CC331
HOD
35
Enfoque centralizado
El grafo global se construye como la unin
de todos los grafos locales de espera
Se
mantiene en un proceso nico: el
coordinador de deteccin de BM
Debido
a que hay demora en las
comunicaciones:
CC331
36
Enfoque centralizado
CC331
37
Consideremos la opcin 1
CC331
38
Consideremos la opcin 1
CC331
39
CC331
HOD
40
CC331
41
1.
2.
3.
CC331
42
Enfoque jerrquico
A, B y C controladores, C antepasado de A y B; si Pi
aparece en grafo local de A y B, entonces tambin
debe aparecer en los grafos de:
CC331
El controlador C
Cada uno de los controladores en camino de C a A
Cada uno de los controladores en camino de C a B
HOD
43
CC331
Enfoque jerrquico
HOD
44
P1
P2
P5
P3
P2
P4
P3
Instalacin B
Instalacin A
CC331
HOD
45
CC331
46
CC331
HOD
47
CC331
CC331
HOD
49
CC331
50
Algoritmos de Eleccin
CC331
HOD
51
Se asume que:
CC331
HOD
52
Generalidades:
Permite la cada de procesos durante la eleccin
Supone sistema sncrono (timeouts para detectar
fallo de procesos)
Supone que cada proceso conoce a los dems
(Id)
Proceso
que
detecta
no
respuesta
del
coordinador comienza el algoritmo
Tres tipos de mensajes:
CC331
53
Funcionamiento
Proceso con Id ms alto se elige a s mismo como
coordinador, enviando un mensaje coordinador a
todos los procesos con menor Id
Proceso que inicia una eleccin, enva mensajes
de eleccin slo a procesos con mayor Id
CC331
54
Funcionamiento
Un
proceso
que
recibe
un
mensaje
coordinador, fija su variable elegidoi con el Id
en el mensaje
Si un proceso recibe un mensaje de eleccin,
devuelve una respuesta y comienza otra
eleccin (a no ser que ya haya comenzado
una)
Si se lanza un proceso nuevo, ste comienza
una eleccin, si tiene el Id ms alto decide que
es el coordinador y lo anuncia a todos
CC331
HOD
55
eleccin
etapa1
respuesta
respuesta
p1
eleccin
eleccin
etapa2
respuesta
eleccin
timeout
etapa3
Alfinal.....
coordinador
C
etapa4
CC331
HOD
56
Note que:
Procesos slo responde a procesos con menor Id
Proceso que recibe respuesta de uno con mayor
Id abandona la eleccin
Evaluacin
Mejor caso, proceso con segundo ms alto Id da
cuenta del fallo del coordinador, (N-2) mensajes
Peor caso, proceso con menor Id da cuenta del
fallo del coordinador, nmero de mensajes O(N2)
CC331
HOD
57
Un Algoritmo de Anillo
Supone
Enlaces unidireccionales, envo vecino de
derecha
Cada proceso mantiene lista de procesos activos
Funcionamiento
Si Pi detecta una falla del coordinador, crea una
nueva lista de procesos activos vaca
P
i enva mensaje eleccin(i) a su vecino y
agrega i a la lista de procesos activos
CC331
HOD
58
Funcionamiento
CC331
HOD
59
Evaluacin
Se necesita transmitir N2 mensajes para que
todos conozcan al nuevo coordinador
Una alternativa sera:
CC331
HOD
60
CC331
HOD
61
CC331
62
17
4
24
9
1
15
28
24
Nota:Laeleccinfueiniciadaporelproceso17
Elidentificadormselevadoencontradoacontinuacines24.
Procesosparticipantesestnsealadosconuntonomsoscuro
CC331
HOD
63
Evaluacin:
CC331
HOD
64