You are on page 1of 54

Sistemas Operativos Distribuidos

Gestin de Procesos

Gestin de Procesos
1. Conceptos y taxonomas: Trabajos y sistemas paralelos 2. Planificacin esttica:
Planificacin de tareas dependientes Planificacin Pl ifi i d de tareas t paralelas l l Planificacin de mltiples tareas

3 Planificacin dinmica: 3. dinmica


Equilibrado de carga Migracin de procesos Migracin de datos Equilibrado q de conexiones

Fernando Prez Costoya Jos Mara Pea Snchez

Escenario de Partida: Trminos


Trabajos: Conjuntos de tareas (procesos o hilos) que d demandan: d ( (recursos x ti tiempo) )
Recursos: Datos, dispositivos, CPU u otros requisitos (finitos) necesarios para la realizacin de trabajos. trabajos Tiempo: Periodo durante el cual los recursos estn asignados (de forma exclusiva o no) a un determinado trabajo. Relacin entre las tareas: Las tareas se deben ejecutar siguiendo unas restricciones en relacin a los datos que generan o necesitan (dependientes y concurrentes)

Planificacin: Asignacin de trabajos a los nodos de proceso correspondientes. Puede implicar revisar, auditar y corregir esa asignacin.
Sistemas Operativos Distribuidos 3 Fernando Prez Costoya Jos Mara Pea Snchez

Escenario de Partida
Recursos demandados

Nodos (Procesadores)

Tareas Trabajos OBJETIVO A i Asignacin i d de llos trabajos b j d de llos usuarios i a llos distintos procesadores, con el objetivo de mejorar prestaciones frente a la solucin tradicional
Sistemas Operativos Distribuidos 4 Fernando Prez Costoya Jos Mara Pea Snchez

Caractersticas de un Sistema Distribuido


Sistemas con memoria compartida
Recursos R de d un proceso accesibles ibl d desde 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) automtico


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 Aplicacin paralela usa automticamente procesadores disponibles

Sistemas distribuidos
Proceso ligado a procesador durante toda su vida Recursos de un proceso accesibles slo desde procesador local
No slo mapa de memoria; Tambin recursos internos del SO

Reparto de carga requiere migracin de procesos


Sistemas Operativos Distribuidos 5 Fernando Prez Costoya Jos Mara Pea Snchez

Escenario de Partida: Objetivos


Qu mejoras de prestaciones se espera conseguir? Ti l d Tipologa de sistemas: 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 cmputo c pu o mayor ayo Ejecucin de trabajos pesados en menor tiempo

Sistemas de alto aprovechamiento


HTS HTS: High Hi h Troughput T h t Systems S t Que el nmero de tareas servidas sea el mximo posible Maximizar el uso de los recursos o servir a ms clientes (puede no ser lo mismo).
Sistemas Operativos Distribuidos 6 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos

Descripcin de Tareas
Coordinacin C di i Orquestacin

Fernando Prez Costoya Jos Mara Pea Snchez

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 aplicacin li i Pueden presentar dependencias O Pueden requerir ejecucin en paralelo

Sistemas Operativos Distribuidos 8

Fernando Prez Costoya Jos Mara Pea Snchez

Tareas Cooperantes
Dependencias entre tareas Modelizado M d li d por medio di d de un grafo dirigido acclico (DAG).
Tareas

Ejecucin paralela I li un nmero d de t tareas Implican concurrentes ejecutando simultneamente:


De forma sncrona o asncrona. En base a una topologa de conexin. i Siguiendo un modelo maestro/esclavo o distribuido. Con unas tasas de comunicacin y un intercambio de mensajes.

Transferencia de datos

Ejemplo: Workflow
Sistemas Operativos Distribuidos 9

Ejemplo: Cdigo MPI


Fernando Prez Costoya Jos Mara Pea Snchez

Orquestacin vs. Coreografa


Existen dos trminos relacionados en la gestin de servicios:
Orquestacin (Orchestation): Representa la ordenacin y gestin de servicios desde la perspectiva de un participante (un proceso de negocio). Existe un solo coordinador. Coreografa (Choreography): Tiene un mbito ms amplio e implica la coordinacin de todos los participantes de un sistema complejo entero Existe una poltica en la que varios elementos se coordinan y entero. se ajustan entre s.

