sistemas operativos distribuidos gestión de procesos

26
Sistemas Operativos Distribuidos Gestión de procesos

Upload: leticia-neri

Post on 03-Feb-2015

61 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos

Gestión de procesos

Gestión de procesos

Page 2: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos2

Fernando Pérez CostoyaJosé María Peña

Sánchez

Contenidos del Tema

• Modelos de sistema• Asignación de procesadores• Estrategias dinámicas• Estrategias estáticas• Ejecución remota de procesos

Page 3: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos3

Fernando Pérez CostoyaJosé María Peña

Sánchez

Modelos de sistema

• Organización de los procesadores en un SD

• Tres alternativas:– Conjunto de estaciones de trabajo– Pool de procesadores– Modelo híbrido

Page 4: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos4

Fernando Pérez CostoyaJosé María Peña

Sánchez

Conjunto de estaciones de trabajo

• SD compuesto de estaciones de trabajo conectadas• Procesos de un usuario se ejecutan en su estación de trabajo. • Discos locales se utilizan para paginación, archivos

temporales, cache de ficheros y/o ficheros locales.• Normalmente hay un servidor de ficheros

Page 5: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos5

Fernando Pérez CostoyaJosé María Peña

Sánchez

Pool de procesadores

• Los usuarios utilizan terminales gráficos (p.ej. terminales X).• Existe un pool de procesadores donde se envían los procesos.• “Similar” al tiempo compartido.• Pool de procesadores Servidor de cómputo• Asignación dinámica de procesadores:

– Nuevo proceso a cualquier procesador– Usuario con más trabajo utiliza más procesadores

Page 6: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos6

Fernando Pérez CostoyaJosé María Peña

Sánchez

Modelo híbrido

• Usuarios utilizan estaciones de trabajo.• Existe un pool de procesadores• Trabajos interactivos en las estaciones de trabajo.• Trabajos no interactivos en el pool de procesadores.

Page 7: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos7

Fernando Pérez CostoyaJosé María Peña

Sánchez

Comparación de modelos

• No hay reparto de carga en modelo de estaciones de trabajo– Puede haber estaciones de trabajo inactivas y otras muy cargadas.– En entornos típicos se desperdicia 80% de ciclos totales de CPU.

• Uso de estaciones de trabajo inactivas:– Ejecutar procesos de forma transparente en máquinas “inactivas”.– ¿Qué es una estación de trabajo inactiva?

• “lleva varios minutos sin recibir entrada del teclado o ratón y no está ejecutando procesos interactivos”

– ¿Qué ocurre cuando deja de estar inactiva?• No hacer nada El cliente de la estación notará mal rendimiento.• Migrar el proceso a otra estación inactiva (costoso)• Continuar ejecutando el proceso con prioridad baja.

Page 8: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos8

Fernando Pérez CostoyaJosé María Peña

Sánchez

Asignación de procesadores

• Objetivos:– Decidir en qué procesador se debería ejecutar un proceso – Reparto y equilibrio de carga (load sharing/balancing)

• Suposiciones:– Todos los procesadores son compatibles.– La velocidad de los procesadores puede ser distinta.– Un procesador puede comunicarse con cualquier otro.

Page 9: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos9

Fernando Pérez CostoyaJosé María Peña

Sánchez

Tipos de carga

• Procesos cooperantes– Interaccionan entre sí– Pertenecientes a una misma aplicación paralela– Objetivo: minimizar tiempo de ejecución de aplicación

• Procesos disjuntos– Procesos independientes– Pertenecientes a distintos usuarios– Objetivo: maximizar utilización de procesadores

Page 10: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos10

Fernando Pérez CostoyaJosé María Peña

Sánchez

Tipos de asignación

• Estrategias estáticas– Determinista– Usada para procesos cooperantes– Asignación a priori a partir de características de aplicación paralela

• Estrategias dinámicas– Reparto y equilibrio de carga dinámico– Usada para procesos disjuntos– Asignación en tiempo de ejecución

Page 11: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos11

Fernando Pérez CostoyaJosé María Peña

Sánchez

Estrategias dinámicas

