Procesos
En un ordenador multiprogramado es frecuente que en un momento dado haya múltiples procesos compitiendo por el uso de la CPU al mismo tiempo. Esta situación se da siempre que dos o más procesos están simultáneamente en el estado preparado. La parte del sistema operativo que realiza esa elección se denomina el planificador (scheduler), y el algoritmo que se utiliza para esa elección se denomina el algoritmo de planificación.
Introducción a la Planificación
Con la llegada de los sistemas en tiempo compartido, el algoritmo de planificación se hizo más complejo debido a que generalmente había muchos usuarios esperando recibir un servicio inmediato. Debido a que el tiempo de CPU es un recurso escaso en estas máquinas, un …ver más…
Ya que ambos procesos están en el estado preparado, se trata de una decisión de planificación normal y puede hacerse de cualquiera de las dos maneras, esto es, el planificador puede legítimamente elegir ejecutar a continuación bien el padre, o bien el hijo.
En segundo lugar, debe hacerse una decisión de planificación cuando un proceso termina. Ya que no puede seguirse ejecutando ese proceso (puesto que ya no existe), debe elegirse a algún otro proceso de entre el conjunto de procesos preparados. Si no hay ningún proceso preparado, normalmente se ejecuta un proceso ocioso proporcionado por el sistema.
En tercer lugar, cuando un proceso se bloquea en E/S, sobre un semáforo, o por alguna otra razón, es necesario seleccionar algún otro proceso para ejecutarlo. A veces el motivo del bloqueo puede jugar algún papel en la elección.
En cuarto lugar, cuando tiene lugar una interrupción debida a una E/S, también es necesario tomar una decisión de planificación. Si la interrupción proviene de un dispositivo de
E/S que ha completado ahora su trabajo, entonces algún proceso que estaba bloqueado esperando por la E/S puede ahora estar preparado para ejecutarse. Corresponde al planificador decidir si debe ejecutarse el nuevo proceso preparado, si debe continuar ejecutándose el proceso en ejecución en el momento de la interrupción, o si debe ejecutarse algún tercer proceso.
Un algoritmo de planificación no expulsor