Una diferencia muy sutil (en el plano terico). En a ambos bos casos representan ep ese ta de definiciones c o es dec declarativas a at as de cmo se deben realizar uno o varios procesos, denominadas a veces como reglas de negocio (business rules)
Sistemas Operativos Distribuidos 10 Fernando Prez Costoya Jos Mara Pea Snchez

Gestin de Negocio (I)


Los sistemas que implementan BPM, denominados h bit l habitualmente t Business B i P Process Management M t System S t (BPMS) utilizan lenguajes de descripcin de procesos:
BPEL (Business B i Process P E Execution ti Language L ) lenguaje l j XML de d orquestacin de servicios. Extensin de:
WSFL (de IBM) XLANG (de BizTalk-Microsoft).

Actualmente estandarizado por OASIS. Otros lenguajes son (BPML Business Process Modeling Language [anterior], y WS-CDL Web Services Choreography Description [sin implementacin]). implementacin])

Sistemas Operativos Distribuidos 11

Fernando Prez Costoya Jos Mara Pea Snchez

Gestin de Negocio (II)


BELP: Define procesos de negocio interoperables y protocolos de negocio. negocio Permite componer servicios nuevos a partir de otros. Define estructuras de control (ifthenelse, while, sequence, flow) Gestiona variables del proceso y mensajes (entrantes y salientes).
SAP Mainframe

Check Inventory Submit Order Transform Order/ Customer Determine Discount Check Credit Can Fulfill?

Formulate Fulfillment Offer Send Result to User Formulate Rejection

Portal

Java

Web App

Sistemas Operativos Distribuidos 12

Fernando Prez Costoya Jos Mara Pea Snchez

Gestin de Negocio (III)


<variable>
Discount Service

<process>

BPEL Flow

start

10:00am

Get Discount

<faultHandlers> <invoke> <flow>


Handle Negative Credit Exception

<partnerLink>
Credit Service

Send Credit Application

Send Inventory Request

<invoke> <receive>

Inventory Service

<partnerLink>

Receive Credit Result

Receive Inventory Result

<partnerLink>

</flow> <switch> </process>


? Determine if Can Fulfill

end

03:00pm

Oracle, SOA Oracle Development Day


Sistemas Operativos Distribuidos 13 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 14 Fernando Prez Costoya Jos Mara Pea Snchez

Gestin de Negocio (y IV)


Edicin de procesos s BPEL por medio de e un entorn no gr rfico (Eclip pse) BPEL pro oject http://ww ww.eclipse e.org/bpel/

Sistemas Operativos Distribuidos

Planificacin
Esttica E tti Dinmica

Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas de Cmputo
Dependen de uso previsto del sistema:
Mquinas M i autnomas t de d usuarios i independientes i d di t
Usuario cede uso de su mquina pero slo 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 slo a ejecutar trabajos paralelos


Se puede hacer una estrategia de asignacin a priori O ajustar j el comportamiento p del sistema dinmicamente Se intenta optimizar tiempo de ejecucin de la aplicacin o el aprovechamiento de los recursos

Sistema distribuido general (mltiples usuarios y aplicaciones)


Se intenta lograr un reparto de carga adecuado

Sistemas Operativos Distribuidos 16

Fernando Prez Costoya Jos Mara Pea Snchez

Tipologa de Clusters High Performance Clusters High Availability Clusters


Beowulf; programas paralelos; MPI; dedicacin a un problema ServiceGuard, ServiceGuard Lifekeeper, Lifekeeper Failsafe, Failsafe heartbeat
Workload/resource managers; equilibrado de carga; instalaciones de supercomputacin

High Throughput Clusters


Web-Service Clusters Storage Clusters Database Clusters
Oracle Parallel Server;
Sistemas Operativos Distribuidos 17

Segn servicio de aplicacin:


LVS/Piranha; equilibrado de conexiones TCP; datos replicados GFS; sistemas de ficheros paralelos; identica visin de los datos desde cada nodo

Fernando Prez Costoya Jos Mara Pea Snchez

