Sistemas Operativos Distribuidos

Gestión de Procesos

Gestión de Procesos 1. Conceptos y taxonomías: Trabajos y sistemas paralelos 2. Planificación estática: ‰ Planificación de tareas dependientes ‰ Planificación Pl ifi ió dde tareas t paralelas l l ‰ Planificación de múltiples tareas

3 Planificación dinámica: 3. dinámica ‰ ‰ ‰ ‰

Equilibrado de carga Migración de procesos Migración de datos Equilibrado q de conexiones

Fernando Pérez Costoya José María Peña Sánchez

Escenario de Partida: Términos • Trabajos: Conjuntos de tareas (procesos o hilos) que d demandan: d ((recursos x titiempo)) – Recursos: Datos, dispositivos, CPU u otros requisitos (finitos) necesarios para la realización de trabajos. trabajos – Tiempo: Periodo durante el cual los recursos están asignados (de forma exclusiva o no) a un determinado trabajo. – Relación entre las tareas: Las tareas se deben ejecutar siguiendo unas restricciones en relación a los datos que generan o necesitan (dependientes y concurrentes)

• Planificación: Asignación de trabajos a los nodos de proceso correspondientes. Puede implicar revisar, auditar y corregir esa asignación. Sistemas Operativos Distribuidos 3

Fernando Pérez Costoya José María Peña Sánchez

Escenario de Partida Recursos demandados

Nodos (Procesadores)

Tareas Trabajos OBJETIVO A i Asignación ió dde llos trabajos b j dde llos usuarios i a llos distintos procesadores, con el objetivo de mejorar prestaciones frente a la solución tradicional Sistemas Operativos Distribuidos 4

Fernando Pérez Costoya José María Peña Sánchez

Características de un Sistema Distribuido • Sistemas con memoria compartida – Recursos R de d un proceso accesibles ibl ddesde d todos t d llos procesadores d • Mapa de memoria • Recursos internos del SO (ficheros/dispositivos abiertos, puertos, etc.)

– Reparto/equilibrio de carga (load sharing/balancing) automático • Si el procesador queda libre puede ejecutar cualquier proceso listo

– Beneficios f del reparto de carga: • Mejora uso de recursos y rendimiento en el sistema • Aplicación paralela usa automáticamente procesadores disponibles

• Sistemas distribuidos – Proceso ligado a procesador durante toda su vida – Recursos de un proceso accesibles sólo desde procesador local • No sólo mapa de memoria; También recursos internos del SO

– Reparto de carga requiere migración de procesos Sistemas Operativos Distribuidos 5

Fernando Pérez Costoya José María Peña Sánchez

Escenario de Partida: Trabajos ¿Qué se tiene que ejecutar? Tareas en las que se dividen los trabajos: • Tareas disjuntas j – Procesos independientes – Pertenecientes a distintos usuarios

• Tareas cooperantes – – – –

Interaccionan entre sí P t Pertenecientes i t a una misma i aplicación li ió Pueden presentar dependencias O Pueden requerir ejecución en paralelo

Sistemas Operativos Distribuidos 6

Fernando Pérez Costoya José María Peña Sánchez

Tareas Cooperantes Dependencias entre tareas • Modelizado M d li d por medio di dde un grafo dirigido acíclico (DAG). Tareas

Transferencia de datos

• Ejemplo: Workflow Sistemas Operativos Distribuidos 7

Ejecución paralela I li un número ú dde ttareas • Implican concurrentes ejecutando simultáneamente: – De forma síncrona o asíncrona. – En base a una topología de conexión. ió – Siguiendo un modelo maestro/esclavo o distribuido. – Con unas tasas de comunicación y un intercambio de mensajes.

• Ejemplo: Código MPI Fernando Pérez Costoya José María Peña Sánchez

Escenario de Partida: Objetivos ¿Qué “mejoras de prestaciones” se espera conseguir? Ti l í dde sistemas: Tipología i t • Sistemas de alta disponibilidad – HAS: High Availability Systems – Que el servicio siempre esté operativo – Tolerancia a fallos

• Sistemas de alto rendimiento – HPC: High Performance Computing – Que se alcance a ca ce una u a potencia po e c a de cómputo có pu o mayor ayo – Ejecución de trabajos pesados en menor tiempo

• Sistemas de alto aprovechamiento – HTS HTS: High Hi h Troughput T h t Systems S t – Que el número de tareas servidas sea el máximo posible – Maximizar el uso de los recursos o servir a más clientes (puede no ser lo mismo). Sistemas Operativos Distribuidos 8

Fernando Pérez Costoya José María Peña Sánchez

Sistemas de Cómputo • Dependen de uso previsto del sistema: – Máquinas Má i autónomas tó de d usuarios i independientes i d di t • Usuario cede uso de su máquina pero sólo cuando está desocupada • ¿Qué ocurre cuando deja de estarlo? – Migrar procesos externos a otros nodos inactivos – Continuar ejecutando procesos externos con prioridad baja

– Sistema dedicado sólo a ejecutar trabajos paralelos • Se puede hacer una estrategia de asignación a priori • O ajustar j el comportamiento p del sistema dinámicamente • Se intenta optimizar tiempo de ejecución de la aplicación o el aprovechamiento de los recursos

– Sistema distribuido general (múltiples usuarios y aplicaciones) • Se intenta lograr un reparto de carga adecuado

Sistemas Operativos Distribuidos 9

Fernando Pérez Costoya José María Peña Sánchez

Tipología de Clusters • High Performance Clusters

