Migrar codigo

27
MIGRACIÓN DE CÓDIGO INTEGRANTES: EDITH TORRES MOTA GRISELDA VÁZQUEZ FRAGOSO YESENIA VELÁSQUEZ CORONA ANTONIO ZACAPA HERNÁNDEZ Universidad Autónoma de Tlaxcala

Transcript of Migrar codigo

Page 1: Migrar codigo

MIGRACIÓN DE CÓDIGOI N TEGR A N TE S:

EDI TH TORR ES MOTA

GR I SEL D A VÁZQU E Z FR AGOSO

YESEN I A VEL ÁSQU E Z C O R O N A

AN TON I O ZAC APA H ER N ÁN D E Z

Universidad

Autónoma de

Tlaxcala

Page 2: Migrar codigo

MÉTODOS PARA LA MIGRACIÓN DE CÓDIGO

Razones para la migración de

código

Rendimiento-Repartir la carga computacional

-mejorar la capacidad o

velocidad de respuesta para un usuario

La mejora del rendimiento a través de la migración de código se basa en razones

cualitativas.

Page 3: Migrar codigo

La migración de código se basa en la presunción de que se tienen que procesar

datos cerca de donde se reside.

Particionar tareas.

Mejorar el rendimiento mediante el paralelismo a través de la velocidad de

respuesta.

-distribuyendo el procesamiento entre

máquinas para aumentar el grado de

paralelismo.

-agente móvil.

Page 4: Migrar codigo

Flexibilidad-Crear particiones de las aplicaciones

en diferentes partes y decidir por

adelantado donde se van a ejecutar.

Si el código se puede trasladar en diferentes

maquinas, se puede configurar sistemas

distribuidos en forma dinámica.

Page 5: Migrar codigo

El principio de la comunicación dinámica de un cliente para comunicarse con un

servidor, el cliente primero recupera el software necesario y luego invoca al

servidor.

Page 6: Migrar codigo

Ventajas del modelo de descarga dinamico:

-El software no tiene que estar preinstalado para la comunicación

con los servidores.

-Mientras las interfaces sean estandarizadas se puede mover el

protocolo del cliente si es necesario.

Desventajas:

-Seguridad.

Page 7: Migrar codigo

Modelos para la migración de

código

Se basa en el movimiento de programas entre

maquinas, con la intención de que dichos

programas se ejecuten en el destino.

Los diferentes modelos existentes, descritos por

Fuggetta y colaboradores (1998) nos dicen que

es un proceso y consta de tres segmentos:

Page 8: Migrar codigo

Segmento de código: es la parte que contiene el

conjunto de instrucciones constitutivas del

programa en ejecución.

Segmento de recurso: contiene referencias a

recursos externos necesarios para el proceso,

tales como archivos, impresoras etc.

Segmento de ejecución: para almacenar el estado

actual de la ejecución de un proceso, el cual

consta de datos privados, la pila, y por supuesto,

el contador de programa

Page 9: Migrar codigo

Respecto a los segmentos que migran:

Movilidad débil: solo migra el segmento de código(p.ej: los Applets de Java) requiere solamente queuna maquina de destino pueda ejecutar el código,prepara al código para que sea portable.

Movilidad fuerte: migran el segmento de código yel segmento de ejecución. Un proceso se puededetener, y posteriormente trasladarse hacia otramaquina, y luego continuar su ejecución a partir delpunto en donde se quedó.

Page 10: Migrar codigo

Respecto a quien inicia el proceso:

Migración iniciada por el remitente: la migración

empieza en la maquina donde reside el código o

donde se ejecuta( se hace cuando los

programas se cargan al servidor de computo).

Migración iniciada por el destinatario: la maquina

de destino toma la iniciativa para realizar la

migración de código. (Los applets de Java)

Page 11: Migrar codigo

Mecanismo

de

movilidad

Movilidad

débil

Movilidad

fuerte

Movilidad iniciada

por el remitente

Movilidad iniciada

por el destinatario

Movilidad iniciada

por el remitente

Movilidad iniciada

por el destinatario

Ejecución en proceso

de destino

Ejecución en proceso

de separado

Ejecución en un

proceso separado

Ejecución en proceso

de destino

Migración del

proceso

Migración del

proceso

Clonación del

proceso

Clonación del proceso

Page 12: Migrar codigo

MIGRACIÓN Y RECURSOS LOCALES

Migrar el segmento de recursos muchas veces puede ser problemático. Por

ejemplo migrar la referencia a un socket abierto TCP de una máquina a

otra.

La clave para entender las posibilidades de migración del segmento de

recursos radica en el enlace que exista entre el recurso y el proceso y

el recurso y la máquina

Page 13: Migrar codigo

