Você está na página 1de 200

Sistemas Operativos Distribuidos

Prof. David A. Prez A. david.perez@ciens.ucv.ve Facultad de Ciencias - UCV


5/4/2012 1

Introduccin
Revolucin en los sistemas de computo.
Mainframes.
10 Millones de dlares 1 instruccin por seg.

Personal Computer.
1000 dlares 10 millones de instrucciones por seg.

Ganancia precio/rendimiento.
1011

No todo evoluciona de esta manera.


Rolls Royce 10 dlares Miles de manuales.
5/4/2012 2

Introduccin
Invencin y desarrollo de las redes de datos.
WANs y LANs a altas velocidades. Millones de bits/segundo.

Slo existe una mosca en la sopa.


Ideas. El software requiere ser radicalmente distinto. En particular el sistema operativo.

5/4/2012

Qu es un sistema distribuido?
Conjunto de entes interconectados que trabajan armoniosamente prestndose servicios unos a otros. Coleccin de computadoras independientes que aparecen ante los usuarios del sistema como una nica computadora.

5/4/2012

SD vs. Sistemas Centralizados

5/4/2012

SD vs. PC

5/4/2012

Desventajas de los SD

5/4/2012

Hardware en SD
Existen diversas maneras de organizar el hardware en un SD. Diversas clasificaciones.
Taxonomas de Flynn - 1972. Rudimentaria. Basada en dos caractersticas.
# de flujos de instrucciones. # de flujos de datos.

5/4/2012

Taxonomas de Flynn
SISD (Single Instruction, Single Data).
PCs a Mainframes.

SIMD (Single Instruction, Multiple Data).


Suma de elementos de 100 vectores independientes.

MISD (Multiple Instruction, Single Data).


Ningn computador se ajusta a este modelo.

MIMD (Multiple Instruction, Multiple Data).


Datos independientes, PCs independientes.
5/4/2012 9

Taxonomas de Flynn

5/4/2012

10

Taxonomas de Flynn

5/4/2012

11

Una taxonoma diferente

5/4/2012

12

Software en SD
Aunque el hardware es importante, el software lo es ms.
Por qu?

El software y en particular los sistemas operativos no se pueden clasificar tan fcil como el hardware.

5/4/2012

13

Software en SD
Tratemos con esta separacin:
Software dbilmente acoplado.
Computadores independientes en red.

Software fuertemente acoplado.


Multiprocesador dedicado a la ejecucin de un programa de ajedrez en paralelo.
Se asigna un tablero a cada CPU.

5/4/2012

14

Sistema Operativo de Red


Software dbilmente acoplado en hardware dbilmente acoplado. Ejemplos:
rlogin machine rcp machine1:file1 machine2:file2

Comunicacin primitiva.

5/4/2012

15

Sistema Operativo de Red

5/4/2012

16

Sistema Operativo de Red

5/4/2012

17

Sistema Operativo de Red


Qu es un Sistema Operativo de Red?
Ideas.

Reglas basadas en cliente-servidor.

5/4/2012

18

Sistema Operativo Distribuido


Software fuertemente acoplado en hardware dbilmente acoplado. Ideas:
imagen de un nico sistema uniprocesador virtual

5/4/2012

19

Sistema Operativo Distribuido


Caractersticas:
Mecanismo de comunicacin global entre procesos. Esquema global de proteccin. Administracin global de procesos.
Cmo se crean, destruyen, inician y detienen.

Sistema de archivo con visin uniforme.

5/4/2012

20

Sistema Operativo Distribuido


Caractersticas:
Mismas interfaces.
Ncleos idnticos.
Coordinacin de actividades globales.

Cul es el nivel de flexibilidad?


Visin en conjunto vs. Visin individual.

5/4/2012

21

Sistema Operativo Distribuido

5/4/2012

22

Aspectos de diseo
Transparencia.
Cmo engaan los diseadores del sistema a todas las personas, de forma que la coleccin de mquinas es tan slo un sistema de tiempo compartido? Dos niveles:
Ocultar la distribucin a los usuarios. Hacer que el sistema sea transparente para los programas.

5/4/2012

23

Aspectos de diseo
Transparencia.
Es ms difcil colocar una venda sobre los ojos del programador que los sobre los ojos del usuario final. El concepto de transparencia puede aplicarse en varios aspectos de un sistema distribuido.

5/4/2012

24

Transparencia

5/4/2012

25

Aspectos de diseo
Flexibilidad.
Por qu es importante que un sistema operativo distribuido sea flexible?
Mantener abiertas opciones.

Existen dos escuelas de pensamiento en cuanto a la estructura de los sistemas distribuidos.


Ideas.

5/4/2012

26

Flexibilidad

5/4/2012

27

Aspectos de diseo
Flexibilidad.
Ventajas y desventajas de cmo estructurar un SOD. Comparacin detallada (Douglis et al., 1991).
Sprite (Monoltico) vs. Amoeba (Microkernel).

5/4/2012

28

Aspectos de diseo
Confiabilidad.
Uno de los principales objetivos.
Mayor confiabilidad que los sistemas de un solo procesador.