• Beowulf; programas paralelos; MPI; dedicación a un problema

• High Availability Clusters

• ServiceGuard, ServiceGuard Lifekeeper, Lifekeeper Failsafe, Failsafe heartbeat

• High Throughput Clusters

• Workload/resource managers; equilibrado de carga; instalaciones de supercomputación

• Según servicio de aplicación: – Web-Service Clusters

• LVS/Piranha; equilibrado de conexiones TCP; datos replicados

– Storage Clusters

• GFS; sistemas de ficheros paralelos; identica visión de los datos desde cada nodo

– Database Clusters • Oracle Parallel Server;

Sistemas Operativos Distribuidos 10

Fernando Pérez Costoya José María Peña Sánchez

Planificación • La planificación consiste en el despliegue de las tareas de un t b j sobre trabajo b unos nodos d ddell sistema: i t – Atendiendo a las necesidades de recursos – Atendiendo a las dependencias entre las tareas

• El rendimiento final depende de diversos factores: – Concurrencia: Uso del mayor número de procesadores simultáneamente. – Grado de paralelismo: El grado más fino en el que se pueda descomponer la tarea. – Costes de comunicación: Diferentes entre procesadores dentro del mismo nodo y procesadores en diferentes nodos. – Recursos compartidos: Uso de recursos (como la memoria) comunes para varios procesadores dentro del mismo nodo. nodo Fernando Pérez Costoya José María Peña Sánchez

Planificación • Dedicación de los procesadores: – E Exclusiva: l i A Asignación i ió dde una ttarea por procesador. d – Tiempo compartido: En tareas de cómputo masivo con E/S reducida afecta dramáticamente en el rendimiento rendimiento. Habitualmente no se hace hace.

• La planificación de un trabajo puede hacerse de dos formas: – Planificación estática: Inicialmente se determina dónde y cuándo se va a ejecutar las tareas asociadas a un determinado trabajo. Se determina antes de qque el trabajo j entre en máquina. q – Planificación dinámica: Una vez desplegado un trabajo, y de acuerdo al comportamiento del sistema, se puede revisar este d li despliegue iinicial. i i l Considera C id que ell trabajo t b j ya está tá en ejecución j ió en lla máquina. Sistemas Operativos Distribuidos 12

Fernando Pérez Costoya José María Peña Sánchez

Sistemas Operativos Distribuidos

Gestión de Procesos Pl ifi Planificación ió E Estática táti Fernando Pérez Costoya José María Peña Sánchez

Planificación Estática • Generalmente se aplica antes de permitir la ejecución del trabajo en el sistema. sistema • El planificador (a menudo llamado resource manager) selecciona un trabajo de la cola (según política) y si hay recursos disponibles lo pone en ejecución, si no espera. Cola de Trabajos Planificador Recursos? j Trabajos

no espera p

síí Sistema Fernando Pérez Costoya José María Peña Sánchez

Descripción de los Trabajos • Para poder tomar las decisiones correspondientes a la política del planificador planificador, éste debe disponer de información sobre los trabajos: – – – – – – –

