El documento describe el algoritmo de planificación Shortest Job First con expulsión (SJF-E). Este algoritmo da prioridad al proceso que le reste menor tiempo de CPU para terminar de forma similar a SJF, pero permite que un proceso en ejecución sea desalojado por otro recién llegado si este nuevo proceso tiene un tiempo de ejecución estimado menor. SJF-E tiende a penalizar las ráfagas largas de forma similar a SJF.
2. Concepto:
Disciplina no apropiativa y no
recomendable en ámbitos de
tiempo compartido, el proceso
espera con el menor tiempo de
ejecución hasta su terminando
permitiendo que el siguiente se
ejecute.
3. • Los tiempos de espera son menos predecibles que en
“FIFO”.
• Favorece a los procesos cortos en detrimento de los
largos.
• Tiende a reducir el número de procesos en espera y el
número de procesos que esperan detrás de procesos
largos.
• Requiere un conocimiento preciso del tiempo de
ejecución de un proceso, lo que generalmente se
desconoce.
• Se pueden estimar los tiempos en base a series de
valores anteriores.
4. • Asocia a cada proceso tiempo aproximado
de la utilización del CPU
• Asigna la CPU al proceso con menor tiempo
asociado
• Cuando un proceso consigue la CPU, la
conserva hasta que desea liberarla
6. Para el siguiente
ejemplo se tienen 4
procesos (P1, P2,P3 y
P4). A medida que estos
se van incorporando a la
cola de listos, se les
calcula su próximo ciclo
de CPU.
Para calcular el próximo
ciclo de CPU se pueden
emplear: métodos
estadísticos, cálculos
probabilísticos, entre
otros.
7. En el ejemplo se toma como criterio que la cola de procesos
listos está inicialmente vacía. En la figura se representa la
llegada de P1 a la cola de listos con un tiempo de llegada
(0,0). Luego a P1 se le calcula su CCPU (CCPU = 7) y en
ese instante se comienza a ejecutar.
8. Estando en ejecución el proceso P1, se incorpora a la cola de listos
P2, al cual se le calcula su CCPU (CCPU = 4).Pero como el CCPU
de P2 es menor que el CCPU de P1, entonces P1 es desalojado y
P2 toma la CPU. En este caso P1 se reincorpora a la cola de listos
porque no ha terminado su ejecución, y en ese instante se le vuelve
a calcular el valor del CCPU (CCPU = 6).
9. Luego llega el proceso P3 a la cola de listos y se le calcula el CCPU
(CCPU = 1). Por lo que sucede igual que el caso anterior, el CCPU de
P3 es menor que el CCPU de P2, por lo que se desaloja P2 para
cederle la CPU a P3. P2 es reincorporado a la cola de listos porque no
ha terminado su ejecución CCPU y se le vuelve a calcular su CCPU
(CCPU = 3).
10. El proceso P4 se incorpora a la cola de listos y se le calcula su CCPU
(CCPU = 4). Luego P3 termina su ejecución para cederle la CPU al
próximo proceso que le corresponda según el criterio que establece el
algoritmo. Para el ejemplo le corresponde el turno a P2, luego a P4 y
finalmente a P1.
11. El SJF se considera como un
algoritmo óptimo, porque da el
mínimo tiempo de espera
promedio para un conjunto de
procesos, así como las
estimaciones de CPU. Su
dificultad radica en que
materialmente es un algoritmo
imposible de implementar .
12. Concepto:
Da prioridad al proceso que le
resta menor tiempo de CPU para
terminar, es una variante del SJF
pero con expulsión, optimiza la
media del tiempo de espera y
rendimiento.
13. Es la contraparte apropiativa del Debe mantener un registro del
SJF. tiempo de servicio transcurrido del
proceso en ejecución, lo que
Es útil en sistemas de tiempo aumenta la sobrecarga. Los trabajos
compartido. largos tienen un promedio y una
varianza de los tiempos de espera
El proceso con el tiempo estimado aún mayor que en SJF.
de ejecución menor para finalizar
es el siguiente en ser ejecutado. La apropiación de un proceso a
Un proceso en ejecución puede punto de terminar por otro de menor
ser apropiado por un nuevo duración recién llegado podría
proceso con un tiempo estimado significar un mayor tiempo de
de ejecución menor. cambio de contexto (administración
del procesador) que el tiempo de
Tiene mayor sobrecarga que la finalización del primero.
planificación SJF.
14. • Los procesos llega a la cola y
solicitan intervalo de CPU
• Si el intervalo es inferior al que falta
al proceso en ejecución para
abandonar la CPU, el nuevo
proceso pasa a la CPU y el que se
ejecutaba a la cola de preparados.
15. • El intervalo es difícil de
predecir
• Posibilidad de inanición: los
trabajos no se ejecutaran
mientras hayan trabajos cortos
16.
17. Si un nuevo proceso pasa a listo se activa el dispatcher para ver si
es más corto que lo que queda por ejecutar del proceso en
ejecución. Si es así el proceso en ejecución pasa a listo y su
tiempo de estimación se decrementa con el tiempo que ha estado
ejecutándose.
En la figura 6.5 tenemos un ejemplo de funcionamiento del
algoritmo en el que se observa cómo se penalizan las ráfagas
largas (como en SJF). Un punto débil de este algoritmo se
evidencia cuando una ráfaga muy corta suspende a otra un poco
más larga, siendo más largo la ejecución en este orden al ser
preciso un cambio adicional de proceso y la ejecución del código
del planificador.
18. Para que puedan observar el ejemplo por favor
ingresen a esta dirección
http://www.youtube.com/watch?v=-vxbZUi78yI