Está en la página 1de 14

Gestin de Procesos

Sistemas Operativos Distribuidos

Gestin de
Procesos

1. Conceptos y taxonomas: Trabajos y sistemas paralelos


2. Planificacin esttica:
Planificacin de tareas dependientes
Planificacin de tareas paralelas
Planificacin de mltiples tareas

3. Planificacin dinmica:

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

Fernando Prez Costoya


Jos Mara Pea Snchez

Escenario de Partida: Trminos


Trabajos: Conjuntos de tareas (procesos o hilos) que
demandan: (recursos x tiempo)
Recursos: Datos,
Datos dispositivos,
dispositivos CPU u otros requisitos (finitos)
necesarios para la realizacin de 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
p
y concurrentes))

Escenario de Partida
Recursos demandados

Nodos
(Procesadores)

Tareas
Trabajos

Planificacin: Asignacin de trabajos a los nodos de proceso


correspondientes. Puede implicar revisar, auditar y corregir
esa asignacin.

OBJETIVO
Asignacin de los trabajos de los usuarios a los
distintos procesadores, con el objetivo de mejorar
prestaciones frente a la solucin tradicional

Sistemas Operativos Distribuidos


3

Sistemas Operativos Distribuidos


4

Fernando Prez Costoya


Jos Mara Pea Snchez

Fernando Prez Costoya


Jos Mara Pea Snchez

Escenario de Partida: Objetivos

Caractersticas de un Sistema Distribuido


Sistemas con memoria compartida
Recursos de un proceso accesibles desde todos los procesadores
Mapa
p 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 del reparto de carga:

HAS: High Availability Systems


Que el servicio siempre est operativo
Tolerancia a fallos

Sistemas de alto rendimiento

Mejora uso de recursos y rendimiento en el sistema


Aplicacin paralela usa automticamente procesadores disponibles

Sistemas
Si t
di
distribuidos
t ib id
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

Qu mejoras de prestaciones se espera conseguir?


Tipologa de sistemas:
Sistemas de alta disponibilidad

Fernando Prez Costoya


Jos Mara Pea Snchez

HPC: High Performance Computing


Que se alcance una potencia de cmputo mayor
Ejecucin de trabajos pesados en menor tiempo

Sistemas de alto aprovechamiento


HTS: High Troughput Systems
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

Escenario de Partida: Trabajos

Sistemas Operativos Distribuidos

Descripcin de
Tareas
Coordinacin
Coordinacin
Orquestacin

Fernando Prez Costoya


Jos Mara Pea Snchez

Qu se tiene que ejecutar?


Tareas en las que se dividen los trabajos:
Tareas
T
di
disjuntas
j t
Procesos independientes
Pertenecientes a distintos usuarios

Tareas cooperantes

Interaccionan entre s
Pertenecientes a una misma aplicacin
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 por medio de un
ggrafo dirigido
g acclico ((DAG).)
Tareas

Transferencia de datos

Ejemplo: Workflow

Orquestacin vs. Coreografa

Ejecucin paralela
Implican un nmero de tareas
concurrentes ejecutando
j
simultneamente:
De forma sncrona o asncrona.
En base a una topologa de
conexin.
Siguiendo un modelo
maestro/esclavo o distribuido.
Con unas tasas de comunicacin y
un intercambio de mensajes.

Ejemplo: Cdigo MPI

Sistemas Operativos Distribuidos


9

Fernando Prez Costoya


Jos Mara Pea Snchez

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).
i ) E
Existe
i t un solo
l coordinador.
di d
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
se ajustan entre s.

Una diferencia muy sutil (en el plano terico).


terico)
En ambos casos representan definiciones declarativas de
cmo se deben realizar uno o varios procesos, denominadas a
veces como reglas de negocio (business rules)
Sistemas Operativos Distribuidos
10

Gestin de Negocio (I)

Gestin de Negocio (II)

Los sistemas que implementan BPM, denominados