TIPOS DE ENLACES DE PROCESOS A RECURSOS

• El enlace mas fuerte es cuando un proceso hace referencia a un recurso

mediante su identificador.

Ej.: URL, dirección TCP, etc. En este caso el recurso es único y debe mantenerse

la asociación.

• Un modo mas débil del enlace de proceso a recursos es cuando se requiere

solamente el valor de un recuso:

Ej.: Cierta biblioteca de código.

Page 14: Migrar codigo

La forma mas débil de enlace es cuando un proceso indica que requiere solamente

un recurso de un tipo especifico.

Ej.: Terminal, disco, etc.

Page 15: Migrar codigo

ENLACES DE RECURSO A MAQUINA

• Recursos no adjuntos: Se puede trasladar fácilmente entre diversas

maquinas ya que no existe una asociación.

Ej.: Ficheros de datos únicamente utilizados por los procesos que migran.

• Recursos adjuntos: trasladar o copiar un recurso adjunto puede ser

posible, pero a un costo alto.

Ej.: Bases de datos o sitios web completos.

Page 16: Migrar codigo

Recursos fijos: Están ligados a una maquina especifica y no se pueden trasladar.

Ej.: Socket TCP.

Page 17: Migrar codigo

No adjunto Adjunto Fijo

Por identificador

Por valor

Por tipo

MV (o GR)

CP (o MV,

GR)

RB (o MV,

CP)

GR (o MV)

GR (o CP)

RB (o GR,

CP)

GR

GR

RB (o GR)

Enlace

proceso a

recurso

GR establece una referencia global de sistema

MV traslada el recurso

CP copia el valor del recurso

RV reenlanza el proceso al recurso disponible de manera

local

Page 18: Migrar codigo

• Establecer una referencia global puede ser

mas que solamente hacer uso de URL, y

que el uso de dicha referencia en ocasiones

es prohibitivamente costoso.

un ejemplo de donde se establece una

referencia global no siempre es tan fácil al

migrar un proceso que hace uso del punto

final de la comunicación global. En ese caso,

estamos tratando con un recurso fijo al cual

el proceso se enlaza mediante un

identificador.

Page 19: Migrar codigo

La principal desventaja de este método es

que cada vez que la maquina fuente falle, la

comunicación con el proceso de migración

pudiera interrumpirse.

La solución alternativa es tener todos los

procesos que se comunican con el proceso

de migración, modificar su referencia global,

y enviar mensajes al nuevo punto final de

comunicación en la maquina destino.

Page 20: Migrar codigo

Cuando tratamos con referencias por valor

la situación es diferente.

Un ejemplo es:

(considerando un recurso fijo)

La combinación de un recurso fijo y una

referencia por valor ocurre cuando un

proceso asume que la memoria entre

procesos puede compartirse. Establecer

una referencia global, en este caso, podría

significar que necesitamos implementar

una forma distribuida de memoria

compartida.

Page 21: Migrar codigo

El caso mas sencillo es tratar con recursos no

adjuntos. La mejor solución es copiar (o trasladar)

el recurso al nuevo destino, a menos que se

encuentre compartido por un numero de proceso.

El ultimo caso trata con referencias por tipo. La

solución mas evidente es la de volver a enlazar el

proceso a un recurso local disponible del mismo

tipo. Solamente cuando dicho recurso no este

disponible necesitaremos copiar o trasladar el

original a un nuevo destino, o establecer una

referencia global.

Page 22: Migrar codigo

MIGRACIÓN Y SISTEMAS HETEROGÉNEOS

Page 23: Migrar codigo

Un sistema heterogéneo es aquel que se

encuentra compuesto por hardware con

características físicas distintas entre sí, y

software con características operativas

distintas entre sí, pero que se pueden

comunicar utilizando medios comunes.

Page 24: Migrar codigo

El problema que acarrea la heterogeneidad son

referentes a la portabilidad.

Las soluciones para procesos de migración y para

ambientes de programación completa.

Es posible desacoplar una parte del sistema

subyacente y realmente migrarla a otra maquina.

Una de la razones para esperar una migración de

ambientes completos es que permite la continuación

de operación mientras una maquina necesita

detener sus ejecución.

Page 25: Migrar codigo

Maneras de manipular la migración

Empujar paginas desde memoria hacia la nueva

maquina y reenviar las que se modificaron

posteriormente.

Detener la maquina virtual actual; migrar la

memoria, y comenzar una nueva maquina virtual.

Dejar que la nueva maquina virtual atraiga las

paginas cuando sea necesario, permitiendo que

los procesos comiencen dentro de una nueva

maquina virtual.

Page 26: Migrar codigo

El efecto general es que, en vez e

migrar los procesos, sabemos

que podemos trasladar entre

máquinas a sistema operativo

completo