Similitud de un sistemas distribuido con un OR booleano. Similitud de un sistemas distribuido con un AND booleano.

5/4/2012

29

Aspectos de diseo
Confiabilidad.
un sistema distribuido es aquel del cual no puedo obtener un trabajo debido a que cierta mquina de la cual nunca he odo se ha descompuesto (Leslie Lamport). Qu quiere decir esto?
Irona.

Ideas para posibles soluciones.

5/4/2012

30

Aspectos de diseo
Desempeo.
Mejorar la velocidad de todo. Mtricas de desempeo.
Tiempo de respuesta. # de trabajos por hora. Uso del sistema.

Qu papel juega la comunicacin? Prestar atencin al tamao del grano.

5/4/2012

31

Aspectos de diseo
Escalabilidad.
Ejemplo del sistema telefnico francs.
Minitel.

5/4/2012

32

Aspectos de diseo
Escalabilidad.
Caractersticas de los algoritmos descentralizados:
Ningn nodo conoce el estado completo del sistema. Las decisiones se toman en base a informacin local. La falla de un nodo no compromete el algoritmo. No existe una hiptesis implcita de la existencia de un reloj global.

5/4/2012

33

Remote Procedure Call


Discutamos del paradigma cliente-servidor. Implicaciones de la E/S y el paso de mensajes. Birrell y Nelson (1984).
Qu propucieron?

5/4/2012

34

Remote Procedure Call

5/4/2012

35

Remote Procedure Call


La idea parece sencilla, pero existen algunas sutilezas.
Procedimientos en espacios de direcciones diferentes. Necesidad de transferir parmetros y resultados. Qu ocurre en caso de fallas?

5/4/2012

36

RPC Operacin bsica


Para entender el funcionamiento de RPC.
Es necesario entender una llamada convencional a procedimiento.

count= read(fd, buf, nbytes); Qu ocurre cuando se invoca a read?

5/4/2012

37

RPC Operacin bsica

5/4/2012

38

RPC Operacin bsica


Observaciones en cuanto al pase de parmetros.
Valor. Referencia. Copia/restauracin.

5/4/2012

39

RPC Operacin bsica


La idea detrs de RPC es que una llamada a procedimiento remoto se parezca lo ms posible a una llamada local. Cmo podemos lograr esto? Client Stub. Server Stub.

5/4/2012

40

RPC Operacin bsica

5/4/2012

41

RPC Operacin bsica


1. El cliente invoca al Client Stub. 2. Client Stub construye un mensaje y realiza una llamada al ncleo. 3. El ncleo enva el mensaje al ncleo remoto. 4. El ncleo remoto proporciona el mensaje al Server Stub. 5. El Server Stub desempaqueta los parmetros y llama al procedimiento.
5/4/2012 42

RPC Operacin bsica


6. El procedimiento culmina y regresa el resultado al Server Stub. 7. El Server Stub empaqueta el resultado y hace una llamada al ncleo. 8. El ncleo remoto, enva el mensaje al ncleo cliente. 9. El ncleo del cliente da el mensaje al Client Stub. 10.El Client Stub desempaqueta el resultado.
5/4/2012 43

RPC Transferencia de parmetros


A qu nos referimos con esto? Ordenamiento de parmetros. Funcionamiento.

5/4/2012

44

RPC Transferencia de parmetros

5/4/2012

45

RPC Transferencia de parmetros

5/4/2012

46

RPC Transferencia de parmetros


Soluciones.
Ideas.

Forma cannica.

5/4/2012

47

RPC Semntica en caso de falla


Si el trasfondo de RPC es la transparencia.
Qu hacer en caso de falla?

Distinguiremos cinco clase de fallas.


1. El cliente no puede localizar al servidor. 2. Se pierde el mensaje de solicitud del cliente al servidor. 3. Se pierde el mensaje de respuesta del servidor al cliente. 4. El servidor falla antes de recibir una solicitud. 5. El cliente fallas despus de enviar una solicitud.
5/4/2012 48

RPC El cliente no puede localizar al servidor


Razones.
El servidor esta inactivo. El Server Stub es incompatible con el Client Stub.

Cmo solventar este inconveniente?


En C podramos utilizar un valor especial, p.e: -1.
Implicaciones.

Solucin alternativa.
Excepciones.

5/4/2012

49

RPC Prdida de mensaje de solicitud


Parece ms fcil de tratar.
Ideas.

Iniciar un temporizador en el ncleo al enviar la solicitud.


Funcionamiento. Qu pasa si se pierden todos los mensajes?
Regresamos al caso anterior.

5/4/2012

50

RPC Prdida del mensaje de respuesta


Un poco ms compleja de enfrentar.
Ideas.

Solucin basada en el caso anterior.


Funcionamiento. Implicaciones.
Recuperar una porcin de un archivo.
Idempotente.

Realizar una transferencia bancaria.

5/4/2012

51

RPC Fallas del servidor


Posibles fallas del lado del servidor.
Ideas.

Dnde radica el problema?