habitualmente Business Process Management System
(BPMS) utilizan lenguajes de descripcin de procesos:
BPEL (Business Process Execution Language) lenguaje XML de
orquestacin de servicios. Extensin de:

BELP:
Define procesos de negocio interoperables y protocolos de 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).

WSFL (de IBM)


XLANG (de BizTalk-Microsoft).

SAP

Actualmente estandarizado por OASIS.


Otros lenguajes
g j son ((BPML Business Process Modelingg Language
g g
[anterior], y WS-CDL Web Services Choreography Description [sin
implementacin]).

Mainframe

Fernando Prez Costoya


Jos Mara Pea Snchez

Formulate
Fulfillment
Offer

Check
Inventory
Submit
Order

Transform
Order/
Customer

Check
Credit

Sistemas Operativos Distribuidos


12

Send
Result to
User

Can
Fulfill?

Determine
Discount

Portal

Sistemas Operativos Distribuidos


11

Fernando Prez Costoya


Jos Mara Pea Snchez

Formulate
Rejection

Java

Web App

Fernando Prez Costoya


Jos Mara Pea Snchez

Gestin de Negocio (III)


BPEL Flow

<process>

start

10:00am

Discount Service

<faultHandlers>

Get Discount

<invoke>
i
k
<flow>
<partnerLink>

Edicin de proceesos BPEL por medio de un entorno


grfico (Eclipse)
BPEL project
http://www.eclipse.org/bpel/

<variable>

Gestin de Negocio (y IV)

Send Credit Application

Handle Negative
g
Credit Exception

Send Inventory Request

Credit Service

<invoke>

Inventory
Service

<receive>
<partnerLink>

Receive Inventory Result

Receive Credit Result

<partnerLink>

</flow>
<switch>
</process>

end

Determine if
Can Fulfill

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

Sistemas de Cmputo

Sistemas Operativos Distribuidos

Dependen de uso previsto del sistema:


Mquinas autnomas de usuarios independientes
Usuario cede uso de su mquina
q
ppero slo cuando est desocupada
p
Qu ocurre cuando deja de estarlo?

Planificacin

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 el comportamiento del sistema dinmicamente
Se intenta optimizar
p
tiempo
p de ejecucin
j
de la aplicacin
p
o el
aprovechamiento de los recursos

Esttica
Esttica
Dinmica

Sistema distribuido general (mltiples usuarios y aplicaciones)


Se intenta lograr un reparto de carga adecuado

Fernando Prez Costoya


Jos Mara Pea Snchez

Sistemas Operativos Distribuidos


16

Fernando Prez Costoya


Jos Mara Pea Snchez

Tipologa de Clusters

Planificacin

High Performance Clusters

Beowulf; programas paralelos; MPI; dedicacin a un problema

High Availability Clusters

Atendiendo a las necesidades de recursos


Atendiendo a las dependencias entre las tareas

ServiceGuard, Lifekeeper, Failsafe, heartbeat

High Throughput Clusters

Workload/resource managers; equilibrado de carga; instalaciones de supercomputacin

Segn servicio de aplicacin:


Web-Service Clusters

LVS/Piranha; equilibrado de conexiones TCP; datos replicados

Storage Clusters

GFS; sistemas de ficheros paralelos; identica visin de los datos desde cada nodo

Database Clusters
Oracle Parallel Server;

Sistemas Operativos Distribuidos


17

La planificacin consiste en el despliegue de las tareas de un


trabajo sobre unos nodos del sistema:
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.
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.

Fernando Prez Costoya


Jos Mara Pea Snchez

Fernando Prez Costoya


Jos Mara Pea Snchez

Sistemas Operativos Distribuidos

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

Gestin de
Procesos

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 que el trabajo entre en mquina.
Planificacin dinmica: Una vez desplegado un trabajo, y de
acuerdo al comportamiento del sistema, se puede revisar este
despliegue inicial. Considera que el trabajo ya est en ejecucin en la
mquina.
Sistemas Operativos Distribuidos
19

Fernando Prez Costoya


Jos Mara Pea Snchez

Planificacin Esttica
Fernando Prez Costoya
Jos Mara Pea Snchez

Planificacin Esttica

Descripcin de los Trabajos

Generalmente se aplica antes de permitir la ejecucin del


trabajo en el 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
Pl ifi d
Planificador
Recursos?
Trabajos

s
Sistema

no
p
espera

Para poder tomar las decisiones correspondientes a la poltica


del planificador, ste debe disponer de informacin sobre los
trabajos:
j

Nmero de tareas (ejecutables correspondientes)


Prioridad
Relacin entre ellas (DAG)
Estimacin de consumo de recursos (procesadores, memoria, disco)
Estimacin del tiempo de ejecucin (por tarea)
Otros parmetros de ejecucin
Restricciones aplicables

Estas definiciones se incluyen en un fichero de descripcin del


trabajo, cuyo formato depende del planificador
correspondiente.

Fernando Prez Costoya


Jos Mara Pea Snchez

Planificacin de Mltiples Trabajos

Planificacin de Mltiples Trabajos

Cuando se deben planificar varios trabajos el planificador


debe:
Seleccionar el siguiente trabajo a mandar a mquina
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

Trabajos
Sistemas Operativos Distribuidos
23

no
p
espera

Cmo se selecciona el siguiente trabajo a intentar ejecutar?:


Poltica FCFS (first-come-first-serve): Se respeta el orden de
j
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
it i dde prioridad,
i id d que pueden
d contemplar:
t
l

Pl ifi d
Planificador
Recursos?

Fernando Prez Costoya


Jos Mara Pea Snchez

s
Sistema
Fernando Prez Costoya
Jos Mara Pea Snchez

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 a cualquiera de las
polticas anteriores:
Si el trabajo seleccionado por la
poltica no tiene recursos para entrar
entonces,
Se busca otro proceso en la cola que
demande menos recursos y pueda
entrar.
Permite aprovechar mejor el sistema

Backfilling con Reservas


Las reservas consisten en:
Se buscan trabajos que demanden
menos procesadores

Planificador
Recursos?

no
Backfilling

Sistemas Operativos Distribuidos


25

Fernando Prez Costoya


Jos Mara Pea Snchez

Planificacin de Tareas Paralelas


Considera los siguientes aspectos:

Modelo Centralizado (Maestro/Esclavo)

S1

S2

S3

S4

S5

Hipercubo
Anillo
Modelo distribuido
Sistemas Operativos Distribuidos
27

S6

Sistemas Operativos Distribuidos


26

La tcnica de Backfilling puede


hacer que trabajos que demanden
muchos recursos nunca se ejecuten

Planificador
s

Recursos?
no
Backfilling

Fernando Prez Costoya


Jos Mara Pea Snchez

Rendimiento de la Planificacin
El rendimiento del esquema de planificacin depende:

Las tareas requieren ejecutarse en paralelo


Intercambian mensajes
j a lo largo
g de la ejecucin.
j
Consumo de recursos locales (memoria o E/S) de cada tarea.
M

Determinar cundo se podra


j
la tarea inicialmente
ejecutar
seleccionada, en base a las
estimaciones de tiempos (deadline)
Se dejan entrar trabajos que
demandan menos recursos
(backfilling) siempre y cuando
finalicen antes del deadline.
Aumenta el aprovechamiento del
sistema, pero no retrasa
indefinidamente a los trabajos
grandes.

Condiciones de bloqueo (equilibrado de carga)


Estado del sistema
Eficiencia de las comunicaciones: latencia y ancho de banda
Envio no bloqueante

Diferentes parmetros de comunicacin:


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

Recepcin bloqueante

Barrera de sincronizacin

Recepcin no bloqueante

Envio bloqueante

Sistemas Operativos Distribuidos


28

Ejecucin
Bloqueado
Ocioso
Fernando Prez Costoya
Jos Mara Pea Snchez

Planificacin de Tareas Dependientes

Sistemas Operativos Distribuidos

Considera los siguientes aspectos:


Duracin (estimada) de cada tarea.
Volumen de datos transmitido al finalizar la tarea ((e.g.
g fichero))
Precedencia entre tareas (una tarea requiere la finalizacin previa de
otras).
Restricciones debidas a la necesidad de recursos especiales.
2

11

Gestin de
Procesos

Una opcin consiste en transformar todos


los datos a las mismas unidades (tiempo):
Tiempo de ejecucin (tareas)
Tiempo de transmisin (datos)

2
1

3
4

Representado por medio de un grafo acclico dirigido


(DAG)

La Heterogeneidad complica estas


estimacin:
Ejecucin dependiente de procesador
Comunicacin dependiente de conexin

Sistemas Operativos Distribuidos


29

Fernando Prez Costoya


Jos Mara Pea Snchez

Planificacin Dinmica

Fernando Prez Costoya


Jos Mara Pea Snchez

Load Balancing vs. Load Sharing

La planificacin esttica decide si un proceso se ejecuta en el


sistema o no, pero una vez lanzado no se realiza seguimiento
de l.
l
La planificacin dinmica:
Evala el estado del sistema y toma acciones correctivas.
Resuelve problemas debidos a la paralelizacin del problema
(desequilibrio entre las tareas).
Reacciona ante fallos en nodos del sistema (cadas o falos
parciales)
parciales).
Permite un uso no dedicado o exclusivo del sistema.
Requiere una monitorizacin del sistema (polticas de gestin de
trabajos):
En la planificacin esttica se contabilizan los recursos comprometidos.
Sistemas Operativos Distribuidos
31