Número de tareas (ejecutables correspondientes) Prioridad Relación entre ellas (DAG) Estimación de consumo cons mo de recursos rec rsos (procesadores (procesadores, memoria memoria, disco) Estimación del tiempo de ejecución (por tarea) Otros pparámetros de ejecución j Restricciones aplicables

• Estas definiciones se incluyen en un fichero de descripción del trabajo, b j cuyo fformato ddepende d ddell planificador l ifi d correspondiente. Fernando Pérez Costoya José María Peña Sánchez

Planificación de Tareas Dependientes • Considera los siguientes aspectos: – D Duración ió (estimada) ( ti d ) de d cada d ttarea. – Volumen de datos transmitido al finalizar la tarea (e.g. fichero) – Precedencia entre tareas (una tarea requiere la finalización previa de otras). – Restricciones debidas a la necesidad de recursos especiales. p 2

2

11

1

1

2

7

Una opción consiste en transformar todos los datos a las mismas unidades (tiempo): ƒ Tiempo de ejecución (tareas) ƒ Tiempo de transmisión (datos)

1

2 1

3 4

4

1

3

5

Representado por medio de un grafo acíclico dirigido (DAG) Sistemas Operativos Distribuidos 16

La Heterogeneidad complica estas estimación: ƒ Ejecución dependiente de procesador ƒ Comunicación dependiente de conexión Fernando Pérez Costoya José María Peña Sánchez

Planificación de Tareas Dependientes • Planificación consiste en la asignación de tareas a procesadores d en un iinstante t t ddeterminado t i d de d titiempo: – Para un solo trabajo existen heurísticas eficientes: buscar camino crítico (camino más largo en grafo) y asignar tareas implicadas al mismo procesador. – Algoritmos con complejidad polinomial cuando sólo hay dos procesadores. – Es un problema NP-completo con N trabajos. – El modelo teórico se denomina multiprocessor scheduling.

Sistemas Operativos Distribuidos 17

Fernando Pérez Costoya José María Peña Sánchez

Ejemplo de Tareas Dependientes 10

10

1

2 1 20 1

3

4

1

5

0

1

2 20

N2 1

10

Planificador 3

1

4

30

5

36

N1

N1

N2

Sistemas Operativos Distribuidos 18

5

El tiempo de comunicación entre procesos depende de su despliegue en el mismo nodo: ƒ Tiempo ~00 si están en el mismo nodo ƒ Tiempo n si están en diferentes nodos Fernando Pérez Costoya José María Peña Sánchez

Algoritmos de Clustering • Para los casos generales se aplican algoritmos de clustering que consisten i t en: – – – – –

Agrupar las tareas en grupos (clusters). Asignar cada cluster a un procesador. procesador La asignación óptima es NP-completa Este modelo es aplicable a un solo trabajo o a varios en paralelo. Los clusters se pueden construir con: • Métodos lineales • Métodos Mét d no-lineales li l • Búsqueda heurística/estocástica

Sistemas Operativos Distribuidos 19

Fernando Pérez Costoya José María Peña Sánchez

Planificación con Clustering A 2 2

1

C 2

B 4

3

3

1

D 2

G

1

3 E 2 F 2

1

5

2

3

1

3

H

2 I Sistemas Operativos Distribuidos 20

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

A B

C D E

G

F

H

I

Fernando Pérez Costoya José María Peña Sánchez

Uso de la Replicación A 2 2

1

C 2

B 4

3

3

1

D 2

G

1

3 E 2 F 2

1

5

2

3

1

3

H

2 I

Algunas tareas se ejecutan en varios nodos para ahorrar en la comunicación Sistemas Operativos Distribuidos 21

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

A B

C1

C2

D

E

G

F

H

I

Fernando Pérez Costoya José María Peña Sánchez

Migraciones con Procesos Dependientes • El uso de estrategias migratorias permite mejorar el aprovechamiento. h i t – Se pueden definir en la planificación estática. – Lo más habitual es que formen parte de las estrategias dinámicas. dinámicas

0

N1 1

N2 2

2

0

N2

2

Con migración

1 2

3

N1

3 2

3

4 Sistemas Operativos Distribuidos 22

Fernando Pérez Costoya José María Peña Sánchez

Planificación de Tareas Paralelas • Considera los siguientes aspectos: – Las L ttareas requieren i ejecutarse j t en paralelo l l – Intercambian mensajes a lo largo de la ejecución. – Consumo de recursos locales (memoria o E/S) de cada tarea. tarea Modelo Centralizado (Maestro/Esclavo)

M S1

S2

S3

S4

S5

Hipercubo Anillo Modelo distribuido Sistemas Operativos Distribuidos 23

S6

Diferentes parámetros de comunicación: • Tasas de comunicación: Frecuencia, volumen de datos. • Topología de conexión: ¿Cómo intercambian los mensajes? • Modelo de comunicación: Síncrono (las tareas se bloquea a la espera de datos) o Asíncrono. Restricciones: • La propia topología física de la red de interconexión • Prestaciones P t i de d la l red. d Fernando Pérez Costoya José María Peña Sánchez

Rendimiento de la Planificación • El rendimiento del esquema de planificación depende: – C Condiciones di i de d bloqueo bl (equilibrado ( ilib d dde carga)) – Estado del sistema – Eficiencia de las comunicaciones: latencia y ancho de banda Envio no bloqueante

Recepción bloqueante

Barrera de sincronización

Recepción no bloqueante

Envío bloqueante

Sistemas Operativos Distribuidos 24

Ejecución Bloqueado Ocioso Fernando Pérez Costoya José María Peña Sánchez

Tareas Paralelas: No-regulares • En algunos casos las topologías de conexión no son regulares:

– Modelado como grafo no dirigido donde: – Nodo representa p un pproceso con necesidades de CPU y memoria – Arcos incluye etiqueta que indica cantidad de datos que intercambian nodos implicados (tasa de comunicación)

• El problema bl en su fforma generall es NP NP-completo l t • En el caso general se utilizan heurísticas:

– P P. ej. ej corte mínimo: Para P procesadores buscar P-1 P 1 cortes tal que se minimice el flujo entre cada partición – Resultado: Cada ppartición (p (procesador)) engloba g a un conjunto j de procesos “fuertemente acoplados” – No tan sencillo en los modelos asíncronos

Sistemas Operativos Distribuidos 25

Fernando Pérez Costoya José María Peña Sánchez

Tareas Paralelas: No-regulares N1

N2

N3

N1

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

N2

N3

2

3

2 1 8

5

6 4 3 4

4 1

5 2

Tráfico entre nodos: 13+15=28 Tanenbaum. “Sistemas Operativos Distribuidos” © Prentice Hall 1996

Sistemas Operativos Distribuidos 26

Fernando Pérez Costoya José María Peña Sánchez

Planificación de Múltiples Trabajos • Cuando se deben planificar varios trabajos el planificador d b debe: – Seleccionar el siguiente trabajo a mandar a máquina. – Determinar si hay recursos (procesadores y de otro tipo) para poder lanzarlo. – De no ser así, esperar hasta que se liberen recursos. Cola de Trabajos Planificador Recursos? j Trabajos Sistemas Operativos Distribuidos 27

no espera p

síí Sistema Fernando Pérez Costoya José María Peña Sánchez

Planificación de Múltiples Trabajos • ¿Cómo se selecciona el siguiente trabajo a intentar ejecutar?: – P Política líti FCFS (first-come-first-serve): (fi t fi t ) Se S respeta t ell orden d dde remisión de trabajos. – Política SJF (shortest-job-first): El trabajo más pequeño en primer lugar, medido en: • Recursos, número de procesadores, o • Tiempo solicitado (estimación del usuario).

– Política LJF (longest-job-first): Ídem pero en el caso inverso. – Basadas en prioridades: Administrativamente se define unos criterios de prioridad, que pueden contemplar: • Facturación del coste de recursos. • Número de trabajos enviados. • Deadlines de finalización de trabajos. (EDF – Earliest-deadline-first) Sistemas Operativos Distribuidos 28

Fernando Pérez Costoya José María Peña Sánchez

Backfilling • Backfilling es una modificación aplicable li bl a cualquiera l i dde llas políticas anteriores: – Si ell trabajo t b j seleccionado l i d por la l política no tiene recursos para entrar entonces entonces, – Se busca otro proceso en la cola que demande menos recursos y ppueda entrar. – Permite aprovechar mejor el sistema

Se buscan trabajos que demanden menos procesadores

Planificador Recursos?



no Backfilling

Sistemas Operativos Distribuidos 29

Fernando Pérez Costoya José María Peña Sánchez

Backfilling con Reservas • Las reservas consisten en: – D Determinar t i cuándo á d se podría dí ejecutar la tarea inicialmente seleccionada en base a las seleccionada, estimaciones de tiempos (deadline) – Se dejan j entrar trabajos j qque demandan menos recursos (backfilling) siempre y cuando fi li finalicen antes t ddell deadline. d dli – Aumenta el aprovechamiento del sistema pero no retrasa sistema, indefinidamente a los trabajos grandes. Sistemas Operativos Distribuidos 30

La técnica de Backfilling puede hacer que trabajos que demanden muchos recursos nunca se ejecuten

Planificador Recursos?



no Backfilling

Fernando Pérez Costoya José María Peña Sánchez

Sistemas Operativos Distribuidos

Gestión de Procesos Pl ifi Planificación ió Di Dinámica á i Fernando Pérez Costoya José María Peña Sánchez

Planificación Dinámica • La planificación estática decide si un proceso se ejecuta en el sistema i t o no, pero una vez llanzado d no se realiza li seguimiento i i t de él. • La planificación dinámica: – Evalúa el estado del sistema y toma acciones correctivas. – Resuelve R l problemas bl ddebidos bid a la l paralelización l li ió ddell problema bl (desequilibrio entre las tareas). – Reacciona ante fallos en nodos del sistema (caídas o falos parciales). – Permite un uso no dedicado o exclusivo del sistema. – Requiere una monitorización del sistema (políticas de gestión de trabajos): • En E la l planificación l ifi ió estática táti se contabilizan t bili llos recursos comprometidos. tid Sistemas Operativos Distribuidos 32

Fernando Pérez Costoya José María Peña Sánchez

Load Balancing vs. Load Sharing • Load Sharing:

– Que el estado de los procesadores no sea diferente – Un procesador ocioso – Una tarea esperando a ser servida en otro procesador

A i Asignación ió

• Load Balancing:

– Que Q lla carga dde los l procesadores d sea iigual.l – La carga varía durante la ejecución de un trabajo – ¿ ¿Cómo se mide la carga? g

• Son conceptos muy similares, gran parte de las estrategias usadas para LS vale para LB (considerando objetivos relativamente diferentes). LB tiene unas matizaciones particulares particulares. Sistemas Operativos Distribuidos 33

Fernando Pérez Costoya José María Peña Sánchez

Medición de la Carga • ¿Qué es un nodo inactivo? – E Estación t ió de d trabajo: t b j “lleva “ll varios i minutos i t sin i recibir ibi entrada t d ddell teclado o ratón y no está ejecutando procesos interactivos” – Nodo de proceso: “no no ha ejecutado ningún proceso de usuario en un rango de tiempo”. – Planifiación estática: “no se le ha asignado g ninguna g tarea”.

• ¿Qué ocurre cuando deja de estar inactivo?

– No hacer nada → El nuevo pproceso notará mal rendimiento. – Migrar el proceso a otro nodo inactivo (costoso) – Continuar ejecutando el proceso con prioridad baja.

• Si en lugar de considerar el estado (LS) se necesita conocer la carga (LB) hacen falta métricas específicas. Sistemas Operativos Distribuidos 34

Fernando Pérez Costoya José María Peña Sánchez

Políticas de Gestión de Trabajos Toda la gestión de trabajos se basa en una serie de decisiones ( líti ) que hhay que ddefinir (políticas) fi i para una serie i dde casos: • P Política líti d de información: i f ió cuándo á d propagar la l iinformación f ió necesaria para la toma de decisiones. • Política de transferencia: decide cuándo transferir. • Política de selección: decide qqué pproceso transferir. • Política de ubicación: decide a qué nodo transferir.

Sistemas Operativos Distribuidos 35

Fernando Pérez Costoya José María Peña Sánchez

Política de Información Cuándo se transmite información sobre el nodo: – B Bajo j demanda: d d únicamente ú i t cuando d ddesea realizar li una transferencia. – Periódicas: se recoge información periódicamente, periódicamente la información está disponible en el momento de realizar la transferencia (puede estar obsoleta). ) – Bajo cambio de estado: cada vez que un nodo cambia de estado.