Planificacin
La planificacin consiste en el despliegue de las tareas de un t b j sobre trabajo b unos nodos d d dell 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 nmero de procesadores simultneamente. Grado de paralelismo: El grado ms fino en el que se pueda descomponer la tarea. Costes de comunicacin: 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 Prez Costoya Jos Mara Pea Snchez

Planificacin
Dedicacin de los procesadores:
E Exclusiva: l i A Asignacin i i d de una t tarea por procesador. d Tiempo compartido: En tareas de cmputo masivo con E/S reducida afecta dramticamente en el rendimiento rendimiento. Habitualmente no se hace hace.

La planificacin de un trabajo puede hacerse de dos formas:


Planificacin esttica: Inicialmente se determina dnde y cundo se va a ejecutar las tareas asociadas a un determinado trabajo. Se determina antes de q que el trabajo j entre en mquina. q Planificacin dinmica: 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 ejecucin j i en lla mquina.
Sistemas Operativos Distribuidos 19 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos

Gestin de Procesos
Pl ifi Planificacin i Esttica E tti
Fernando Prez Costoya Jos Mara Pea Snchez

Planificacin Esttica
Generalmente se aplica antes de permitir la ejecucin del trabajo en el sistema. sistema El planificador (a menudo llamado resource manager) selecciona un trabajo de la cola (segn poltica) y si hay recursos disponibles lo pone en ejecucin, si no espera.
Cola de Trabajos Planificador Recursos? j Trabajos no espera p s Sistema
Fernando Prez Costoya Jos Mara Pea Snchez

Descripcin de los Trabajos


Para poder tomar las decisiones correspondientes a la poltica del planificador planificador, ste debe disponer de informacin sobre los trabajos:
Nmero de tareas (ejecutables correspondientes) Prioridad Relacin entre ellas (DAG) Estimacin de consumo cons mo de recursos rec rsos (procesadores (procesadores, memoria memoria, disco) Estimacin del tiempo de ejecucin (por tarea) Otros p parmetros de ejecucin j Restricciones aplicables

Estas definiciones se incluyen en un fichero de descripcin del trabajo, b j cuyo f formato d depende d d dell planificador l ifi d correspondiente.
Fernando Prez Costoya Jos Mara Pea Snchez

Planificacin de Mltiples Trabajos


Cuando se deben planificar varios trabajos el planificador d b debe:
Seleccionar el siguiente trabajo a mandar a mquina. 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 23

s Sistema
Fernando Prez Costoya Jos Mara Pea Snchez

no espera p

Planificacin de Mltiples Trabajos


Cmo se selecciona el siguiente trabajo a intentar ejecutar?:
P Poltica lti FCFS (first-come-first-serve fi t fi t ) Se ): S respeta t ell orden d d de remisin de trabajos. Poltica SJF (shortest-job-first): El trabajo ms pequeo en primer lugar, medido en:
Recursos, nmero de procesadores, o Tiempo solicitado (estimacin del usuario).

Poltica LJF (longest-job-first): dem pero en el caso inverso. Basadas en prioridades: Administrativamente se define unos criterios de prioridad, que pueden contemplar:
Facturacin del coste de recursos. Nmero de trabajos enviados. Deadlines de finalizacin de trabajos. (EDF Earliest-deadline-first)
Sistemas Operativos Distribuidos 24 Fernando Prez Costoya Jos Mara Pea Snchez

Backfilling
Backfilling es una modificacin aplicable li bl a cualquiera l i d de llas polticas anteriores:
Si ell trabajo t b j seleccionado l i d por la l poltica no tiene recursos para entrar entonces entonces, Se busca otro proceso en la cola que demande menos recursos y p pueda entrar. Permite aprovechar mejor el sistema

Se buscan trabajos que demanden menos procesadores

Planificador Recursos? no Backfilling s

Sistemas Operativos Distribuidos 25

Fernando Prez Costoya Jos Mara Pea Snchez

Backfilling con Reservas


Las reservas consisten en:
D Determinar t i cundo d se podra d ejecutar la tarea inicialmente seleccionada en base a las seleccionada, estimaciones de tiempos (deadline) Se dejan j entrar trabajos j q que demandan menos recursos (backfilling) siempre y cuando fi li finalicen antes t d dell deadline d dli . Aumenta el aprovechamiento del sistema pero no retrasa sistema, indefinidamente a los trabajos grandes.
Sistemas Operativos Distribuidos 26