Planificacin Dinmica

Fernando Prez Costoya


Jos Mara Pea Snchez

Load Sharing:

Que el estado de los procesadores no sea diferente


Un procesador ocioso
Una
U tarea
t
esperando
d a ser servida
id en otro
t procesador
d

Asignacin

Load Balancing:

Que la carga de los procesadores sea igual.


La carga vara durante la ejecucin de un trabajo
Cmo se mide la carga?

Son conceptos muy similares, gran parte de las estrategias


usadas para LS vale para LB (considerando objetivos
relativamente diferentes). LB tiene unas matizaciones
particulares.
Sistemas Operativos Distribuidos
32

Fernando Prez Costoya


Jos Mara Pea Snchez

Medicin de la Carga

Algoritmos de Equilibrado de Carga

Qu informacin se transmite?:

Situacin:

La carga del nodo qu es la carga?

El estado del sistema es que ciertos nodos tienen una carga ms alta
qque otros.

Diferentes medidas:

Ejemplos de tipos de algoritmos:

%CPU en un instante de tiempo


Nmero de procesos listos para ejecutar (esperando)
Nmeros de fallos de pgina / swaping
Consideracin de varios factores.

Iniciados por el emisor


Iniciados por el receptor
Simtricos

Se pueden considerar casos de nodos heterogneos (con


diferentes capacidades).
Sistemas Operativos Distribuidos
33