• Migratorias o No migratorias– ¿Proceso puede cambiar de procesador durante su ejecución?– Migratorias: mejor equilibrio de la carga pero más complejas

• Centralizadas o Distribuidas– ¿Existe un coordinador central?

• Óptimas o Subóptimas– ¿Busca la mejor asignación o una que sea aceptable?

• Locales o Globales– ¿Tiene en cuenta estado de la máquina local o estado del sistema?

Page 12: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos12

Fernando Pérez CostoyaJosé María Peña

Sánchez

Políticas de distribución de carga

• Estrategia dinámica controlada por tres políticas:

• Política de transferencia: determina cuándo transferir.• Política de selección: selecciona el proceso a transferir.• Política de ubicación: selecciona el nodo al que transferir.

Page 13: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos13

Fernando Pérez CostoyaJosé María Peña

Sánchez

Política de transferencia

• Generalmente, basada en umbral:– Si en nodo S carga > T unidades, S emisor de procesos– Si en nodo S carga < T unidades, S receptor de procesos

• Tipos de transferencias:– Expulsivas: se pueden transferir procesos ejecutados parcialmente.

• Supone transferir el estado del proceso.– No expulsivas: los procesos en ejecución no pueden ser transferidos.

Page 14: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos14

Fernando Pérez CostoyaJosé María Peña

Sánchez

Políticas de selección

• Elegir los procesos nuevos (transferencia no expulsiva).• Seleccionar los procesos con un tiempo de transferencia