El ncleo del cliente no puede diferenciar en que punto a ocurrido la falla.

5/4/2012

52

RPC Fallas del servidor

5/4/2012

53

RPC Fallas del servidor


Soluciones.
Semntica de al menos una vez.
Mantener vivo el intento.

Semntica de a lo ms una vez.


Darse por vencido de inmediato.

No se garantiza nada.
Desde 0 a un nmero grande.

5/4/2012

54

RPC Fallas del cliente


Qu ocurre si un cliente enva una solicitud a un servidor para que este realice cierto trabajo y falla antes de que el servidor responda? En este momento esta activa una labor de computo y ningn padre espera el resultado.
Hurfano.

5/4/2012

55

RPC Fallas del cliente


Solucin 1.
El Client Stub crea una entrada que indica lo que va a hacer cada invocacin. Qu hacer cuando el cliente vuelve a iniciar? Exterminacin.
Desventajas.

5/4/2012

56

RPC Fallas del cliente


Solucin 2.
Reencarnacin. Divisin del tiempo en pocas secuenciales. Qu hacer cuando el cliente vuelve a iniciar?

5/4/2012

57

RPC Fallas del cliente


Solucin 3.
Reencarnacin sutil. Modificacin de la reencarnacin, pero se trata de ubicar a los poseedores de los cmputos remotos. Qu hacer cuando el cliente vuelve a iniciar?

5/4/2012

58

RPC Fallas del cliente


Solucin 4.
Expiracin. Se asigna una cantidad de tiempo estndar T. Qu ocurre si el procedimiento no devuelve antes de T? Qu hacer cuando el cliente vuelve a iniciar?

5/4/2012

59

Gestin Distribuida de Procesos


La migracin de procesos es la posibilidad de mover un proceso activo de una mquina a otra. Considerar.
Coordinar actividades de procesos. Sistemas diferentes. Gobernados por un reloj local. Retardo en el intercambio de informacin.
5/4/2012 60

Migracin de procesos
Transferencia de una parte suficiente del estado de un proceso. Posibilidad de ejecutarse en otra mquina. Balanceo de cargas. La migracin real de procesos en ejecucin es trivial en teora, pero cerca de lo imposible en la prctica (Andrew Tanenbaum).

5/4/2012

61

Migracin de procesos
Motivacin:
Comparticin de la carga. Rendimiento de las comunicaciones. Fiabilidad. Utilizacin de caractersticas especiales.

5/4/2012

62

Migracin de procesos - Mecanismos


Consideraciones:
Quin da inicio a la migracin? Qu parte del proceso emigra? Qu les ocurre a los mensajes y seales pendientes?

5/4/2012

63

Migracin de procesos - Qu emigra?

5/4/2012

64

Migracin de procesos - Qu emigra?


El movimiento del PCB es sencillo. La dificultad recae en el movimiento del espacio de direcciones el proceso y en los archivos abiertos.

5/4/2012

65

Migracin de procesos - Qu emigra?


En cuanto al espacio de direcciones:
Transferir todo el espacio de direcciones en el momento de la migracin. Transferir slo aquella parte del espacio de direcciones que reside en memoria principal. Consideraciones en cuanto al manejo de hilos.

En cuanto a los archivos abiertos.


Preguntar sobre archivos y caches.
5/4/2012 66

Migracin de procesos - Qu emigra?


Mensajes y seales.
Qu ocurre con los mensajes y seales mientras dura la migracin?
Ideas.

Almacenamiento temporal.

5/4/2012

67

Un escenario de migracin
AIX de IBM (Automigracin).
1. Seleccionar una mquina destino, y enviar un mensaje de tarea remota.
Qu informacin lleva el mensaje?

2. En la mquina destino, un proceso servidor del ncleo crea un hijo y le cede el mensaje. 3. El nuevo proceso extrae la informacin del mensaje, y es el encargado de replicar la imagen del proceso a emigrar.
5/4/2012 68

Un escenario de migracin
AIX de IBM (Automigracin).
4. Se indica con una seal al proceso originario que la migracin a terminado. Este proceso enva un mensaje final de terminacin al nuevo proceso y se destruye.

5/4/2012

69

Un escenario de migracin
Cmo seria una migracin, si el que inicia la migracin no es el mismo proceso?
Ideas.

5/4/2012

70

Un escenario de migracin
Cuando la migracin la inicia otro proceso.
1. Copiar la imagen del proceso y todo su espacio de direcciones a un archivo. 2. Destruir el proceso a migrar. 3. Copiar el archivo a otra mquina va una transferencia de archivos. 4. Volver a crear el proceso en la nueva mquina, a partir del archivo.

5/4/2012

71

Negociacin de la migracin
A qu nos referimos con esto?
Ideas.

Concepto de entidad iniciadora.


Starter.

5/4/2012

72

Negociacin de la migracin
1. El iniciador que controla el sistema origen (S) decide que un proceso (P) debe emigrar a un sistema destino determinado (D). Entonces enva un mensaje al Iniciador de D solicitando la transferencia. 2. Si el iniciador de D est preparado para recibir al proceso, devuelve un acuse de recibo afirmativo.
5/4/2012 73

