Algoritmos de administración de procesos
La planificación de la unidad central de proceso (CPU) es la base de los sistemas operativos con multiprogramación. El objetivo de la multiprogramación es tener algún proceso en ejecución en todo momento, para maximizar la utilización de la CPU. En el caso de un sistema con un solo procesador, nunca habrá más de un proceso en ejecución. Si hay más procesos, el resto tendrá que esperar hasta que la CPU esté libre y pueda volver a planificarse.
Con la multiprogramación, se trata de usar este tiempo de manera productiva. Se tienen varios procesos en la memoria a la vez. Cuando alguno de ellos tiene que esperar, el sistema operativo le retira la CPU a dicho proceso y se asigna a otro. Este patrón continúa. Cada vez que un proceso tiene que esperar, otro puede hacer uso de la CPU.
La planificación es una función fundamental en el diseño de un sistema operativo. El éxito de la planificación de la CPU depende de la siguiente propiedad observada en los procesos: la ejecución de procesos consta de un ciclo de ejecución de la CPU y espera de entrada salida (E/S).
Los objetivos de la planificación son los siguientes:
– Reparto equitativo del procesador
– Eficiencia, optimizar el uso del procesador (mantener ocupado el 100% de tiempo el CPU).
– Tiempo de respuesta, minimizar el tiempo de respuesta al usuario
– Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes (batch) para obtener sus resultados
– Rendimiento, maximizar el número de tareas procesadas por hora.
Las decisiones de planificación de la CPU tienen lugar en las siguientes cuatro circunstancias:
1. Cuando un proceso conmuta del estado de ejecución al estado de espera (por ejemplo en una solicitud de E/S, o al invocar una espera para la terminación de uno de los procesos hijos).
2. Cuando un proceso cambia del estado de ejecución al estado listo (por ejemplo, cuando ocurre una interrupción).
3. Cuando un proceso pasa del estado de espera al estado de listo (por ejemplo, en la terminación de una operación de E/S).
4. Cuando un proceso termina.
Para las circunstancias 1 y 4 no existe opción en términos de planificación. Un nuevo proceso (si existe alguno en la cola de listos) debe ser seleccionado para su ejecución. Sin embargo, para las circunstancias 2 y 3, sí existe una opción.
Existen diferentes tipos de algoritmos asociados a la unidad central de proceso (CPU) los cuales tienen diversas propiedades que favorecen a una clase de procesos sobre otros.
Para seleccionar el algoritmo a utilizar en una situación particular se debe considerar las diferentes propiedades de estos.
Los criterios son los siguientes:
– Utilización de CPU: mantener la CPU tan ocupada como sea posible. La utilización puede estar entre 0 y 100 por ciento, esto depende el uso del sistema ya sea ligero (40%) o pesado (hasta 90%).
– Rendimiento (throughput): se mide por el número de procesos que se terminan por unidad de tiempo. En el caso de procesos de larga duración, esta tasa podría ser un proceso por hora, para transacciones breves el rendimiento podría ser de 10 procesos por segundo.
– Tiempo de entrega: tiempo que se requiere para ejecutar un proceso, desde el momento en que se presenta un proceso hasta su terminación. El tiempo de entrega es la suma de los periodos que se consumen esperando llegar a la memoria, esperando en la cola de listos, en ejecución en el CPU y realizando operaciones de E/S.
– Tiempo de espera: el tiempo de espera es la suma de los periodos esperando en la cola de listos.
– Tiempo de respuesta: esta medida es el tiempo que requiere para empezar a responder y no cuánto se requiere para producir la salida de dicha respuesta. El tiempo de entrega por lo general está limitado por la velocidad del dispositivo de salida.
Algoritmos de planificación:
Fuente: Apuntes de la materia Sistemas Operativos Multiusuario de la FCA – UNAM