Cuando ms de un proceso es ejecutable, el Sistema Operativo debe decidir cul de ellos debe ejecutarse en primer trmino. Esa parte del sistema operativo que debe de llevar a cabo esa decisin se llama planificador y el algoritmo que utiliza se llama algoritmo de planificacin.
El planificador intenta conseguir con su administracin de procesos lo siguiente:
Equidad: Garantizar que cada proceso obtenga su proporcin justa de la CPU. Es decir, que ningn proceso llegue a apoderarse por completo de la CPU.
Eficiencia: Mantener ocupada la CPU al 100 %, esto con el fin de evitar los tiempos ociosos que pueda tener el CPU.
Rendimiento: Maximizar el nmero de tareas procesadas por hora, es decir, que el CPU pueda atender todos y cada una de las peticiones que le fueron hechas.
Para garantizar que ningn proceso se ejecute un tiempo excesivo, casi todas las computadoras tienen un cronmetro electrnico o un reloj incluido, que provoca una interrupcin en forma peridica. En cada interrupcin del reloj, el sistema operativo logra ejecutarse y decidir si el proceso que se ejecuta en ese momento tiene permiso de continuar o si tiene el tiempo suficiente en la CPU por el momento, para despus suspenderlo para que otro proceso utilice la CPU. 2.6.1 Planificacin FIFO (First In, First Out) Es muy simple, los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos. Una vez que el proceso obtiene la CPU, se ejecuta hasta terminar, ya que es una disciplina no apropiativa. Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no importantes hagan esperar a procesos importantes. Es ms predecible que otros esquemas. No puede garantizar buenos tiempos de respuesta interactivos.
2.6.2 Planificacin SJF El algoritmo SJF (Shortest-Job-First) se basa en los ciclos de vida de los procesos, los cuales transcurren en dos etapas o periodos que son: ciclos de CPU y ciclos de entrada/salida, tambin conocidos por rfagas. La palabra shortest (el ms corto) se refiere al proceso que tenga el prximo ciclo de CPU ms corto. La idea es escoger entre todos los procesos listos el que tenga su prximo ciclo de CPU ms pequeo. El SJF se puede comportar de dos formas:
Con Desalojo: Si se incorpora un nuevo proceso a la cola de listos y este tiene un ciclo de CPU menor que el ciclo de CPU del proceso que se est ejecutando, entonces dicho proceso es desalojado y el nuevo proceso toma la CPU. Sin desalojo: Cuando un proceso toma la CPU, ningn otro proceso podr apropiarse de ella hasta que el proceso que la posee termine de ejecutarse. 2.6.3 Planificacin por Turno Rotatorio (Round Robin) Round Robin es un mtodo para seleccionar todos los elementos en un grupo de manera equitativa y en un orden racional, normalmente comenzando por el primer elemento de la lista hasta llegar al ltimo y empezando de nuevo desde el primer elemento. El planeamiento Round Robin es tan simple como fcil de implementar, y est libre de inanicin. Una forma sencilla de entender el round robin es imaginar una secuencia para "tomar turnos". En operaciones computacionales, un mtodo para ejecutar diferentes procesos de manera concurrente, para la utilizacin equitativa de los recursos del equipo, es limitando cada proceso a un pequeo perodo (quantum), y luego suspendiendo ste proceso para dar oportunidad a otro proceso y as sucesivamente. 2.6.4 Planificacin Multinivel Su objetivo es diferenciar entre distintos tipos de trabajos, para ello dividen la cola de procesos preparados en varias colas, una por cada tipo de trabajo, y no permiten el movimiento de los procesos entre las distintas colas. Un algoritmo de planificacin multinivel particiona la cola de listos en colas separadas. Se asignan en forma permanente los trabajos a una cola, generalmente, basndose en alguna propiedad del mismo (requerimientos de memoria, tipo de trabajo), teniendo cada cola su propio algoritmo. Ningn trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no estn vacas. Si algn trabajo entra en una cola de mayor prioridad, el trabajo de otras colas es interrumpido.
2.6.5 Planificacin mediante colas multinivel realimentadas El algoritmo de planificacin mediante colas multinivel realimentadas permite mover un proceso de una cola a otra. La idea es separar los procesos en funcin de las caractersticas de sus rfagas de CPU. Si un proceso utiliza demasiado tiempo de CPU, se pasa a una cola de prioridad ms baja. Este esquema deja los procesos limitados por E/S y los procesos interactivos en las colas de prioridad ms alta. Adems, un proceso que est esperando demasiado tiempo en una cola de baja prioridad puede pasarse a una cola de prioridad ms alta. Este mecanismo de envejecimiento evita el bloqueo indefinido. En general un planificador de este tipo est definido por los siguientes parmetros:
1. El nmero de colas.
2. El tipo de algoritmo de planificacin de cada cola.
3. Un mtodo de determinacin de cuando mover un trabajo a una cola de mayor prioridad.
4. Un mtodo de determinacin de cuando mover un trabajo a una cola de menor prioridad.
5. Un mtodo de determinacin de a qu cola se enviar un trabajo cuando necesita servicio.