Se recomienda leer las siguientes secciones del libro de Silberschatz: 5.1 a 5.7 inclusive
La planificación del procesador es la base de los sistemas operativos. Cuando cambiamos el CPU entre los procesos, el sistema operativo puede hacer más productiva a la computadora. En este capítulo se introduce los conceptos básicos de planificación del CPU y se presentan varios algoritmos de planificación del CPU.
Al principio de la computación se usaba una técnica secuencial para ejecutar programas llamada mono programación, en donde se iban ejecutando los procesos a medida que terminaban.
Teniendo en cuenta que en un sistema de un procesador un solo núcleo, un solo proceso puede ejecutarse a la vez. Los otros procesos deben esperar hasta que el núcleo de la CPU esté libre y pueda ser reasignado. Desde el punto de vista de la CPU, esta era utilizada durante la ejecución y cuando había una operación de E/S la CPU se queda a la espera, y teniendo en cuenta que las operaciones de entrada y salida son más largas que las de cálculo, la CPU se pasaba la mayoría del tiempo inactiva. Todo ese tiempo de espera es desperdiciado.
Luego aparece la multiprogramación, esta técnica tiene el objetivo de aprovechar los tiempos de espera de la CPU que se desperdician en la mono programación. Para lograr esto varios procesos son guardado en memoria de una vez. Cuando un proceso tiene que esperar, el sistema operativo le quita la CPU al proceso que tiene que esperar y se lo da a otro proceso. Este patrón continúa. Cada vez que un proceso tiene que esperar, otro proceso puede hacer uso de la CPU. En un sistema multinúcleo (multicore), este concepto de mantener a la CPU ocupada se extiende a todos los núcleos de procesamiento en el sistema.
Podemos decir que la multiprogramación consiste en tener varios programas “arrancados” ya en ejecución, no ejecutando en forma simultánea si es que tenemos un solo procesador porque no sería posible, pero desde el punto de vista del usuario estos programas están ejecutando a la vez. Esa ejecución aparente de simultaneidad se llamada concurrencia.
Planificar esto es una parte fundamental de las funciones del sistema operativo. Casi todos los recursos de la computadora son planificados antes de utilizarse. El CPU es el principal y por eso su planificación es fundamental para el diseño de un sistema operativo.
Un proceso ejecuta instrucciones y en algún momento puede solicitar una operación de E/S, después de terminar esa operación se le devuelve el procesador y continua su ejecución. Cuando ejecuta instrucciones, está utilizando el procesador y se dice que está ejecutando una ráfaga de CPU (CPU Burst), cuando solicita una operación e/s estaría ejecutando una rafaga de entrada y salida (I/O Burst). Los proceso alternan entre los estados de ráfagas de CPU y ráfagas de E/S, hasta alcanzar el final donde termina la ejecución.
esta se grafica con una línea punteada indicando que se maneja por la controladora y no participa la CPU.
La planificación del procesador es lo que me permite manejar la manera en que se asigna la CPU entre los distintos procesos ya que nos vamos a encontrar en un entorno de multiprogramación en donde mientras algunos procesos están esperando que termine la operación e/s, yo podría adelantar y empezar a ejecutar otros. Gracias a la planificación del procesador logramos ocuparnos de esto con el fin de alcanzar la máxima utilización de la CPU mediante la multiprogramación.