Sistemas Operativos (Procesos) 2.1 Procesos Def: Un proceso es un programa en ejecución. 2.2 Estados de procesos El estado de un proceso define su act
Story Transcript
Sistemas Distribuidos: Migración de Procesos Yudith Cardinale Universidad Central de Venezuela Facultad de Ciencias Postgrado en Computación
Octubre 2013 – Febrero 2014
Objetivos
Entender la importancia de la migración de procesos en el modelo de agentes móviles Establecer diferencias entre migración de código y migración de procesos. Estudiar un algoritmo para realizar migración de código
Paradigma de Agentes Móviles
Un agente móvil es un programa u objeto transportable El agente se inicia en un determinado computador y luego viaja de forma autónoma de un computador a otro de acuerdo a un itinerario. En cada parada el agente accede a los servicios y recursos necesarios y realiza las tareas que corresponda. Máquina 1 Agente Máquina 2
Máquina 3 Agente
Agente
Agente Máquina 3
Código Móvil, Migración de Procesos y Agentes Móviles
Código Móvil: Transfieren sólo código entre los nodos, tal como el Java applets. Migración de Procesos: Acto de transferir un proceso entre dos máquinas (nodo fuente y nodo destino) durante su ejecución. Trata con transferencia de código y datos: espacio de direcciones del proceso, punto de ejecución, estado de la comunicación, y otros estados dependientes del SO. Agentes Móviles: Transferencia de código, datos y autorizaciones.
Migración de Código: Applets Java
Un Applet es una clase Java cuyo código se descarga desde el servidor web y se ejecuta en el entorno del navegador en la máquina cliente. Un navegador solicita un applet cuando accede una página web y encuentra una clase especificada en la etiqueta APPLET La ejecución de un applet está sujeta a restricciones: No puede acceder a archivos del sistema de archivos de la máquina cliente. No puede hacer conexiones de red a otra máquina que no sea de la que proviene.
Migración de Procesos Es el acto de transferir un proceso de un computador a otro DURANTE su ejecución. Aplicaciones:
Distribución dinámica de carga. Tolerancia a fallas Facilitar administración de sistemas Acceso local a datos Computación Móvil
Migración de Procesos: ¿ Qué se transfiere?
Espacio de direcciones del proceso Punto de ejecución (contenido de registros) Archivos abiertos Puntos de comunicación (canales de mensajes) Otros parámetros dependientes del sistema operativo
Algoritmo de Migración (1) Comunicación
Proceso X
Requerimiento Kernel
Negociación
Kernel
Aceptación Nodo Fuente
Nodo Destino
1. Se realiza un requerimiento de migración a un nodo remoto. Se inicia una negociación, luego de la cual la migración es aceptada.
Algoritmo de Migración (2) Comunicación
Proceso X
Kernel
Nodo Fuente
Kernel
Nodo Destino
2. El proceso es des-asignado de su nodo fuente. Se suspende su ejecución, se declara proceso en migración.
Algoritmo de Migración (3) Comunicación
Proceso X
Kernel
Nodo Fuente
Kernel
Nodo Destino
3. La comunicación es temporalmente redireccionada . Se encolan los mensajes dirigidos al proceso en migración y se retrasmiten al final de la migración, en el paso 7. Este paso continua en paralelo con los pasos 4,5 y 6.
Algoritmo de Migración (4) Comunicación
Proceso X
Kernel
Nodo Fuente
Kernel
Nodo Destino
4. Se extrae el estado del proceso. Incluyendo contenido de memoria,
estado del proceso (registros), estado de comunicación y contenido relevante del kernel, estos últimos son dependientes del SO. Algunos estados internos del SO local no son transferibles así como aspectos dependientes del procesador
Algoritmo de Migración (5) Comunicación
Proceso X
Kernel
Nodo Fuente
Kernel
Nodo Destino
5. Se crea una instancia del proceso en el destino.
Esta instancia no será activada hasta no haber transferido suficiente información del estado del proceso.
Algoritmo de Migración (6) Comunicación
Transferencia de mensajes pendientes
Proceso X
Kernel
Kernel
Estado transferible Nodo Fuente
Nodo Destino
6. El estado es transferido e importado en la nueva instancia. No se requiere transferir todo el estado.
Algoritmo de Migración (7)
Comunicación
Forwarding referencias Proceso X Kernel
Nodo Fuente
Kernel
Nodo Destino
7. Referencia del proceso original y redirecciona la comunicación. Se debe establecer alguna forma de referenciar el
proceso original y se debe habilitar los canales de comunicación para hacer conocido el nuevo proceso al exterior.
Algoritmo de Migración (8)
Comunicación
Forwarding referencias Proceso X Kernel
Nodo Fuente
Kernel
Nodo Destino
8. La nueva instancia reasume la ejecución. cuando se ha transferido e importado el estado suficiente. Se completa la migración y el proceso en el nodo fuente puede ser eliminado.
Requerimientos del Sistema para Migración de Procesos
Exportar/importar el estado del proceso: Debe proveer algún tipo de interfaz que permita al mecanismo de migración extraer el estado de un proceso en el nodo fuente e importarlo sobre el nodo destino.
Transparencia en Nominación/Acceso al proceso y sus recursos. Después de migrado el proceso y sus recursos, deben poder ser accedidos por el mismo nombre y mecanismos como si la migración no hubiese ocurrido.
Limpieza de parte del estado del proceso que no es migrable. La migración debe esperar hasta que el proceso finalice o aborte cualquier operación del sistema pendiente
Agentes Móviles y Java Java ha sido usado exitosamente para desarrollar Sistemas de Agentes Móviles ya que :
Soporta código Móvil Soporta objetos Móviles. Soporta el modelo de objetos remotos Es un lenguaje independiente del sistema operativo
Tarea •Dé un ejemplo de herramienta que soporte agentes móviles, indicando: •¿Quien y cuando la desarrolló? •Tipo de herramienta: comercial o experimental • Lenguaje base •¿Sobre cual plataformas (SO) funciona? •Principios de funcionamiento •Funcionalidades de AM que provee.