La tcnica de Backfilling puede hacer que trabajos que demanden muchos recursos nunca se ejecuten

Planificador Recursos? no Backfilling s

Fernando Prez Costoya Jos Mara Pea Snchez

Planificacin de Tareas Paralelas


Considera los siguientes aspectos:
Las L t tareas requieren i ejecutarse j t en paralelo l l Intercambian mensajes a lo largo de la ejecucin. Consumo de recursos locales (memoria o E/S) de cada tarea. tarea
Modelo Centralizado (Maestro/Esclavo)

M S1 S2 S3 S4 S5 S6

Diferentes parmetros de comunicacin: Tasas de comunicacin: Frecuencia, volumen de datos. Topologa de conexin: Cmo intercambian los mensajes? Modelo de comunicacin: Sncrono (las tareas se bloquea a la espera de datos) o Asncrono. Restricciones: La propia topologa fsica de la red de interconexin Prestaciones P t i de d la l red. d
Fernando Prez Costoya Jos Mara Pea Snchez

Hipercubo Anillo Modelo distribuido


Sistemas Operativos Distribuidos 27

Rendimiento de la Planificacin
El rendimiento del esquema de planificacin depende:
C Condiciones di i de d bloqueo bl (equilibrado ( ilib d d de carga) ) Estado del sistema Eficiencia de las comunicaciones: latencia y ancho de banda
Envio no bloqueante Recepcin bloqueante

Barrera de sincronizacin

Recepcin no bloqueante

Envio bloqueante

Ejecucin Bloqueado Ocioso


Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 28

Planificacin de Tareas Dependientes


Considera los siguientes aspectos:
D Duracin i (estimada) ( ti d ) de d cada d t tarea. Volumen de datos transmitido al finalizar la tarea (e.g. fichero) Precedencia entre tareas (una tarea requiere la finalizacin previa de otras). Restricciones debidas a la necesidad de recursos especiales. p
2 1

2
2

1 1

11
1 4

2 3
3

Una opcin consiste en transformar todos los datos a las mismas unidades (tiempo): Tiempo de ejecucin (tareas) Tiempo de transmisin (datos) La Heterogeneidad complica estas estimacin: Ejecucin dependiente de procesador Comunicacin dependiente de conexin
Fernando Prez Costoya Jos Mara Pea Snchez

7 4
1

Representado por medio de un grafo acclico dirigido (DAG)


Sistemas Operativos Distribuidos 29

Sistemas Operativos Distribuidos

Gestin de Procesos
Pl ifi Planificacin i Di Dinmica i
Fernando Prez Costoya Jos Mara Pea Snchez

Planificacin Dinmica
La planificacin esttica 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 planificacin dinmica:
Evala el estado del sistema y toma acciones correctivas. Resuelve R l problemas bl d debidos bid a la l paralelizacin l li i d dell problema bl (desequilibrio entre las tareas). Reacciona ante fallos en nodos del sistema (cadas o falos parciales). Permite un uso no dedicado o exclusivo del sistema. Requiere una monitorizacin del sistema (polticas de gestin de trabajos):
En E la l planificacin l ifi i esttica tti se contabilizan t bili llos recursos comprometidos. tid
Sistemas Operativos Distribuidos 31 Fernando Prez Costoya Jos Mara Pea Snchez

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 Que Q lla carga d de los l procesadores d sea iigual. l La carga vara durante la ejecucin de un trabajo Cmo se mide la carga? g
A i Asignacin i

Load Balancing:

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 32 Fernando Prez Costoya Jos Mara Pea Snchez

Medicin de la Carga
Qu informacin se transmite?:
La L carga del d l nodo d qu es lla carga? ?

Diferentes medidas: medidas


%CPU en un instante de tiempo Nmero de procesos listos para ejecutar (esperando) Nmeros de fallos de pgina / swaping Consideracin de varios factores.