Negociacin de la migracin
3. El iniciador de S le comunica su decisin al ncleo de S, a travs de la llamada a un servicio (si el iniciador se esta ejecutando en S) o mediante un mensaje al KernJob (KJ) de la mquina S. 4. El ncleo de S se ofrece entonces para enviar el proceso D. En la oferta se incluyen estadsticas sobre P.
5/4/2012 74

Negociacin de la migracin
5. Si D anda escaso de recursos, puede rechazar la oferta. En otro caso, el ncleo de D propone la oferta a su iniciador. En la propuesta se incluye la misma informacin recibida de S. 6. La decisin segn la poltica del iniciador es comunicada a D por medio de una llamada MigrateIn.
5/4/2012 75

Negociacin de la migracin
7. D reserva los recursos necesarios y enva a S una aprobacin.

5/4/2012

76

Negociacin de la migracin

5/4/2012

77

Desalojo de procesos
El proceso de negociacin permite que un sistema destino rechace la migracin. Adicionalmente, puede ser til que un sistema desaloje un proceso que ha emigrado hacia l.
Bajo que circunstancias?

El sistema operativo SPRITE es un ejemplo.

5/4/2012

78

Desalojo de procesos
En SPRITE.
Un proceso esta casado con una nica mquina.
Nodo de origen.

Si un proceso migra, se convierte en un proceso extranjero.


Nodo destino.

5/4/2012

79

Desalojo de procesos
1. Un proceso supervisor lleva la cuenta de carga actual para determinar cundo se pueden aceptar nuevos procesos extranjeros. Si el supervisor detecta actividad en dicha estacin, se inicia un procedimiento de desalojo para cada proceso extranjero. 2. El proceso desalojado volver a su nodo de origen.
5/4/2012 80

Desalojo de procesos
3. El desalojo se realiza para todos los procesos extranjeros en el nodo.
Consideraciones.

4. El espacio de direcciones por completo de un proceso desalojado es transferido al nodo de origen.


Consideraciones.

5/4/2012

81

Transferencias Apropiativas y No Apropiativas


A qu nos referimos?
Parcialmente ejecutado o creacin finalizada. Proceso que an no han comenzado se ejecucin.

Ventajas y desventajas.

5/4/2012

82

Sincronizacin
Cmo es la comunicacin en un sistema distribuido? Cmo se ataca la sincronizacin en los sistemas convencionales? Por qu no hacer lo mismo ac?
Premisa en la existencia de memoria compartida.

5/4/2012

83

Sincronizacin de relojes

Es posible sincronizar todos los relojes en un sistema distribuido?


5/4/2012 84

Relojes
La mayora de las computadoras poseen un circuito para el registro del tiempo.
Reloj vs. Cronmetro.

Cristal de cuarzo trabajado con precisin.


Tensin Oscilacin a un frecuencia.

5/4/2012

85

Relojes
A cada cristal se le asocian dos registros:
Contador. Registro mantenedor.

Cmo controlar el nmero de interrupciones? Cada interrupcin recibe el nombre de marca de reloj.

5/4/2012

86

Relojes
Cul es el problema con los relojes? Distorsin de reloj. Ideas para solventar esta situacin.

5/4/2012

87

Relojes
La sincronizacin no tiene que ser absoluta. Qu pasa si dos procesos no interactan? Lo que importa por lo general, no es que todos los procesos concuerden de manera exacta en la hora, sino que coincida en el orden en que ocurren los eventos (Lamport, 1990)

5/4/2012

88

Relojes
Relojes lgicos.
La importancia radica en la consistencia interna de los relojes, no su particular cercana al tiempo real.

Relojes fsicos.
Existe una consistencia interna, y adems un umbral permitido de discrepancia con el tiempo real.

5/4/2012

89

Relojes lgicos
Lamport defini una relacin llamada ocurre antes de.
A B A ocurre antes que B 1. Si A y B son eventos en el mismo proceso y A ocurre antes que B, entonces A B. 2. Si A es el evento del envo de un mensaje por un proceso y B es el evento de la recepcin del mensaje, entonces A B. 3. Si A B y B C, entonces A C.
5/4/2012 90

Relojes lgicos
Lo que necesitamos es una forma de medir el tiempo tal que, a cada evento A, le podamos asociar un valor de tiempo C(A) en el que todos los procesos estn de acuerdo. Si A B, entonces C(A) < C(B).

5/4/2012

91

Relojes lgicos

5/4/2012

92

Relojes lgicos
1. Si A ocurre antes de B en el mismo proceso, C(A) < C(B). 2. Si A y B son el envo y la recepcin de un mensaje, C(A) < C(B). 3. Para todos lo eventos A y B, C(A) C(B).

5/4/2012

93

Relojes fsicos
Mediciones con base al sol. Reloj atmico 1948. Tiempo Atmico Internacional (TAI). Coordinated Universal Time (UTC).

5/4/2012

94

Relojes fsicos