Ámbito de información: – Completa: todos los conocen toda la información del sistema. – Parcial: cada nodo sólo conoce el estado de parte de los nodos del sistema. i t

Sistemas Operativos Distribuidos 36

Fernando Pérez Costoya José María Peña Sánchez

Política de Información ¿Qué información se transmite?: – La L carga del d l nodoÆ d Æ ¿quéé es lla carga??

Diferentes medidas: medidas – – – –

%CPU en un instante de tiempo Número de procesos listos para ejecutar (esperando) Números de fallos de página / swaping Consideración de varios factores.

• Se ppueden considerar casos de nodos heterogéneos g ((con diferentes capacidades). Sistemas Operativos Distribuidos 37

Fernando Pérez Costoya José María Peña Sánchez

Politica de Transferencia • Generalmente, basada en umbral: – Si en nodo d S carga > T unidades, id d S emisor i dde ttareas – Si en nodo S carga < T unidades, S receptor de tareas

• Tipos de transferencias: – Expulsivas: E l i se pueden d transferir t f i tareas t ejecutadas j t d parcialmente. i l t • Supone: transferir el estado del proceso asociado a la tarea (migración) o reiniciar su ejecución.

– No expulsivas: las tareas ya en ejecución no pueden ser transferidas.

Sistemas Operativos Distribuidos 38

Fernando Pérez Costoya José María Peña Sánchez

Política de Selección • Elegir los procesos de tareas nuevas (transferencia no expulsiva). l i ) • Seleccionar los procesos con un tiempo de transferencia mínimo (poco estado, mínimo uso de los recursos locales). • Seleccionar un pproceso si su tiempo p de finalización en un nodo remoto es menor que el tiempo de finalización local. – El tiempo de finalización remoto debe considerar el tiempo necesario para su migración. – El tiempo de finalización puede venir indicado en la descripción del trabajo (estimación del usuario). usuario) – De no ser así, el sistema debe estimarlo por sí mismo. Sistemas Operativos Distribuidos 39

