En informática, la migración de procesos es una forma especializada de gestión de procesos mediante la cual los procesos se mueven de un entorno informático a otro. Esto se originó en la computación distribuida , pero ahora se usa más ampliamente. En máquinas multinúcleo (varios núcleos en un procesador o varios procesadores), la migración de procesos ocurre como una parte estándar de la programación de procesos , y es bastante fácil migrar un proceso dentro de una máquina determinada, ya que la mayoría de los recursos (memoria, archivos, sockets) no lo hacen. es necesario cambiar, solo el contexto de ejecución (principalmente el contador y los registros del programa).
La forma tradicional de migración de procesos es en clústeres de computadoras donde los procesos se mueven de una máquina a otra, lo cual es significativamente más difícil, ya que requiere serializar la imagen del proceso y migrar o volver a adquirir recursos en la nueva máquina. La migración de procesos se implementa, entre otros, en OpenMosix . Fue iniciado por Sprite OS de la Universidad de California, Berkeley .
Variedades
La migración de procesos en la informática tiene dos variantes: [1]
- Migración de procesos no preventiva
- Migración de proceso que tiene lugar antes de que comience la ejecución del proceso (es decir, migración en la que no es necesario adelantar un proceso ). Este tipo de migración de procesos es relativamente económico, ya que se trata de una sobrecarga administrativa relativamente pequeña.
- Migración de procesos preventiva
- Migración de procesos mediante la cual un proceso se apropia, migra y continúa procesándose en un entorno de ejecución diferente. Este tipo de migración de procesos es relativamente costoso, ya que implica el registro, la migración y la recreación del estado del proceso, así como la reconstrucción de cualquier canal de comunicación entre procesos al que esté conectado el proceso de migración.
Problemas
Se producen varios problemas cuando un proceso en ejecución se traslada a otra máquina. Algunos de estos problemas son:
Redirección de E / S: si un proceso realiza E / S a archivos o dispositivos que están vinculados a una determinada máquina, debe haber una forma de redirigir el acceso a estos recursos incluso después de la migración del proceso. Esto implica la redirección del flujo de datos de E / S a través de la red y tiene desventajas en cuanto a seguridad, rendimiento y confiabilidad.
Comunicación entre procesos: los mensajes enviados a un proceso con ID de proceso P en una máquina M tienen que ser redirigidos a la nueva máquina N y la nueva ID de proceso Q. La máquina de la que el proceso migró necesita mantener registros de los procesos migrados. Si se produce una migración múltiple, la sobrecarga aumenta.
Memoria compartida : si uno de un grupo de procesos cooperantes migra y todos estos procesos usan un segmento de memoria compartida, entonces la red debe usarse para emular el acceso a la memoria compartida. Esto agrega complejidad y ralentiza drásticamente el acceso a la memoria compartida para los procesos que migraron fuera de la máquina que contiene la memoria compartida. El fenómeno de que una computadora host debe proporcionar servicios a un proceso que migró se llama Dependencia Residual.
Además de los problemas mencionados anteriormente, los sistemas operativos basados en procesos suelen mantener una variedad de tablas y estados para los procesos en ejecución. No existe una forma sencilla de recuperar toda la información administrativa sobre un proceso en una secuencia simple de operaciones de copia. Dependiendo de la ejecución del proceso, las tablas deben buscarse, copiarse, modificarse y restablecerse en el sistema de destino. Por tanto, la replicación del estado del proceso no es una tarea sencilla.
Referencia http://www.klammeraffe.org/~fritsch/uni-sb/fsinfo/Papers/migrate/node4.html
Diseño de circuito integrado
En el diseño e ingeniería de circuitos integrados se utiliza una definición alternativa de migración de procesos . La migración de procesos o migración de diseño en este contexto es un flujo de diseño para cambiar y reducir un diseño de IC existente a un nuevo nodo de tecnología de proceso. La implementación de una migración de proceso se puede realizar manualmente redibujando la función de diseño por función o mediante herramientas automáticas de EDA / CAD. En los sistemas de carga compartida, un proceso se migra de un nodo a otro mediante un mecanismo llamado migración de procesos.
El concepto de proceso no se introduce en este informe, ya que los procesos son un diseño bien conocido en los sistemas operativos. La migración de procesos se refiere a la movilidad de los procesos en ejecución (o suspendidos) en un entorno informático distribuido. Por lo general, este término indica que un proceso utiliza una red para migrar a otra máquina para continuar su ejecución allí. A veces, el término se utiliza para describir el cambio en la ejecución de un procesador a otro dentro de la misma máquina.
Referencias
- ^ "Gestión de procesos y migración de procesos" . Canal de estudios de India . Consultado el 28 de julio de 2012 .