Ejemplo NTP.
5/4/2012 95

Deadlock en SD
Objetivos.
Comprender y describir el problema de abrazo mortal distribuido. Diferenciar el abrazo mortal por recursos y por comunicacin. Comprender y comparar diferentes enfoques para manejar el problema de abrazo mortal.

5/4/2012

96

Deadlock en SD
Los bloqueos en los sistemas distribuidos son similares a los bloqueos en los sistemas con un procesador, slo que peores (Tanenbaum).

5/4/2012

97

Deadlock en SD
Dos tipos de bloqueos distribuidos:
Por comunicacin.
A enva B enva C enva A.

Por recursos.
Acceso exclusivo a dispositivos de E/S, archivos, etc.

Al final esta distincin es opcional.


Un buffer o canal de comunicacin puede manejarse como un recurso.

5/4/2012

98

Deadlock en SD
Estrategias para el manejo:
1. 2. 3. 4. Algoritmo del avestruz. Deteccin. Prevencin. Evitarlos.

Nos centraremos en:


Deteccin y prevencin. Por qu?
5/4/2012 99

Deadlock en SD
Definicin.
Es una situacin en la que se encuentran un conjunto de procesos donde cada proceso est esperando por un evento que slo puede ser producido por otro proceso perteneciente a ese mismo conjunto.

5/4/2012

100

Deadlock en SD

P2 P1 P3

P4

Nodo 1

Nodo 2

5/4/2012

101

Deteccin centralizada de deadlock


Utilizar un algoritmo centralizado para la deteccin de bloqueos y tratar de imitar al algoritmo no distribuido. Cada nodo construye su grafo de asignacin de recursos. Un nodo especial llamado coordinador, mantiene el grafo de asignacin de recursos de todo el sistema.
5/4/2012 102

Deteccin centralizada de deadlock


Cmo el grafo global del sistema?
Se enva un mensaje al coordinador por cada arista agregada o eliminada en cualquier grafo. Cada proceso puede enviar de manera peridica una lista de aristas agregadas o eliminadas desde la ltima actualizacin. El coordinador puede solicitar la informacin cuando la necesite.

5/4/2012

103

Deteccin centralizada de deadlock

5/4/2012

104

Deteccin centralizada de deadlock


Falso bloqueo.
Informacin incompleta o con retraso.

Soluciones.
Ideas. Cmo funciona su idea?
Descrbala.

5/4/2012

105

Deteccin centralizada de deadlock


Caractersticas.
El nodo de control puede mantener el grafo global constantemente o lo puede construir en un momento dado. Es conceptualmente simple y fcil de implementar. La resolucin del deadlock es optima ya que el nodo de control tiene toda la informacin y puede tomar la decisin ms acertada.

5/4/2012

106

Deteccin centralizada de deadlock


Desventajas.
Embotellamiento generado alrededor del nodo de control o coordinados. Punto nico de falla.

5/4/2012

107

Deteccin distribuida de deadlock


La responsabilidad de detectar el deadlock es compartida equitativamente entre todos los nodos. Estudiaremos el algoritmo de:
Chandy-Misra-Hass (1983).

5/4/2012

108

Chandy-Misra-Hass
Se utiliza cuando un proceso debe esperar por cierto recurso. Se utiliza un mensaje especial.
Mensaje de exploracin. El mensaje consta de:
El proceso recin bloqueado. El proceso que enva el mensaje. El proceso a cual se enva.

5/4/2012

109

Chandy-Misra-Hass

5/4/2012

110

Algoritmo Chandy-Misra-Hass
Todos los procesos poseen en su memoria local las siguientes estructuras para poder llevar a cabo el algoritmo propuesto:
ultimo(i): en este arreglo se almacena el nmero de secuencia ms grande en cualquier consulta enviada o recibida por Pk (el valor de m ms grande). IDUltimo(i): almacena el Id del proceso que envi el mensaje ms reciente, y cuyo valor m se almacen en Ultimo(i). num(i): almacena la cantidad de mensajes consulta(i,m,k,j) que envi Pk y an no han sido respondidos con su correspondiente mensaje respuesta(i,m,j,k). Si num(i) es 0, significa que Pk ha recibido respuesta de cada una de las consultas enviadas. espera(i): es verdadero si Pk est ocioso. Se hace falso cuando Pk pasa a estado En Ejecucin.

Cada proceso p almacena localmente su conjunto dependiente en el arreglo dependientes(p).

5/4/2012

111

Algoritmo Chandy-Misra-Hass

5/4/2012

112

Algoritmo Chandy-Misra-Hass

5/4/2012

113

Algoritmo Chandy-Misra-Hass

5/4/2012

114

Algoritmo Chandy-Misra-Hass

P2 P1 P3

P4

Nodo 1

Nodo 2

Asignacin.
Realizar la corrida del algoritmo de Chandy-MisraHass, con el estado inicial de la figura.
5/4/2012 115

Chandy-Misra-Hass
Caractersticas.
Cada nodo mantiene una porcin del grafo global. Cada nodo participa en la deteccin de un ciclo global. Son ms resistentes a fallas, y ningn nodo est sobrecargado con la deteccin de deadlock.