Fernando Pérez Costoya José María Peña Sánchez

Política de Ubicación • Muestreo: consulta de otros nodos para encontrar adecuado. • Alternativas: – – – – – –

Sin muestreo (se manda a uno aleatoriamente). M t secuencial Muestreo i l o paralelo. l l Selección aleatoria. Nodos más próximos. próximos Enviar un mensaje al resto de nodos (broadcast). Basada en información recogida g anteriormente.

• Tres tipos de políticas:

– Iniciadas ppor el emisor ((Push)) → emisor busca receptores p – Iniciadas por el receptor (Pull) → receptor solicita procesos – Simétrica → iniciada por el emisor y/o por el receptor.

Sistemas Operativos Distribuidos 40

Fernando Pérez Costoya José María Peña Sánchez

Algoritmos de Equilibrado de Carga Situación: – El estado t d ddell sistema i t es que ciertos i t nodos d titienen una carga más á alta lt que otros.

• Ejemplos de tipos de algoritmos: – Iniciados por el emisor – Iniciados por el receptor – Simétricos

Sistemas Operativos Distribuidos 41

Fernando Pérez Costoya José María Peña Sánchez

Algoritmo Iniciado por el Emisor Nuevo proceso

Q>T

Ejecución local

no



P 0 P=0 P>Pma P>Pmax



no

Solicitar Ejecución no

Aceptado?



Ejecución remota

Política de transferencia: umbral basado en la longitud de la cola de procesos listos. Política de selección: procesos nuevos. P líti de Política d ubicación. bi ió Distintas Di ti t alternativas: – Elegir un nodo al azar. – Probar con un nº de nodos hasta encontrar un receptor. – Probar con un nº de nodos y elegir g aquél con menos carga. Estabilidad: inestable con alta carga – Difícil encontrar receptores y los muestreos consumen CPU

Q: Tamaño de la cola de procesos T Umbral T: U b l máximo á i de d lla cola l dde procesos Pmax: Número máximo de solicitudes Sistemas Operativos Distribuidos 42

Fernando Pérez Costoya José María Peña Sánchez

Algoritmo Iniciado por el Receptor Fin de proceso

QPma P>Pmax



no

Solicitar Trabajo no

Oferta?



Ejecución local

Q: Tamaño de la cola de procesos T Umbral T: U b l máximo á i de d lla cola l dde procesos Pmax: Número máximo de solicitudes Sistemas Operativos Distribuidos 43

Política de transferencia: umbral basado en la longitud de la cola de procesos listos. Política de selección: cualquier proceso. P líti de Política d ubicación: bi ió Ejemplo: Ej l – Muestreo aleatorio de un nº limitado de nodos hasta encontrar uno con un nivel de carga > umbral. – Si la búsqueda falla, esperar hasta qque otro pproceso termine o un periodo predeterminado antes de reintentar. Estabilidad: estable – Con altas cargas, probable que receptores encuentren emisores. Fernando Pérez Costoya José María Peña Sánchez

Algoritmo Simétrico • 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, no difundir un mensaje CAMBIO-MEDIA CAMBIO MEDIA para incrementar la carga media estimada en el resto de nodos. Sistemas Operativos Distribuidos 44

Fernando Pérez Costoya José María Peña Sánchez

Algoritmo Simétrico • Política de ubicación iniciada por el receptor: – U Un receptor t difunde dif d un mensaje j DESCARGADO y espera por mensajes SOBRECARGADO. – Si llega un mensaje SOBRECARGADO SOBRECARGADO, se envía un mensaje ACEPTAR. – Si no, difundir un mensaje j CAMBIO-MEDIA ppara decrementar la carga media estimada en el resto de nodos.

• Política de selección: cualquier q pproceso.

Sistemas Operativos Distribuidos 45

Fernando Pérez Costoya José María Peña Sánchez

Ejecución Remota de Procesos • ¿Cómo ejecutar un proceso de forma remota? – Crear C ell mismo i entorno t d ttrabajo: de b j

• Variables de entorno, directorio actual, etc.

– Redirigir g ciertas llamadas al sistema a máquina q origen: g • P. ej. interacción con el terminal