mínimo (poco estado, mínimo 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.

Page 15: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos15

Fernando Pérez CostoyaJosé María Peña

Sánchez

Política de ubicación

• Muestreo: consulta de otros nodos para encontrar adecuado.• Alternativas:

– Muestreo secuencial o paralelo.– Selección aleatoria.– Nodos más próximos.– Enviar un mensaje al resto de nodos (broadcast).– Basada en información recogida anteriormente.

• Tres tipos de políticas:– Iniciadas por el emisor (Push) emisor busca receptores– Iniciadas por el receptor (Pull) receptor solicita procesos– Combinada iniciada por el emisor y/o por el receptor.

Page 16: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos16

Fernando Pérez CostoyaJosé María Peña

Sánchez

Algoritmos iniciados por el emisor

• Política de transferencia: umbral basado en la longitud de la cola de procesos listos.

• Política de selección: procesos nuevos.• Política de ubicación. Distintas alternativas:

– Elegir un nodo al azar.– Probar con un nº de nodos hasta encontrar un receptor.– Probar con un nº de nodos y elegir aquél con menos carga.

• Estabilidad: inestable con alta carga– Difícil encontrar receptores y los muestreos consumen CPU

Page 17: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos17

Fernando Pérez CostoyaJosé María Peña

Sánchez

Algoritmos iniciados por el receptor

• Política de transferencia: umbral basado en la longitud de la cola de procesos listos.

• Política de selección: cualquier proceso.• Política de ubicación: Ejemplo:

– Muestreo aleatorio de un nº limitado de nodos hasta encontrar uno con un nivel de carga > umbral.

– Si la búsqueda falla, esperar hasta que otro proceso termine o un periodo predeterminado antes de reintentar.

• Estabilidad: estable– Con altas cargas, probable que receptores encuentren emisores.

Page 18: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos18

Fernando Pérez CostoyaJosé María Peña

Sánchez

Un algoritmo combinado (1/2)

• Política de transferencia

0 Tmin Media del sistema Tmax

receptor emisor

• Política de ubicación dirigida por el emisor:– Emisor difunde mensaje SOBRECARGADO y espera ACEPTAR.– Un receptor envía ACEPTAR.– Si llega ACEPTAR: y el nodo todavía es emisor, transfiere el

proceso más adecuado.– Si no, difundir un mensaje CAMBIO-MEDIA para incrementar la

carga media estimada en el resto de nodos..

Page 19: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos19

Fernando Pérez CostoyaJosé María Peña

Sánchez

Un algoritmo combinado (2/2)

• Política de ubicación iniciada por el receptor:– Un receptor difunde un mensaje DESCARGADO y espera por

mensajes SOBRECARGADO.– Si llega un mensaje SOBRECARGADO, se envía un mensaje

ACEPTAR.– Si no, difundir un mensaje CAMBIO-MEDIA para decrementar la

carga media estimada en el resto de nodos.• Política de selección: cualquier proceso.

Page 20: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos20

Fernando Pérez CostoyaJosé María Peña

Sánchez

Estrategias estáticas

• Asignar procesos de una aplicación paralela a procesadores minimizando el tiempo de ejecución total– Debe buscar equilibrio entre paralelismo (uso de distinto procesador)

y minimizar coste de comunicaciones (uso del mismo procesador)• No solución óptima aunque muy estudiado. Dificultades en:

– Estimar coste de comunicaciones– Cómo reflejar que un proceso no ejecuta igual en todos procesadores

• Distintos modelos de paralelismo dependiendo de herramienta de programación paralela utilizada

• Dos modelos típicos:– Modelo basado en precedencia de procesos (cobegin-coend)– Modelo basado en procesos que se comunican

Page 21: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos21

Fernando Pérez CostoyaJosé María Peña

Sánchez

Modelo basado en precedencias

• Programa paralelo representado como grafo acíclico– Nodo representa un proceso con tiempo de ejecución conocido– Eje indica relación de precedencia entre procesos, incluye etiqueta

que muestra cantidad de datos que transfiere proceso a su sucesor• El problema en su forma general es NP-completo• Algoritmos con complejidad polinomial:

– Cuando sólo hay dos procesadores.• En el caso general se utilizan heurísticas:

– P. ej. buscar camino crítico (camino más largo en grafo) y asignar tareas implicadas al mismo procesador

• Uso de estragias migratorias:– Pueden dar mejor rendimiento pero son más complejas

Page 22: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos22

Fernando Pérez CostoyaJosé María Peña

Sánchez

Ejemplo

1

Planificador

5

2

43

10 10

2020

5

1

1 1

11

N1 N2

2 1

34

5

N1 N20

10

30

36

Page 23: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos23

Fernando Pérez CostoyaJosé María Peña

Sánchez

Uso de estrategias migratorias

Con migración 21

3

N1 N20

1

2

3

1 2

3

N1 N20

2

4

2

Page 24: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos24

Fernando Pérez CostoyaJosé María Peña

Sánchez

Modelo basado en comunicaciones

• Programa paralelo formado por procesos que se comunican• Modelado como grafo no dirigido donde:

– Nodo representa proceso con necesidades de UCP y memoria – Eje incluye etiqueta que indica cantidad de datos que intercambian

nodos implicados• El problema en su forma general es NP-completo• Algoritmos con complejidad polinomial:

– Cuando sólo hay dos procesadores.• En el caso general se utilizan heurísticas:

– P. ej. corte mínimo: Para P procesadores buscar P-1 cortes tal que se minimice el flujo entre cada partición

– Resultado: Cada partición (procesador) engloba a un conjunto de procesos “fuertemente acoplados”

Page 25: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos25

Fernando Pérez CostoyaJosé María Peña

Sánchez

Ejemplo

Tráfico entre nodos: 13+17=30

Tráfico entre nodos: 13+15=28

Tanenbaum. “Sistemas Operativos Distribuidos” © Prentice Hall 1996

Page 26: Sistemas Operativos Distribuidos Gestión de procesos

Sistemas Operativos Distribuidos26

Fernando Pérez CostoyaJosé María Peña

Sánchez

Ejecución remota de procesos

• ¿Cómo ejecutar un proceso de forma remota?– Crear el mismo ambiente de trabajo:

• entorno, directorio actual, etc.– Redirigir ciertas llamadas al sistema a máquina origen:

• P. ej. interacción con el terminal• Migración (transferencia expulsiva) mucho más compleja:

– “Congelar” el estado del proceso– Transferir a máquina destino– “Descongelar” el estado del proceso

• Numerosos aspectos complejos:– Redirigir mensajes y señales– ¿Copiar espacio de swap o servir fallos de pág. desde origen?