5/4/2012

116

Chandy-Misra-Hass
Desventajas.
Debido a las estructuras de datos su diseo resulta muy complejo.

5/4/2012

117

Deteccin jerrquica de deadlock


Los nodos se organizan en forma jerrquica y cada nodo detecta deadlocks en los que estn involucrados sus descendientes.

5/4/2012

118

Deteccin jerrquica de deadlock


Caractersticas:
Es el intermedio entre el centralizado y el distribuido. Explota los patrones de comunicacin locales a un grupo de nodos para detectar el deadlock. No es dependiente de la falla de un nodo. Un nodo no est sobrecargado por la deteccin de deadlock en los cuales muy posiblemente no est involucrado.
5/4/2012 119

Resolucin del deadlock


La persistencia de un abrazo mortal tiene dos efectos negativos sobre el rendimiento de un sistema:
Los recursos en manos de procesos interbloqueados no estn disponibles a otros procesos. El tiempo mientras persista el deadlock se suma al tiempo de respuesta de cada proceso interbloqueado.
5/4/2012 120

Resolucin del deadlock


La espera por recursos agrega arcos y nodos al grafo de asignacin de recursos. La resolucin de deadlock remueve arcos y nodos del grafo de asignacin de recursos.

5/4/2012

121

Prevencin distribuida de deadlock


Algoritmo Espera-Muere.

5/4/2012

122

Prevencin distribuida de deadlock


Algoritmo Herida-Espera.

5/4/2012

123

Memoria compartida distribuida


Una clasificacin de los sistemas MIMD respecto a su memoria es:
Sistemas de memoria compartida. Sistemas de memoria distribuida. Sistemas de memoria compartida y distribuida.

Ideas de cada uno.

5/4/2012

124

Memoria compartida distribuida


En 1986 Li y Hudak propusieron un esquema de memoria conocido como:
Memoria compartida distribuida.
Coleccin de estaciones de trabajo. Conectadas a travs de una LAN. Compartiendo un solo espacio de direcciones virtuales con pginas.

5/4/2012

125

Memoria compartida distribuida


Sistemas de memoria compartida.

5/4/2012

126

Memoria compartida distribuida


Sistemas de memoria distribuida.

5/4/2012

127

Memoria compartida distribuida


Sistemas de memoria compartida distribuida.

5/4/2012

128

Memoria compartida distribuida


Qu es la memoria compartida?

5/4/2012

129

Memoria compartida distribuida


Qu es la memoria compartida?

5/4/2012

130

Memoria compartida distribuida


Snoopy cache

5/4/2012

131

Memoria compartida distribuida


Necesitamos un protocolo de manejo de bloques de cache.
Ideas.

Piense en los siguientes estados:


Invlido.
Datos invlidos en cache.

Limpio.
La memoria esta actualizada.

Sucio.
La memoria es incorrecta.
5/4/2012 132

5/4/2012

133

5/4/2012

134

Memoria compartida distribuida


Protocolo de manejo de bloques de cache.
Propiedades:
1. La consistencia se logra haciendo que todos los cachs husmen el bus. 2. El protocolo se integra dentro de la unidad de administracin de memoria. 3. Todo el algoritmo se realiza en un ciclo de memoria.

5/4/2012

135

Modelos de consistencia
Cmo se trabaja con la memoria en un sistema de memoria compartida distribuida?
Copias de lectura. Copias de escritura. Consideraciones.

5/4/2012

136

Modelos de consistencia
Un modelo de consistencia es en esencia un contrato entre el software y la memoria (Adve y Hill, 1990). Qu ocurre si se obedecen las reglas? Qu ocurre si se violan las reglas?

5/4/2012

137

Modelos de consistencia
Estricta. Secuencial. Causal. PRAM. Dbil. Liberacin. Entrada.
138

5/4/2012

Consistencia estricta
Cualquier lectura a una localidad de memoria x regresa el valor guardado por la operacin de escritura ms reciente en x. Consideraciones.

5/4/2012

139

Consistencia estricta

5/4/2012

140

Consistencia secuencial
El resultado de cualquier ejecucin es el mismo que si las operaciones de todos los procesos fueran ejecutadas en algn orden secuencial, y las operaciones de cada proceso individual aparecen en el orden especificado por su programa (Lamport 1979). Cuando los procesos se ejecutan en paralelo en diferentes mquinas, cualquier intercalado valido es aceptable, pero los procesos deben ver las mismas referencias a memoria en el mismo orden.
5/4/2012 141

Consistencia secuencial

5/4/2012

142

Consistencia secuencial

5/4/2012

143

Consistencia secuencial
Mtodo formal para expresar la consistencia secuencial. (Ahamad et al., 1993).
La serie de operaciones de lectura y escritura de un proceso i se denotan por Hi. Para obtener el orden relativo se fusionan las cadenas de operacin de cada Hi en una nueva cada S. En S se deben cumplir dos condiciones:
Mantenerse el orden del programa. Debe ser respetada la coherencia en la memoria.
5/4/2012 144