• Migración (transferencia expulsiva) mucho más compleja: – “C “Congelar” l ” ell estado t d del d l proceso – Transferir a máquina destino – “Descongelar” g el estado del pproceso

• Numerosos aspectos complejos:

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

Sistemas Operativos Distribuidos 46

Fernando Pérez Costoya José María Peña Sánchez

Migración de Procesos Diferentes modelos de migración: • Migración débil: – Restringida a determinadas aplicaciones (ejecutadas en máquinas virtuales) i t l ) o en ciertos i t momentos. t

• Migración fuerte: – R Realizado li d a nivel i l dde código ódi nativo ti y una vez que lla tarea t hha iniciado i i i d su ejecución (en cualquier momento) – De propósito general: Más flexible y más compleja

• Migración de datos: – No se migran procesos sino sólo los datos sobre los que estaba trabajando. Sistemas Operativos Distribuidos 47

Fernando Pérez Costoya José María Peña Sánchez

Migración: Recursos La migración de recursos también depende de la relación de é t con llas máquinas. éstos á i – Unatachment resource. Ejemplo: un fichero de datos del programa a migrar. – Fastened resource. resource Son recursos movibles movibles, pero con un alto coste coste. Ejemplo: una base de datos, un sitio web. – Fixed resource. Están ligados estrechamente a una máquina y no se pueden mover. Ejemplo: dispositivos locales

Sistemas Operativos Distribuidos 48

Fernando Pérez Costoya José María Peña Sánchez

Migración: Datos de las Tareas • Los datos que usa una tarea también deben migrarse: – D Datos t en di disco: E Existencia i t i dde un sistema i t dde fificheros h común. ú – Datos en memoria: Requiere “congelar” todos los datos del proceso correspondiente (páginas de memoria y valores de registros). registros) Técnicas de checkpointing: • Las páginas de datos del proceso se guardan a disco. • Se puede ser más selectivo si las regiones que definen el estado están declaradas de alguna forma específica (lenguajes/librerías especiales). • Es necesario guardar también los mensajes enviados que potencialmente no hayan sido entregados. • Útiles también para casos en los que no hay migración: Fallos en el sistema.

Sistemas Operativos Distribuidos 49

Fernando Pérez Costoya José María Peña Sánchez

Migración Débil • La migración débil se puede articular de la siguiente forma: – Ejecución Ej ió remota t dde un nuevo proceso/programa / • En UNIX podría ser en FORK o en EXEC • Es más eficiente que nuevos procesos se ejecuten en nodo donde se crearon pero eso no permite reparto de carga

– Hay que transferir cierta información de estado aunque no esté iniciado • Argumentos, entorno, ficheros abiertos que recibe el proceso, etc.

– Ciertas librerías pueden permitir al programador establecer puntos en los cuales el estado del sistema de almacena/recupera y que pueden ser usados ppara realizar la migración. g – En cualquier caso el código del ejecutable debe ser accesible en el nodo destino: • Sistema Si t de d ficheros fi h común. ú Sistemas Operativos Distribuidos 50

Fernando Pérez Costoya José María Peña Sánchez

Migración Débil En lenguajes (como Java): – E Existe i t un mecanismo i dde serialización i li ió que permite it ttransferir f i ell estado t d de un objeto en forma de “serie de bytes”. – Se porporciona un mecanismo de carga bajo demanda de las clases de forma remota. serialización instancia

A=3

Proceso.class

Nodo 1

Sistemas Operativos Distribuidos 51

A=3 Solicitud de clase

Proceso.class

Cargador dinámico

Nodo 2

Fernando Pérez Costoya José María Peña Sánchez

Migración Fuerte • Solución naïve: – C Copiar i ell mapa de d memoria: i código, ódi datos, d t pila, il ... – Crear un nuevo BCP (con toda la información salvaguardada en el cambio de contexto). contexto)

• Hay otros datos (almacenados por el núcleo) que son necesarios: Denominado estado externo del proceso – – – – – –

Ficheros abiertos Señales pendientes Sockets Semáforos Regiones de memoria compartida .....

Sistemas Operativos Distribuidos 52

Fernando Pérez Costoya José María Peña Sánchez

Migración Fuerte Existen diferentes aproximaciones a posibles implementaciones: • A nivel de kernel: – Versiones modificadas del núcleo – Dispone Di dde toda t d lla iinformación f ió ddell proceso

• A nivel de usuario: – Lib Librerias i dde checkpointing h k i ti – Protocolos para desplazamiento de sockets – Intercepción de llamadas al sistema

Otros aspectos: – PID único de sistema – Credenciales y aspectos p de seguridad g Sistemas Operativos Distribuidos 53

Fernando Pérez Costoya José María Peña Sánchez

Migración Fuerte • Desde espacio de usuario: – Servicio S i i remoto t dde solicitud li it d dde migración. i ió – Interceptores de llamadas al sistema. • Auditoría (reconstruir) • Redirección

– Tratamiento de fallo de páginas remoto.

Proceso Original Intercepción K Kernel l

Sistemas Operativos Distribuidos 54

Servicio

Nodo j

Nodo i

Servicio

Proceso Migrado Intercepción K Kernel l Fernando Pérez Costoya José María Peña Sánchez

Migración Fuerte • Servicio de solicitud de migración: 11. Interactúa I t tú con llos procesos ((vía í bibli biblioteca t ptrace, t por ejemplo). j l ) 2. Suspende la ejecución del proceso original 3 Obtiene datos del proceso (valores de registros o mapa de memoria) 3. 4. Crea nuevo proceso destino 5. Modifica valores de los registros g 6. Monitoriza, en términos generales, el estado de los procesos

