domingo, 12 de junio de 2011

Planificación de procesos

Planificación (scheduling) de procesos

Cuando hay más de un proceso que está en condiciones de ejecutar en la CPU, se debe escoger alguno.El encargado de tomar esa decisión es el planificador o scheduler, y el algoritmo que usa se llama “algoritmo de planificación”.
Posibles objetivos (algunos de ellos contradictorios) del algoritmo de planificación son:
_ Justicia. Asegurarse que todos los procesos tengan su turno de CPU.
_ Eficiencia. Mantener la CPU ocupada todo el tiempo.
_ Tiempo de respuesta. Minimizar el tiempo de respuesta de los usuarios interactivos.
_ Rendimiento o productividad (throughput). Maximizar el número de trabajos terminados por hora.
_ Tiempo de espera. Minimizar el tiempo medio de espera (en la cola READY) de los procesos.
Una complicación adicional que hay que tener presente es que cada proceso es único e impredecible.
Algunos son intensivos en I/O (I/O-bound), es decir, pierden la mayor parte del tiempo esperando por I/O; otros son intensivos en CPU (CPU-bound), es decir, requieren principalmente tiempo de CPU. En cualquier caso, todos los procesos alternan entre una fase de ejecución de CPU y otra de espera por I/O.
Aunque la duración de las fases de CPU es impredecible y varía mucho entre un proceso y otro, tiende a tener una frecuencia como la de la figura: hay un gran número de fases de CPU cortos, y muy pocos largos. Esta información puede ser importante para seleccionar un algoritmo de planificación adecuado.

No hay comentarios:

Publicar un comentario