Consistencia causal
Las escrituras potencialmente relacionadas de forma causal son vistas por todos los procesos en el mismo orden. Las escrituras concurrentes pueden ser vistas en un orden diferente en mquinas diferentes (Hutto y Ahamad, 1990).

5/4/2012

145

Consistencia causal

5/4/2012

146

Consistencia causal

5/4/2012

147

Consistencia PRAM
PRAM (Pipelined RAM).
Las escrituras realizadas por un proceso son recibidas por los otros procesos en el orden en que son realizadas, pero las escrituras de procesos diferentes pueden verse en un orden diferente por procesos diferentes (Lipton y Sandberg, 1988).

5/4/2012

148

Consistencia PRAM

5/4/2012

149

Consistencia dbil
Segn Dubois et al., 1986:
1. Los accesos a las variables de sincronizacin son secuencialmente consistentes. 2. No se permite realizar un acceso a una variable de sincronizacin hasta que las escrituras hayan terminado en todas partes. 3. No se permite realizar un acceso a los datos (lectura o escritura) hasta realizar todos los accesos anteriores a las variables de sincronizacin.
5/4/2012 150

Consistencia dbil
No es necesario mostrar inmediatamente a otros procesos cambios en la memoria hechos por cada operacin de escritura. Los resultados de varias operaciones de escritura pueden ser combinados y enviados a otros procesos slo cuando ellos lo necesitan. Implementacin.
Se usa una variable de sincronizacin.
5/4/2012 151

Consistencia dbil

5/4/2012

152

Consistencia de liberacin
Gharachorlo et al., 1990. Distingue dos tipos de acciones de sincronizacin:
Las que preceden a la entrada en secciones crticas. Las que se desarrollan despus de completarse una seccin crtica. Estas acciones de sincronizacin son conocidas comnmente como:
acquire access ( acceso de adquisicin ). release access ( acceso de liberacin ).

5/4/2012

153

Consistencia de liberacin

5/4/2012

154

Consistencia de entrada
Mejora de la consistencia de liberacin.
Ideas.

Las variables compartidas que han cambiado ya no se determinan de manera emprica. Variables de sincronizacin independientes.

5/4/2012

155

Consistencia de entrada
Bershad y Zekauskas, 1991.
1. No se permite realizar un acceso de adquisicin a una variable de sincronizacin con respecto a un proceso hasta que se realicen todas las actualizaciones de los datos compartidos protegidos con respecto a ese proceso. 2. Antes de permitir la realizacin de un acceso en modo exclusivo a una variables de sincronizacin por un proceso, ningn otro proceso debe poseer la variable de sincronizacin, ni siquiera en modo no exclusivo.
5/4/2012 156

Consistencia de entrada
Bershad y Zekauskas, 1991.
3. Despus de realizar un acceso en modo exclusivo a una variable de sincronizacin, no se puede realizar el siguiente acceso en modo no exclusivo de otro proceso a esa variable de sincronizacin hasta haber sido realizado con respecto del propietario de esa variable.

5/4/2012

157

5/4/2012

158

Memoria compartida distribuida


DSM (Distributed Shared Memory).
DSM basada en pginas. DSM basada en variables compartidas. DSM basada en objetos.

5/4/2012

159

DSM basada en pginas


Memoria distribuida compartida clsica.
Li y Hudack, 1989.
IVY.

5/4/2012

160

DSM basada en pginas


Diseo bsico. Replica. Granularidad. Obtencin de la consistencia secuencial. Bsqueda de propietario. Bsqueda de las copias. Reemplazo de pginas.
161

5/4/2012

Diseo bsico
Idea.
Intentar emular el cach de un multiprocesador mediante MMU y el software del sistema operativo.

Cmo se vera esta idea?


Ideas.

Manejo de accesos locales vs. accesos remotos.


5/4/2012 162

5/4/2012

163

Rplica
Incrementa el rendimiento. Rplica de pedazos de solo lectura. Rplica de pedazos de lectura-escritura. Inconsistencia.

5/4/2012

164

Granularidad
Tamao del pedazo de memoria que se replica. Fallos de pgina. Traer pgina completa vs. Traer varias pginas. Comparticin falsa. Compiladores inteligentes.

5/4/2012

165

Granularidad

5/4/2012

166

Obtencin de la consistencia secuencial


Rplicas de pginas de lectura-escritura. Averiguar palabra a escribir y su valor. Actualizaciones simultaneas. Esquema de invalidacin vs. actualizacin. Protocolo de invalidacin.
Se garantiza consistencia.

5/4/2012

167

5/4/2012

168

5/4/2012

169

5/4/2012

170

5/4/2012

171

Bsqueda del propietario


Buscar directamente al propietario. Usar controlador de pginas. Mltiples controladores de pginas. Registro de probables propietarios. Ideas del funcionamiento de cada uno?

5/4/2012

172

Bsqueda del propietario

5/4/2012

173

Bsqueda de copias
Ideas. Medio de transmisin no-confiable. Lista del conjunto de copias. Protocolo de invalidacin.