Sistemas Operativos Distribuidos


34

Fernando Prez Costoya


Jos Mara Pea Snchez

Algoritmo Iniciado por el Emisor

Algoritmo Iniciado por el Receptor

Nuevo proceso

Q>T

Fin de proceso

Ejecucin
local

no

P=0
P>Pmax

Seleccin de destino:
Distintas alternativas:
Elegir
El i un nodo
d all azar.
Probar con un n de nodos hasta
encontrar un receptor.
Probar con un n de nodos y elegir
aqul con menos carga.

Q<T

Aceptado?

Continua
ejecutando

no

P=0
P>Pmax

no

no

Solicitar
Ejecucin
no

Fernando Prez Costoya


Jos Mara Pea Snchez

Ejecucin
remota

Estabilidad: inestable con alta carga


Difcil encontrar receptores y los
muestreos consumen CPU

Q: Tamao de la cola de procesos


T: Umbral mximo de la cola de procesos
Pmax: Nmero mximo de solicitudes
Sistemas Operativos Distribuidos
35

Solicitar
Trabajo
no

Oferta?

Ejecucin
local

Seleccin de destino:
Ejemplo:
Muestreo
M t aleatorio
l t i dde un n lilimitado
it d
de nodos hasta encontrar 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, probable que
receptores encuentren emisores.

