PDF 6-por-pág

Anuncio
Sistemas Operativos Distribuidos
Contenidos del Tema
Sistemas Operativos Distribuidos
Gestión de
procesos
•
•
•
•
•
Modelos de sistema
Asignación de procesadores
Estrategias dinámicas
Estrategias estáticas
Ejecución remota de procesos
Sistemas Operativos Distribuidos
2
Modelos de sistema
Conjunto de estaciones de trabajo
• Organización de los procesadores en un SD
• 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
• Tres alternativas:
– Conjunto de estaciones de trabajo
– Pool de procesadores
– Modelo híbrido
Sistemas Operativos Distribuidos
3
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
4
Pool de procesadores
•
•
•
•
•
Fernando Pérez Costoya
José María Peña Sánchez
Fernando Pérez Costoya
José María Peña Sánchez
Modelo híbrido
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:
•
•
•
•
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.
– Nuevo proceso a cualquier procesador
– Usuario con más trabajo utiliza más procesadores
Sistemas Operativos Distribuidos
5
6- Gestión de procesos
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
6
Fernando Pérez Costoya
José María Peña Sánchez
1
Sistemas Operativos Distribuidos
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.
Asignación de procesadores
• Objetivos:
– Decidir en qué procesador se debería ejecutar un proceso
– Reparto y equilibrio de carga (load sharing/balancing)
• 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?
• Suposiciones:
– Todos los procesadores son compatibles.
– La velocidad de los procesadores puede ser distinta.
– Un procesador puede comunicarse con cualquier otro.
• 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.
Sistemas Operativos Distribuidos
7
Fernando Pérez Costoya
José María Peña Sánchez
Tipos de carga
Fernando Pérez Costoya
José María Peña Sánchez
Tipos de asignación
• Procesos cooperantes
• Estrategias estáticas
– Interaccionan entre sí
– Pertenecientes a una misma aplicación paralela
– Objetivo: minimizar tiempo de ejecución de aplicación
• Procesos disjuntos
– Determinista
– Usada para procesos cooperantes
– Asignación a priori a partir de características de aplicación paralela
• Estrategias dinámicas
– Procesos independientes
– Pertenecientes a distintos usuarios
– Objetivo: maximizar utilización de procesadores
Sistemas Operativos Distribuidos
9
Sistemas Operativos Distribuidos
8
– Reparto y equilibrio de carga dinámico
– Usada para procesos disjuntos
– Asignación en tiempo de ejecución
Fernando Pérez Costoya
José María Peña Sánchez
Estrategias dinámicas
Sistemas Operativos Distribuidos
10
Fernando Pérez Costoya
José María Peña Sánchez
Políticas de distribución de carga
• Migratorias o No migratorias
• Estrategia dinámica controlada por tres políticas:
– ¿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
• 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.
– ¿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?
Sistemas Operativos Distribuidos
11
6- Gestión de procesos
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
12
Fernando Pérez Costoya
José María Peña Sánchez
2
Sistemas Operativos Distribuidos
Política de transferencia
Políticas de selección
• 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.
• 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.
• Supone transferir el estado del proceso.
– No expulsivas: los procesos en ejecución no pueden ser transferidos.
Sistemas Operativos Distribuidos
13
Fernando Pérez Costoya
José María Peña Sánchez
Política de ubicación
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.
– 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.
Fernando Pérez Costoya
José 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.
Sistemas Operativos Distribuidos
17
6- Gestión de procesos
• 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.
• Tres tipos de políticas:
Sistemas Operativos Distribuidos
15
Fernando Pérez Costoya
José María Peña Sánchez
Algoritmos iniciados por el emisor
• Muestreo: consulta de otros nodos para encontrar adecuado.
• Alternativas:
–
–
–
–
–
Sistemas Operativos Distribuidos
14
Fernando Pérez Costoya
José María Peña Sánchez
• Estabilidad: inestable con alta carga
– Difícil encontrar receptores y los muestreos consumen CPU
Sistemas Operativos Distribuidos
16
Fernando Pérez Costoya
José María Peña Sánchez
Un algoritmo combinado (1/2)
• Política de transferencia
Tmin
0
receptor
Media del sistema
Tmax
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..
Sistemas Operativos Distribuidos
18
Fernando Pérez Costoya
José María Peña Sánchez
3
Sistemas Operativos Distribuidos
Un algoritmo combinado (2/2)
Estrategias estáticas
• 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.
• 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
Sistemas Operativos Distribuidos
19
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
20
Modelo basado en precedencias
Ejemplo
10
• 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:
2
20
1
3
4
1
– Cuando sólo hay dos procesadores.
5
– P. ej. buscar camino crítico (camino más largo en grafo) y asignar
tareas implicadas al mismo procesador
Fernando Pérez Costoya
José María Peña Sánchez
Uso de estrategias migratorias
N1
2
20
Planificador
N2
1
10
3
1
4
30
5
5
36
N1
– Pueden dar mejor rendimiento pero son más complejas
0
1
• En el caso general se utilizan heurísticas:
Sistemas Operativos Distribuidos
21
10
1
1
• Uso de estragias migratorias:
Fernando Pérez Costoya
José María Peña Sánchez
N2
Sistemas Operativos Distribuidos
22
Fernando Pérez Costoya
José María Peña Sánchez
Modelo basado en comunicaciones
• Programa paralelo formado por procesos que se comunican
• Modelado como grafo no dirigido donde:
0
N1
1
N2
2
2
0
N1
2
Con migración
1
2
3
3
N2
1
2
3
6- Gestión de procesos
• 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”
4
Sistemas Operativos Distribuidos
23
– Nodo representa proceso con necesidades de UCP y memoria
– Eje incluye etiqueta que indica cantidad de datos que intercambian
nodos implicados
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
24
Fernando Pérez Costoya
José María Peña Sánchez
4
Sistemas Operativos Distribuidos
Ejemplo
Ejecución remota de procesos
• ¿Cómo ejecutar un proceso de forma remota?
Ν1
Ν2
Ν3
Ν1
3
2
3
3
2
2
1
8
5
6
4
3
4
2
4
1
5
2
Tráfico entre nodos:
13+17=30
Ν3
– Crear el mismo ambiente de trabajo:
2
3
– Redirigir ciertas llamadas al sistema a máquina origen:
1 8
5
Ν2
2
6
4
3
• entorno, directorio actual, etc.
• P. ej. interacción con el terminal
• Migración (transferencia expulsiva) mucho más compleja:
4
1
4
5
2
Tráfico entre nodos:
13+15=28
– “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?
Tanenbaum. “Sistemas Operativos Distribuidos” © Prentice Hall 1996
Sistemas Operativos Distribuidos
25
6- Gestión de procesos
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
26
Fernando Pérez Costoya
José María Peña Sánchez
5
Descargar