Conmutación de Procesos

La conmutación de procesos es la operación que consiste en retirar el procesador a un proceso para asignárselo a otro. La conmutación se produce por cuatro razones:

  1. Un proceso agota el tiempo máximo asignado al procesador, por tanto, se debe dar paso a otro proceso para garantizar que la multiprogramación es llevada a cabo apropiadamente.
  2. Un proceso está pendiente de un evento externo, por tanto, pasa a estado bloqueado haciendo uso de la llamada al sistema bloqueante. El planificador debe asignar el procesador a otro nuevo proceso de entre los que están en estado preparado.
  3. Que termine la ejecución del proceso en cuestión.
  4. Que haya una interrupción en la ejecución.

Los pasos que se siguen son los siguientes:

  1. Pasar a modo privilegiado.
  2. Guardar el contenido de los registros del hardware en el PCB (el llamado contexto de la ejecución).
  3. Actualizar el estado del proceso en el PCB (el estado ha pasado de activo a bloqueado o preparado).
  4. Si se produjo una interrupción, atenderla.
  5. Seleccionar un nuevo proceso.
  6. Restaurar el contexto de ejecución del nuevo proceso seleccionado. En el caso de que el nuevo proceso no hubiese estado en el contexto de la ejecución deberá inicializarse.
  7. Pasar a modo no privilegiado. 

                                        Asignación del procesador

 

El tiempo de conmutación se considera una penalización, ya que si realizamos muchas conmutaciones el rendimiento decrece y esto da al usuario la sensación de que sus actividades van a saltos. Para optimizar esto hay que evitar conmutaciones innecesarias, empleando para ello criterios de selección lo más eficientes posibles.