5/4/2012

174

Bsqueda de copias

5/4/2012

175

Reemplazo de pginas
Buscar pgina para sacar de memoria. Pgina poseda por otro proceso. Pgina duplicada del proceso saliente. Pgina no duplicada. Transmitir nmero de marcos libres. Problema de comparticin activa.
T.

5/4/2012

176

Sistemas distribuido de archivos


Ideas. Hay que diferenciar entre:
Servicio de archivos.
Especificaciones. Primitivas, parmetros y acciones.

Servidor de archivos.
Proceso que se ejecuta en alguna mquina. Ayuda a implantar el servicio de archivo.

5/4/2012

177

Sistemas distribuido de archivos


Dos componentes bsicos:
Servicio de archivos.
Operaciones en archivos individuales:
Lectura, escritura, adiccin.

Servicio de directorios.
Crear y administrar directorios. Aadir y eliminar archivos del directorio.

5/4/2012

178

Interfaz del servicio de archivos


Pregunta fundamental.
Qu es una archivo?
Caractersticas. Atributos.
Propietario. Tamao. Permisos de acceso. Fecha de creacin.

5/4/2012

179

Interfaz del servicio de archivos


El servicio de archivo puede dividirse en dos tipos:
Modelo carga/descarga. Modelo de acceso remoto.

5/4/2012

180

Interfaz del servicio de archivos

5/4/2012

181

Interfaz del servidor de directorios


Define un alfabeto y una sintaxis para formar los nombres de:
Archivos. Directorios.

5/4/2012

182

Interfaz del servidor de directorios

5/4/2012

183

5/4/2012

184

Transparencia de nombres
Dos tipos de transparencia:
Transparencia con respecto a la posicin.
/servidor1/dir1/dir2/x

Independencia con respecto a la posicin.


/servidor1/dir1/dir2/x a /servidor2/dir1/dir2/x

5/4/2012

185

Transparencia de nombres
Tres mtodos usuales para nombrar los archivos y directorios en un sistema distribuido:
Nombre mquina + ruta de acceso.
/maquina/ruta o maquina:ruta

Montaje de sistemas de archivos remotos en la jerarqua local de archivos. Un espacio de nombres que tenga la misma apariencia en todas las mquinas.
5/4/2012 186

Rplicas
Razones para la existencia de este servicio:
1. Aumentar la confiabilidad al disponer de respaldos independientes. 2. Permitir el acceso al archivo aunque falle el servidor de archivos. 3. Repartir la carga de trabajo entre varios servidores.

5/4/2012

187

Mtodos de replicacin

5/4/2012

188

Semntica de los archivos compartidos


Semntica (Consistencia).
Concepto. Uso. Problemas.

5/4/2012

189

5/4/2012

190

Semntica de los archivos compartidos


Mtodo
Semntica de Unix

Comentario
Cada operacin en un archivo es visible a todos los procesos de manera instantnea Ningn cambio es visible a otros procesos hasta que el archivo se cierre No existen actualizaciones; es ms fcil compartir y replicar Todos los cambios tiene la propiedad del todo o nada
191

Semntica de Sesin

Archivos Inmutables Transacciones

5/4/2012

Protocolos de actualizacin
Dos mtodos para la actualizacin:
Rplica de la copia primaria. Algoritmo del voto.
Gifford, 1979. Algoritmo del voto con fantasma.

Ideas del funcionamiento de cada uno.

5/4/2012

192

Rplica de la copia primaria


Funcionamiento.
Servidor primario.

Qu pasa si el servidor primario falla?.


Soluciones.

5/4/2012

193

Algoritmo del voto


La idea fundamental es exigir a los clientes que soliciten y adquieran el permiso de varios servidores antes de leer o escribir un archivo replicado.

5/4/2012

194

Algoritmo del voto


El esquema de Gifford.
Dado un archivo con N rplicas. Un cliente necesita:
Qurum de lectura Nr Qurum de escritura Nw

Los valores de Nr + Nw > N

5/4/2012

195

Protocolos de actualizacin

5/4/2012

196

Algoritmo del voto con fantasma


Variante del algoritmo con voto.
Ideas.

En la mayora de las aplicaciones.


Lecturas son ms frecuentes que las escrituras.

Qu ocurre sin fallan unos cuantos servidores?

5/4/2012

197

Algoritmo del voto con fantasma


Se crea un servidor fantasma.
Qu hace? Por cada servidor real fallido. No se permite en el qurum de lectura, pero si en el de escritura.
Por qu?

Funcionamiento.
Qu hace con las escrituras?

5/4/2012

198

Algoritmo del voto con fantasma


Al arrancar de nuevo un servidor fallido.
Se debe obtener un qurum de lectura.
Por qu?

Por qu funciona el algoritmo?


Posee la misma propiedad del esquema bsico de votacin.
Nr y Nw se eligen de modo que sea imposible obtener un qurum de lectura y otro de escritura al mismo tiempo.
5/4/2012 199

5/4/2012

200

Você também pode gostar