Función de intercambio

Un proceso debe estar en la memoria para ser ejecutado. El proceso, sin embargo, se puede intercambiar temporalmente fuera de memoria a un sitio de respaldo y luego traerlo a la memoria para la ejecución.

Por ejemplo, se tiene un entorno de multiprogramación con una política de planificación de procesos de realimentación con listas multinivel y el administrador de memoria comienza a cambiar el proceso, que acaba de terminar, con otro en el espacio de memoria que haya sido liberado.

Figura 1. Esquema de la función de intercambio.

(Para ampliar la imagen haga clic sobre ella)

Mientras tanto, el planificador del procesador va a asignar un segmento de tiempo a algún otro proceso en la memoria. Cuando cada proceso termina su cuanto, se intercambia con otro.

Idealmente, el administrador de memoria puede intercambiar procesos tan rápido que algunos de ellos, estando en la memoria listos para ser ejecutados, podrían ser reasignados por el distribuidor antes de pasar al uso del procesador. Además, el quantum debe ser lo suficientemente grande como para permitir la ejecución de cantidades razonables de programa entre cada intercambio.

Una variante de esta política de intercambio se utiliza para la programación de algoritmos basados en la prioridad. Si un proceso de mayor prioridad llega y quiere servicio, el administrador de memoria puede extraer el proceso de baja prioridad y luego cargar y ejecutar el proceso de mayor prioridad. Cuando finalice el proceso de mayor prioridad, el proceso de baja prioridad se puede intercambiar de nuevo y continuar.

Normalmente, un proceso que se intercambia se ubica en el mismo espacio de memoria que ocupaba anteriormente. Esta restricción es dada por el método de redireccionamiento empleado. Si el redireccionamiento se realiza en el tiempo de carga o montaje, el proceso no puede fácilmente moverlo a una ubicación diferente.

Sin embargo, si se está utilizando el redireccionamiento en tiempo ejecución, un proceso puede ser intercambiado a un espacio de memoria diferente, ya que las direcciones físicas se calculan durante el tiempo de ejecución.

El intercambio requiere un sitio de respaldo, este sitio regularmente es el disco duro o HD, el cual es lo suficientemente grande como para acomodar imágenes de la memoria para todos los procesos de usuario, proporcionando un acceso directo a estas imágenes de la memoria.

El sistema mantiene una cola que contiene los procesos que físicamente se encuentran en memoria y las imágenes de aquellos que se encuentran en el disco y están listos para su ejecución.

Cuando el planificador del procesador decide ejecutar un proceso, llama al despachador el cual comprueba si el siguiente proceso en la cola está en la memoria, si se encuentra en la memoria principal simplemente carga los registros y transfiere el control al proceso solicitado, de lo contrario y como tampoco habrá memoria libre, el despachador baja uno de los procesos que se encuentran actualmente en memoria y lo intercambia con el proceso deseado. A continuación, vuelve a cargar los registros y el control se transfiere al proceso seleccionado.