2.5 Niveles, objetivos y criterios de planificación.
La planificación del procesador se refiere a la manera o técnicas que se usan para decidir cuánto tiempo de ejecución y cuando se le asignan a cada proceso del sistema. Obviamente, si el sistema es monousuario y monotarea nohay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. Niveles de planificación
En los sistemas de planificación generalmente se identifican tres niveles: el alto, em medio y el bajo. El nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirse en procesos compitiendo por los recursos del sistema; el nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento mientras que el planificador de bajo nivel es el que decide que proceso, de los que ya están listos (y que en algún momento paso por los otros dos planificadores) es al que le toca ahora estar ejecutándose en la unidad central de procesamiento. En este trabajo se revisaran principalmente los planificadores de bajo nivel porque son los que finalmente eligen al proceso en ejecución. Objetivos de la planificación
Una estrategia de planificación debe buscar que los procesos obtengan sus turnos de ejecución apropiadamente, conjuntamente con un buen rendimiento y minimización de la sobrecarga (overhead) del planificador mismo. En general, se buscan cinco objetivos principales:
· Justicia
o Imparcialidad: Todos los procesos son tratados de la misma forma, y
en algún momento obtienen su turno de ejecución o intervalos de tiempo
de ejecución hasta su terminación exitosa.
· Maximizar la Producción: El sistema debe de finalizar el mayor numero de procesos en por unidad de tiempo.
· Maximizar
el Tiempo de Respuesta: Cada usuario o proceso debe observar que el
sistema les responde consistentemente a sus requerimientos.
· Evitar el aplazamiento indefinido: Los procesos deben terminar en un plazo finito de tiempo.
· El
sistema debe ser predecible: Ante cargas de trabajo ligeras el sistema
debe responder rápido y con cargas pesadas debe ir degradándose
paulatinamente. Otro punto de vista de esto es que si se ejecuta el
mismo proceso en cargas similares de todo el sistema, la respuesta en
todos los casos debe ser similar.
Características a considerar de los procesos
· No
todos los equipos de cómputo procesan el mismo tipo de trabajos, y un
algoritmo de planificación que en un sistema funciona excelente puede
dar un rendimiento pésimo en otro cuyos procesos tienen características
diferentes. Estas características pueden ser:
· Cantidad
de Entrada/Salida: Existen procesos que realizan una gran cantidad de
operaciones de entrada y salida (aplicaciones de bases de datos, por
ejemplo).
· Cantidad
de Uso de CPU: Existen procesos que no realizan muchas operaciones de
entrada y salida, sino que usan intensivamente la unidad central de
procesamiento. Por ejemplo, operaciones con matrices.
· Procesos
de Lote o Interactivos: Un proceso de lote es más eficiente en cuanto a
la lectura de datos, ya que generalmente lo hace de archivos, mientras
que un programa interactivo espera mucho tiempo (no es lo mismo el
tiempo de lectura de un archivo que la velocidad en que una persona
teclea datos) por las respuestas de los usuarios.
· Procesos
en Tiempo Real: Si los procesos deben dar respuesta en tiempo real se
requiere que tengan prioridad para los turnos de ejecución.
· Longevidad
de los Procesos: Existen procesos que tipicamente requeriran varias
horas para finalizar su labor, mientras que existen otros que
solonecesitan algunos segundos.
Planificación apropiativa o no apropiativa (preemptive or not preemptive)La planificación apropiativa es aquella en la cual, una vez que a un proceso le toca su turno de ejecución ya no puede ser suspendido, ya no se le puede arrebatar la unidad central de procesamiento. Este esquema puede ser peligroso, ya que si el proceso contiene accidental o deliberadamente ciclos infinitos, el resto de los procesos pueden quedar aplazados indefinidamente. Una planificación no apropiativa es aquella en que existe un reloj que lanza interrupciones periodicas en las cuales el planificador toma el control y se decide si el mismo proceso seguirá ejecutándose o se le da su turno a otro proceso. Este mismo reloj puede servir para lanzar procesos manejados por el reloj del sistema. Por ejemplo en los sistemas UNIX existen los 'cronjobs' y 'atjobs', los cuales se programan en base a la hora, minuto, día del mes, día de la semana y día del año.
En una planificación no apropiativa, un trabajo muy grande aplaza mucho a uno pequeño, y si entra un proceso de alta prioridad esté también debe esperar a que termine el proceso actual en ejecución.