Servicio

Servicio

Proceso Original

Proceso Migrado

ptrace t

Sistemas Operativos Distribuidos 55

fork + ptrace

Fernando Pérez Costoya José María Peña Sánchez

Migración Fuerte • Interceptores de llamadas al sistema: 11. Necesarios N i para conocer ell estado t d externo t 2. Sobrescribir las funciones asociadas a las llamadas al sistema 3 Despliegue por medio de bibliotecas dinámicas (e.g., 3. (e g LD_PRELOAD) LD PRELOAD) 4. Se conoce la secuencia de llamadas hechas (se puede repetir) 5. Se ppuede redirigir g una llamada a otro sitio ((vía el servicio). ) Servicio Proceso Original open(…) LD_PRELOAD=foo.so

open( ) open(…) Intercepción open(…) Kernel

Sistemas Operativos Distribuidos 56

Fernando Pérez Costoya José María Peña Sánchez

Migración Fuerte • Tratamiento de fallo de página remoto: 11. Acceso A a páginas á i no cargadas d dda una señal ñ l SEGV SEGV. 2. El interceptor captura la señal 3 Solicita la petición remota a la página en el nodo original 3. 4. Copia la página

Servicio Proceso Migrado SEGV

pág Intercepción Sistemas Operativos Distribuidos 57

Fernando Pérez Costoya José María Peña Sánchez

Migración Fuerte • Se debe intentar que proceso remoto se inicie cuanto antes – C Copiar i todo t d ell espacio i dde di direcciones i all ddestino ti – Copiar sólo páginas modificadas al destino; resto se pedirán como fallos de página desde nodo remoto servidas de swap de origen – No copiar nada al destino; las páginas se pedirán como fallos de ppágina g desde el nodo remoto • servidas de memoria de nodo origen si estaban modificadas • servidas de swap de nodo origen si no estaban modificadas

– Volcar a swap de nodo origen páginas modificadas y no copiar nada al destino: todas las páginas se sirven de swap de origen – Precopia: Copia de páginas mientras ejecuta proceso en origen

• Páginas de código (sólo lectura) no hay que pedirlas: – Se ssirven e een nodo odo remoto e oto usa usando do S SFD Sistemas Operativos Distribuidos 58

Fernando Pérez Costoya José María Peña Sánchez

Migración Fuerte • Migración de conexiones: – Afecta Af t a las l conexiones i entrantes t t y salientes. li t – Solución por medio de proxies: • En realidad todas las direcciones son de un único servidor que redirige al nodo donde está el proceso en cada momento. • El problema es que no es escalable.

– Solución S a nivel IP: • Se asigna una dirección IP por proceso del sistema (vía DHCP) • Paquetes “Gratuitous Gratuitous ARP ARP” para informar de cambio de MAC al migrar el proceso. • El problema es el rango de direcciones disponibles (red privada virtual).

Sistemas Operativos Distribuidos 59

Fernando Pérez Costoya José María Peña Sánchez

Beneficios de la Migración de Procesos • Mejora rendimiento del sistema por reparto de carga • Permite aprovechar proximidad de recursos – Proceso que usa mucho un recurso: migrarlo al nodo del mismo

• Puede mejorar algunas aplicaciones cliente/servidor – Para minimizar transferencias si hay un gran volumen de datos: • S Servidor id envía í código ódi en vez dde ddatos t ((p. ej.j applets) l t ) • O cliente envía código a servidor (p. ej. cjto. de accesos a b. de datos)

• Tolerancia a fallos ante un fallo parcial en un nodo • Desarrollo de “aplicaciones de red” – Aplicaciones conscientes de su ejecución en una red – Solicitan migración de forma explícita – Ejemplo: Sistemas de agentes móviles Sistemas Operativos Distribuidos 60

Fernando Pérez Costoya José María Peña Sánchez

Migración de Datos Usando en aplicaciones de tipo maestro/esclavo. – M Maestro: t Di Distribuye t ib ell ttrabajo b j entre t llos ttrabajadores. b j d – Esclavo: Trabajador (el mismo código pero con diferentes datos).

• Representa un algoritmo de distribución de trabajo (en este caso datos) que: – Evite que un trabajador esté parado porque el maestro no transmite datos. – No asigne demasiado trabajo a un nodo (tiempo final del proceso es el del más lento) – Solución: Asignación de trabajos por bloques (más o menos pequeños). Sistemas Operativos Distribuidos 61

Fernando Pérez Costoya José María Peña Sánchez

Migración de Datos • Mejoras de rendimiento: – Equilibrado E ilib d dde carga: • Solución: Definir muchos paquetes de trabajo e ir despachándolos bajo demanda (finalización del anterior).

– Intentar lanzar rápido los trabajos iniciales: • Solución: Uso de broadcast en el envío de paquetes inicial.

– S Si todos los nodos son homogéneos y realizan el mismo trabajo finalizarán casi a la vez: • Plantea un posible problema de saturación del maestro que deriva en un retraso en despachar nuevos paquetes de trabajo. • Solución: Asignación inicial en distintos tamaños.

Sistemas Operativos Distribuidos 62

Fernando Pérez Costoya José María Peña Sánchez

