PLANEACION TRABAJOS JOB SCHEDULING
Enviado por apock009 • 6 de Abril de 2013 • 407 Palabras (2 Páginas) • 502 Visitas
PLANEACION TRABAJOS JOB SCHEDULING
Cuando hay más de un proceso que está en condiciones de ejecutarse 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. (Scheduler = 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 procesos limitados por I/O, es decir, pierden la mayor parte del tiempo esperando por I/O; otros son procesos limitados por CPU, 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 siguiente 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.
¿Cuándo hay que planificar?
Una decisión de planificación puede o debe tomarse cuando ocurre cualquiera de las siguientes transiciones entre estados de un proceso:
* EJECUTANDO a BLOQUEADO.
* EJECUTANDO a TERMINADO.
* EJECUTANDO a LISTO.
* BLOQUEADO a LISTO.
En los casos 1 y 2, necesariamente hay que escoger un nuevo proceso, pero en los casos 3 y 4 podría no tomarse ninguna decisión de scheduling, y dejar que continúe ejecutando el mismo proceso que estaba ejecutando. En ese caso, se habla de planificación no-expropiadora. Si en cambio se toma una decisión de scheduling en los casos 3 y 4, entonces se habla de planificación expropiadora.
Esta última es más segura y más justa, pero tiene un problema: consideremos dos procesos que comparten información, y que a uno de ellos se le quita la CPU justo cuando estaba en medio de una actualización de los datos compartidos. Cuando sea el turno del segundo proceso, éste podría intentar leer los datos cuando están en un estado inconsistente. Este problema se remedia con sincronización.
...