Se p pueden considerar casos de nodos heterogneos g ( (con diferentes capacidades).


Sistemas Operativos Distribuidos 33 Fernando Prez Costoya Jos Mara Pea Snchez

Algoritmos de Equilibrado de Carga


Situacin:
El estado t d d dell sistema i t es que ciertos i t nodos d ti tienen una carga ms alta lt que otros.

Ejemplos de tipos de algoritmos:


Iniciados por el emisor Iniciados por el receptor Simtricos

Sistemas Operativos Distribuidos 34

Fernando Prez Costoya Jos Mara Pea Snchez

Algoritmo Iniciado por el Emisor


Nuevo proceso

Q>T
s

no

Ejecucin local

P 0 P=0 P>Pma P>Pmax


no s

Seleccin de destino: Distintas alternativas: Elegir un nodo al azar. Probar P b con un n d de nodos d hasta h t encontrar un receptor. Probar con un n de nodos y elegir aqul con menos carga. Estabilidad: inestable con alta carga Difcil encontrar receptores y los muestreos consumen CPU

Solicitar Ejecucin
no

Aceptado?

Ejecucin remota

Q: Tamao de la cola de procesos T: Umbral U b l mximo i de d lla cola l d de procesos Pmax: Nmero mximo de solicitudes Sistemas Operativos Distribuidos 35 Fernando Prez Costoya Jos Mara Pea Snchez

Algoritmo Iniciado por el Receptor


Fin de proceso

Q<T
s

no

Continua ejecutando

P 0 P=0 P>Pma P>Pmax


no s

Solicitar Trabajo
no

Seleccin de destino: Ejemplo: Muestreo aleatorio de un n limitado d nodos de d h hasta t encontrar t uno con un nivel de carga > umbral. Si la bsqueda falla, esperar hasta que otro proceso termine o un periodo predeterminado antes de reintentar. Estabilidad: estable Con altas cargas, cargas probable q que e receptores encuentren emisores.

Oferta?

Ejecucin local

Q: Tamao de la cola de procesos T: Umbral U b l mximo i de d lla cola l d de procesos Pmax: Nmero mximo de solicitudes Sistemas Operativos Distribuidos 36 Fernando Prez Costoya Jos Mara Pea Snchez

Algoritmo Simtrico
0 receptor Tmin Media del sistema Tmax emisor

Iniciado p por el emisor:


Emisor difunde mensaje SOBRECARGADO y espera ACEPTAR. Un receptor enva ACEPTAR. Si llega ACEPTAR: y el nodo todava es emisor emisor, transfiere el proceso ms adecuado. Si no, difundir un mensaje CAMBIO-MEDIA para incrementar la carga media estimada en el resto de nodos. nodos

Iniciado por el receptor:


Un receptor difunde un mensaje DESCARGADO y espera por mensajes SOBRECARGADO. Si llega un mensaje SOBRECARGADO, se enva un mensaje ACEPTAR. Si no, , difundir un mensaje j CAMBIO-MEDIA p para decrementar la carga g media estimada en el resto de nodos.
Sistemas Operativos Distribuidos 37 Fernando Prez Costoya Jos Mara Pea Snchez

Ejecucin Remota de Procesos


Cmo ejecutar un proceso de forma remota?
Crear C ell mismo i entorno t d t de trabajo: b j
P. ej. interaccin con el terminal

Redirigir g ciertas llamadas al sistema a mquina q origen: g

Variables de entorno, directorio actual, etc.

Migracin (transferencia expulsiva) mucho ms compleja:


C Congelar l ell estado t d del d l proceso Transferir a mquina destino Descongelar g el estado del p proceso

Numerosos aspectos complejos:

Redirigir mensajes y seales Copiar espacio de swap o servir fallos de pg. desde origen?

Sistemas Operativos Distribuidos 38

Fernando Prez Costoya Jos Mara Pea Snchez

Migracin de Procesos
Diferentes modelos de migracin: Migracin dbil:
Restringida a determinadas aplicaciones (ejecutadas en mquinas virtuales) i t l ) o en ciertos i t momentos. t

Migracin fuerte:
R Realizado li d a nivel i ld de cdigo di nativo ti y una vez que lla tarea t h ha iniciado i i i d su ejecucin (en cualquier momento) De propsito general: Ms flexible y ms compleja

Migracin de datos:
No se migran procesos sino slo los datos sobre los que estaba trabajando.
Sistemas Operativos Distribuidos 39

