Diferencia entre revisiones de «Conmutación de procesos»
De Wiki de Sistemas Operativos
Línea 4: | Línea 4: | ||
#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. | #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. | ||
#Que termine la ejecución del proceso en cuestión. | #Que termine la ejecución del proceso en cuestión. | ||
− | #Que haya una interrupción en la ejecución. | + | #Que haya una [[Gestión_de_Entrada/Salida|interrupción]] en la ejecución. |
Los pasos que se siguen son los siguientes: | Los pasos que se siguen son los siguientes: |
Revisión del 12:30 20 oct 2012
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:
- 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.
- 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.
- Que termine la ejecución del proceso en cuestión.
- Que haya una interrupción en la ejecución.
Los pasos que se siguen son los siguientes:
- Pasar a modo supervisor.
- Guardar el contenido de los registros del hardware en el PCB (el llamado contexto de la ejecución).
- Actualizar el estado del proceso en el PCB (el estado ha pasado de activo a bloqueado o preparado).
- Si se produjo una interrupción, atenderla.
- Seleccionar un nuevo proceso.
- 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.
- Pasar a modo usuario.
El tiempo de conmutación se considera una penalizanció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.