Q: Tamao de la cola de procesos


T: Umbral mximo de la cola de procesos
Pmax: Nmero mximo de solicitudes
Fernando Prez Costoya
Jos Mara Pea Snchez

Sistemas Operativos Distribuidos


36

Fernando Prez Costoya


Jos Mara Pea Snchez

Algoritmo Simtrico
Tmin

Media del sistema

receptor

Ejecucin Remota de Procesos


Cmo ejecutar un proceso de forma remota?

Tmax
emisor

Emisor difunde mensaje SOBRECARGADO y espera ACEPTAR.


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

I i i d por ell receptor:


Iniciado
t
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 CAMBIO-MEDIA para decrementar la carga media
estimada en el resto de nodos.
Fernando Prez Costoya
Jos Mara Pea Snchez

Migracin de Procesos

P. ej. interaccin con el terminal

Migracin (transferencia expulsiva) mucho ms compleja:


Congelar el estado del proceso
Transferir a mquina destino
Descongelar el estado del 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: Datos de las Tareas

Diferentes modelos de migracin:


Migracin dbil:

Los datos que usa una tarea tambin deben migrarse:

Restringida a determinadas aplicaciones (ejecutadas en mquinas


virtuales) o en ciertos momentos.

Migracin fuerte:
Realizado a nivel de cdigo nativo y una vez que la tarea ha iniciado
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

Variables de entorno, directorio actual, etc.

Redirigir ciertas llamadas al sistema a mquina origen:

Iniciado por el emisor:

Sistemas Operativos Distribuidos


37

Crear el mismo entorno de trabajo:

Fernando Prez Costoya


Jos Mara Pea Snchez

Datos en disco: Existencia de un sistema de ficheros comn.