Fernando Prez Costoya Jos Mara Pea Snchez

Migracin: Datos de las Tareas


Los datos que usa una tarea tambin deben migrarse:
D Datos t en di disco: E Existencia i t i d de un sistema i t d de fi ficheros h comn. Datos en memoria: Requiere congelar todos los datos del proceso correspondiente (pginas de memoria y valores de registros). registros) Tcnicas de checkpointing:
Las pginas de datos del proceso se guardan a disco. Se puede ser ms selectivo si las regiones que definen el estado estn declaradas de alguna forma especfica (lenguajes/libreras especiales). Es necesario guardar tambin los mensajes enviados que potencialmente no hayan sido entregados. tiles tambin para casos en los que no hay migracin: Fallos en el sistema.

Sistemas Operativos Distribuidos 40

Fernando Prez Costoya Jos Mara Pea Snchez

Migracin Dbil
La migracin dbil se puede articular de la siguiente forma:
Ejecucin Ej i remota t d de un nuevo proceso/programa /
En UNIX podra ser en FORK o en EXEC Es ms eficiente que nuevos procesos se ejecuten en nodo donde se crearon pero eso no permite reparto de carga

Hay que transferir cierta informacin de estado aunque no est iniciado


Argumentos, entorno, ficheros abiertos que recibe el proceso, etc.

Ciertas libreras pueden permitir al programador establecer puntos en los cuales el estado del sistema de almacena/recupera y que pueden ser usados p para realizar la migracin. g En cualquier caso el cdigo del ejecutable debe ser accesible en el nodo destino:
Sistema Si t de d ficheros fi h comn.
Sistemas Operativos Distribuidos 41 Fernando Prez Costoya Jos Mara Pea Snchez

Migracin Dbil
En lenguajes (como Java):
E Existe i t un mecanismo i d de serializacin i li i que permite it t transferir 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.
serializacin instancia

A=3
Solicitud de clase

A=3 Cargador dinmico

Proceso.class

Nodo 1

Proceso.class

Nodo 2

Sistemas Operativos Distribuidos 42

Fernando Prez Costoya Jos Mara Pea Snchez

Migracin Fuerte
Solucin nave:
C Copiar i ell mapa de d memoria: i cdigo, di datos, d t pila, il ... Crear un nuevo BCP (con toda la informacin salvaguardada en el cambio de contexto). contexto)

Hay otros datos (almacenados por el ncleo) que son necesarios: Denominado estado externo del proceso
Ficheros abiertos Seales pendientes Sockets Semforos Regiones de memoria compartida .....
Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 43

Migracin Fuerte
Existen diferentes aproximaciones a posibles implementaciones: A nivel de kernel:
Versiones modificadas del ncleo Dispone Di d de toda t d lla iinformacin f i d dell proceso

A nivel de usuario:
Lib Librerias i d de checkpointing h k i ti Protocolos para desplazamiento de sockets Intercepcin de llamadas al sistema

Otros aspectos:
PID nico de sistema Credenciales y aspectos p de seguridad g
Sistemas Operativos Distribuidos 44 Fernando Prez Costoya Jos Mara Pea Snchez

Migracin Fuerte
Se debe intentar que proceso remoto se inicie cuanto antes
C Copiar i todo t d ell espacio i d de di direcciones i all d destino ti Copiar slo pginas modificadas al destino; resto se pedirn como fallos de pgina desde nodo remoto servidas de swap de origen No copiar nada al destino; las pginas se pedirn como fallos de pgina p 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 pginas modificadas y no copiar nada al destino: todas las pginas se sirven de swap de origen Precopia: Copia de pginas mientras ejecuta proceso en origen

Pginas de cdigo (slo lectura) no hay que pedirlas:


Se s sirven e e en nodo odo remoto e oto usa usando do S SFD
Sistemas Operativos Distribuidos 45 Fernando Prez Costoya Jos Mara Pea Snchez

Beneficios de la Migracin 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 enva cdigo di en vez d de d datos t ( (p. ej. j applets) l t ) O cliente enva cdigo 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 ejecucin en una red Solicitan migracin de forma explcita Ejemplo: Sistemas de agentes mviles
Sistemas Operativos Distribuidos 46 Fernando Prez Costoya Jos Mara Pea Snchez