Equilibrado de Conexiones • Algunos sistemas (e.g. servidores web) consideran que un t b j es una conexión trabajo ió remota t que realiza li una solicitud: li it d – En estos casos se debe intentar repartir la carga de las peticiones entre varios servidores. servidores – Problemática: La dirección del servicio es única. – Solución: Equilibrado de conexiones: • Redirección a nivel de DNS • Redirección a nivel IP (Reescritura NAT o encapsulado) • Redirección R di ió a nivel i l MAC

Sistemas Operativos Distribuidos 63

Fernando Pérez Costoya José María Peña Sánchez

Planificación Dinámica vs. Estática • Los sistemas pueden usar indistintamente una, otro o las dos.

No o Dinám mica

Dinámica

Estática

No Estática

Planificación adaptativa: Se mantiene un control central sobre los trabajos lanzados al sistema, pero se dispone de los mecanismos necesarios ppara reaccionar a errores en las estimaciones o reaccionar ante problemas.

Estrategias de equilibrado de carga: Los trabajos se arrancan libremente en los nodos del sistema y por detrás un servicio de equilibrado q de carga/estado g ajusta la distribución de tareas a los nodos.

Gestor de recursos (con asignación batch): Los procesadores se asignan de forma exclusiva y el gestor de recursos mantiene información sobre los recursos comprometidos.

Cluster de máquinas sin planificación alguna: Que sea lo que Dios quiera…

Sistemas Operativos Distribuidos 64

Fernando Pérez Costoya José María Peña Sánchez

Sistemas con Migración de Procesos Bproc (usado por Scyld): – – – – – – – –

Es una solución únicamente para procesos desarrollados bajo Scyld Nodo maestro y esclavos Inicia el proceso en el maestro y explícitamente se invoca “move”, “rexec” o “rfork” hacia el esclavo Todos los ficheros se cierran cuando se mueve el proceso El nodo maestro puede “ver” todos los procesos iniciados en él Los procesos migrados ven el espacio de procesos del maestro (mapping de PIDs) Las llamadas al sistema del proceso se envían al maestro (incluido fork) Otras llamadas al sistema se ejecutan localmente

Mosix/OpenMOSIX: p – – – – – –

Nodo maestro y esclavos Inicia el proceso en el nodo home y se migra trasparentemente El nodo home puede ver todos los procesos (y sólamente esos) iniciados en él Los procesos migrados mantienen la visión que tenían en el nodo origen La mayoría de las llamadas al sistema se ejecutan en el nodo original. original El sistema de ficheros MFS permite que la E/S se realice localmente.

OpenSSI: – – – – – –

Sistema de ficheros único de alta disponibilidad p Kernel autónomo en cada nodo La formación del cluster se articula en tiempo de boot Membresía fuerte Visión única de ficheros, dispositivos, procesos e IPCs Equilibrado de conexiones y procesos

Sistemas Operativos Distribuidos 65

Fernando Pérez Costoya José María Peña Sánchez

Ejemplo: OpenMOSIX Preemptive process migration De forma transparente, y en cualquier instante se puede migrar un proceso de usuario El proceso migrado se divide en dos partes: – Contexto de sistema (deputy) que no puede ser migrado del nodo original. original – Contexto ed usuario (remote) que puede ser migrado

Nodo origen

Sistemas Operativos Distribuidos 66

Nodo destino

Fernando Pérez Costoya José María Peña Sánchez

Ejemplo: OpenMOSIX Dynamic load balancing • • • •

Se inician los procesos de migración con la intención de eq equilibrar ilibrar la carga de los nodos Se ajusta de acuerdo a la variación de carga de los nodos, características de la ejecución y número y potencia de los nodos Intenta en cada momento reducir la diferencia de carga de cada pareja de nodos La política es simétrica y descentralizada (todos los nodos ejecutan el mismo algoritmo)

M Memory sharing h i • • • •

De mayor prioridad. Intenta equilig¡brar el uso de memoria entre los nodos del sistema Evita, en la medida de lo posible, hacer swapping. La toma de decisiones de qué proceso migrar y donde migrarlo se evalúa en base a la cantidad de memoria disponible.

Sistemas Operativos Distribuidos 67

Fernando Pérez Costoya José María Peña Sánchez

Ejemplo: OpenMOSIX Probabilistic information dissemination algorithms • • • •

Proporciona a cada nodo (a su s algoritmo) ssuficiente ficiente información sobre los rec recursos rsos disponibles en otros nodos. Sin hacer polling. Mide la cantidad de recursos disponibles en cada nodo La emisión de esta información se hace a intervalos regulares de tiempo a un subconjunto aleatorio de los nodos. En el ejecución de una migración, migración cada asignación de un proceso implica un periodo durante el cual el nodo debe ejecutarlo (no puede migrarlo de nuevo).

Sistemas Operativos Distribuidos 68

Fernando Pérez Costoya José María Peña Sánchez

Referencias • BProc: Beowulf Distributed P Process Space S http://bproc.sourceforge.net/

• Scyld S ld C Computer t C Corporation ti

• Open MOSIX htt // http://openmosix.sourceforge.net/ i f t/

• OpenSSI htt // http://www.openssi.org/ i /

http://www.scyld.com/

• A Dynamic Load Balancing System for Parallel Cluster Computing p g ((1996)) B. J. Overeinder, P. M. A. Sloot, R. N. Heederik. Future Generation Computer Systems

• Transparent Process Migration: Design Alternatives and the Sprite p Implementation p ((1991)) Fred Douglis, John Ousterhout. Software - Practice and Experience

Sistemas Operativos Distribuidos 69

Fernando Pérez Costoya José María Peña Sánchez