Datos en memoria: Requiere
q
congelar
g
todos los datos del pproceso
correspondiente (pginas de memoria y valores de 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.
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

10

Migracin Dbil

Migracin Dbil

La migracin dbil se puede articular de la siguiente forma:


Ejecucin remota de un nuevo proceso/programa
En UNIX ppodra 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 para realizar la migracin.
En cualquier caso el cdigo del ejecutable debe ser accesible en el
nodo destino:

En lenguajes (como Java):


Existe un mecanismo de serializacin que permite transferir el estado
j en forma de serie de bytes.
y
de un objeto
Se porporciona un mecanismo de carga bajo demanda de las clases
de forma remota.
serializacin
instancia

A=3

A=3
Solicitud de clase

Proceso.class

Nodo 1

Proceso.class

Cargador
dinmico

Nodo 2

Sistema de ficheros comn.


Sistemas Operativos Distribuidos
41

Fernando Prez Costoya


Jos Mara Pea Snchez

Sistemas Operativos Distribuidos


42

Migracin Fuerte

Migracin Fuerte

Solucin nave:
Copiar el mapa de memoria: cdigo, datos, pila, ...
Crear un nuevo BCP ((con toda la informacin salvaguardada
g
en el
cambio de 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
.....

Sistemas Operativos Distribuidos


43

Fernando Prez Costoya


Jos Mara Pea Snchez

Existen diferentes aproximaciones a posibles implementaciones:


A nivel de kernel:
Versiones modificadas del ncleo
Dispone de toda la informacin del proceso

A nivel de usuario:
Librerias de checkpointing
Protocolos para desplazamiento de sockets
Intercepcin de llamadas al sistema

Otros aspectos:
PID nico de sistema
Credenciales y aspectos de seguridad
Fernando Prez Costoya
Jos Mara Pea Snchez

Sistemas Operativos Distribuidos


44

Fernando Prez Costoya


Jos Mara Pea Snchez

11

Migracin Fuerte

Beneficios de la Migracin de Procesos

Se debe intentar que proceso remoto se inicie cuanto antes


Copiar todo el espacio de direcciones al destino
Copiar
p slo ppginas
g
modificadas al destino;; resto se ppedirn 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 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


all destino:
d ti ttodas
d llas pginas
i
se sirven
i
dde swap de
d origen
i
Precopia: Copia de pginas mientras ejecuta proceso en origen

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:
Servidor enva cdigo en vez de datos (p. ej. applets)
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

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


Se sirven en nodo remoto usando SFD
Sistemas Operativos Distribuidos
45

Fernando Prez Costoya


Jos Mara Pea Snchez

Sistemas Operativos Distribuidos


46

Migracin de Datos

Migracin de Datos: Objetivo

Usando en aplicaciones de tipo maestro/esclavo.


Maestro: Distribuye el trabajo entre los trabajadores.
Esclavo: Trabajador
j
((el mismo cdigo
g ppero 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.

Pero si hay menos (lo normal), hay que repartir. El reparto puede
ser:

esttico: en tiempo de compilacin.


dinmico: en ejecucin.

Sistemas Operativos Distribuidos


47

Fernando Prez Costoya


Jos Mara Pea Snchez

Fernando Prez Costoya


Jos Mara Pea Snchez

Intentar que el tiempo de ejecucin de los trozos que se


reparten a cada procesador sea similar, para evitar tiempos
muertos (load balancing).
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
ell del
d l ms
llento)
t )
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

12

Migracin de Datos: Dinmico

Migracin de Datos: Esttico


Consecutivo

Entrelazado

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

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

0000111122223333

0123012301230123

for(pid=0;pid<P;pid++) {
principio = pid * N/P
fin = (pid + 1) * N/P 1

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

for (i=principio;i<fin,i++)
{...}

Para intentar mantener la carga equilibrada, las tareas se van


escogiendo en tiempo de ejecucin de un cola de 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 vez ms pequeos:

Asignacin propia.
Centralizado: Guiado o Trapezoidal

No aade carga a la ejecucin de los threads.


Pero no asegura el equilibrio de la carga entre los procesos.
Permite cierto control sobre la localidad de los accesos a cache.
Fernando Prez Costoya
Jos Mara Pea Snchez

Migracin de Datos: Dinmico


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

Aade carga a la ejecucin de


los threads.
Hay que comparar ejecucin y
reparto.

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

Fernando Prez Costoya


Jos Mara Pea Snchez

Migracin de Datos: Dinmico


Guiado / Trapezoidal

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)

Los trozos de bucle que se reparten son cada vez ms


pequeos segn nos acercamos al final.
Guiado
parte proporcional de lo que queda por
ejecutar:
Zs = ((N i)) / P

(entero superior)

que equivale a
Zi = Zi-1 (1 - 1/P)

Fernando Prez Costoya


Jos Mara Pea Snchez

Fernando Prez Costoya


Jos Mara Pea Snchez

13

Migracin de Datos: Dinmico


Trapezoidal

reduciendo el trozo anterior en una


constante:
t t
Zi = Zi-1 - k
k

Z1
Z2

Algunos sistemas (e.g. servidores web) consideran que un


trabajo es una conexin remota que realiza una solicitud:
En estos casos se debe intentar repartir la carga de las peticiones
entre varios 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 a nivel MAC

Zn
1

Equilibrado de Conexiones

op. de planificacin

Z
s=1

Z1 + Z n
Z + Z n Z1 Z n

n= 1
+ 1 = N

2
2 k

k=

Z12 Z n2
2 N ( Z1 + Z n )

Fernando Prez Costoya


Jos Mara Pea Snchez

Sistemas Operativos Distribuidos


54

Fernando Prez Costoya


Jos Mara Pea Snchez

14

También podría gustarte