Migracin de Datos
Usando en aplicaciones de tipo maestro/esclavo.
M Maestro: t Di Distribuye t ib ell t trabajo b j entre t llos t trabajadores. b j d Esclavo: Trabajador (el mismo cdigo pero con diferentes datos).

Cmo se reparten las iteraciones de un bucle entre los procesadores? Si hay tantos procesadores como iteraciones, tal vez una por procesador. procesador
Pero si hay menos (lo normal), hay que repartir. El reparto puede ser:
esttico: en tiempo de compilacin. dinmico: en ejecucin.
Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 47

Migracin de Datos: Objetivo


Intentar que el tiempo de ejecucin de los trozos que se reparten t a cada d procesador d sea similar, i il para evitar it ti tiempos muertos (load balancing). Representa un algoritmo de distribucin 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 ms lento) Solucin: Asignacin de trabajos por bloques (ms o menos pequeos). Posibles dependencias (sincronizacin), el tamao de grano, la localidad de los accesos y el coste del propio reparto.
Sistemas Operativos Distribuidos 48 Fernando Prez Costoya Jos Mara Pea Snchez

Migracin g de Datos: Esttico


Consecutivo
0000111122223333
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Entrelazado
0123012301230123
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

for(pid=0;pid<P;pid++) f ( id id id ) { principio = pid * N/P fin = (pid + 1) * N/P 1 for (i=principio;i<fin,i++) f (i i i i i fi i ) {...} }

for(i=0;i<N;i++) { asignar(i,i%P); }

No aade carga a la ejecucin de los threads. P no asegura ell equilibrio Pero ilib i d de lla carga entre t los l procesos. Permite cierto control sobre la localidad de los accesos a cache.
Fernando Prez Costoya Jos Mara Pea Snchez

Migracin de Datos: Dinmico


Para intentar mantener la carga equilibrada, las tareas se van escogiendo en tiempo de ejecucin de un cola de tareas. tareas Cuando un proceso acaba con una tarea (un trozo del bucle) se asigna un nuevo trozo. Dos opciones bsicas:

los trozos que se van repartiendo son de tamao constante son cada d vez ms pequeos:
Asignacin propia. Centralizado: Guiado o Trapezoidal

Fernando Prez Costoya Jos Mara Pea Snchez

Migracin g de Datos: Dinmico


Asignacin propia Las iteraciones se reparten una a una o por trozos

LOCK (C); mia = i; ; i = i + Z; UNLOCK (C);

z = 1 self

while (mia <= N-1) { limite=min(mia+Z,N); for(j=mia;j<limite;j++) {...} LOCK (C) mia = i; i = i + Z; UNLOCK (C) }

Aade carga a la ejecucin de los threads. threads Hay que comparar ejecucin y reparto.

Fernando Prez Costoya Jos Mara Pea Snchez

Migracin g de Datos: Dinmico


Guiado / Trapezoidal Los trozos de bucle que se reparten son cada vez ms pequeos segn nos acercamos al final. Guiado G i d parte t proporcional i l de d lo l que queda d por ejecutar: Zs = (N i) / P que equivale q q a Zi = Zi-1 (1 - 1/P)
Fernando Prez Costoya Jos Mara Pea Snchez

(entero superior)

Migracin g de Datos: Dinmico


Trapezoidal reduciendo el trozo anterior en una constante: Zi = Zi-1 - k
k

Z1 Z2 Zn 1

op. de planificacin

Z1 + Z n Z1 + Z n Z1 Z n =N Z n = = + 1 s k 2 2 s=1
n

2 Z12 Z n k= 2 N ( Z1 + Z n )

Fernando Prez Costoya Jos Mara Pea Snchez

Equilibrado de Conexiones
Algunos sistemas (e.g. servidores web) consideran que un t b j es una conexin 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 Problemtica: La direccin del servicio es nica. Solucin: Equilibrado de conexiones:
Redireccin a nivel de DNS Redireccin a nivel IP (Reescritura NAT o encapsulado) Redireccin R di i a nivel i l MAC

Sistemas Operativos Distribuidos 54

Fernando Prez Costoya Jos Mara Pea Snchez