Sei sulla pagina 1di 6

Algoritmos de Planificacin

First-Come, First Served (FCFS)


La poltica ms simple de planificacin es la FCFS. A medida que un proceso pasa al
estado listo, este es agregado a la cola de listos. Cuando el proceso que actualmente est
ejecutando cesa su ejecucin entonces el proceso ms viejo en la cola es seleccionado para
correr. La implementacin de esta poltica es a travs de colas FIFO (First-In, First-Out).
Cuando el CPU est libre, ste es asignado al proceso que est en la cabeza de la cola.
FCFS es un algoritmo nonpreemptive, pues una vez que el CPU es asignado a un proceso,
este lo mantiene hasta que espontneamente lo suelta, ya sea porque el proceso finaliz o
por algn requerimiento de E/S.
El tiempo de espera bajo esta poltica tiende a ser alto. Adems , tiende a favorecer aquellos
procesos que requieren ms tiempo de CPU (CPU-bound). Consideren el caso donde
tenemos una coleccin de procesos. Uno de ellos utiliza ms CPU que los otros, y el resto
de los procesos requieren ms trabajo de E/S (I/O-bound). Cuando el proceso CPU-bound
ejecuta, los otros procesos esperan. Algunos de estos estarn en las colas de los dispositivos
de E/S pero eventualmente en algn instante pasarn a la cola de procesos listos. En este
momento, muchos de los dispositivos de E/S estarn ociosos. Cuando el proceso en
ejecucin deje el estado Running, los procesos I/O-bound pasarn a ejecutar y rpidamente
volvern a bloquearse en espera de E/S. Si el proceso CPU-bound se encuentra bloqueado,
entonces el procesador estar ocioso. Por lo tanto, FCFS puede ocasionar un uso
indeficiente tanto del procesador como de los dispositivos de E/S.
Tc+ts tf-tll tc-tll
Proceso Tiempo de
llegada
Tiempo de
Servicio
Tiempo de
Comienzo
Tiempo de
Finalizacin
Turnaround Tiempo de
Espera
A 0 1 0 1 1 0
B 1 100 1 101 100 0
C 2 1 101 102 100 101-2=99
D 3 100 102 202 199 102-3=99
Promedio 100 49.50


Proceso Tiempo de
llegada
Tiempo de
Servicio
Tiempo de
Comienzo
Tiempo de
Finalizacin
Turnaround Tiempo de
Espera
B 0 100 0 100 100 0
D 1 100 100 200 199 100-1=99
A 2 1 200 201 201-2=199 200-2=198
C 3 1 201 202 202-3=199 201-3=198
Promedio 232 123.50


El tiempo promedio de espera bajo una poltica FCFS generalmente no es mnimo y puede
variar sustancialmente si hay mucha diferencia entre las duraciones de ciclo de los
procesos.

En el segundo ejemplo, se presenta un efecto convoy donde los procesos esperan a que un
proceso grande deje el CPU


Shortest-Job-First (SJF)
Este algoritmo selecciona al proceso con el prximo tiempo de ejecucin ms corto. Un
proceso corto saltar a la cabeza de la cola. La ejecucin de un proceso consiste en ciclos
de ejecucin de CPU y ciclos de espera por E/S. El algoritmo selecciona aquel proceso
cuyo prximo ciclo de ejecucin de CPU sea menor. El problema est en conocer dichos
valores, pero podemos predecirlos usando la informacin de los ciclos anteriores
ejecutados.



SJF
Proceso Tiempo de
llegada
Tiempo de
Servicio
Tiempo de
Comienzo
Tiempo de
Finalizacin
Turnaround Tiempo de
Espera
A 0 8 0 8 8 0
B 1 4 8 12 12-1=11 8-1=7
C 2 9 17 26 26-2=24 17-2=15
D 3 5 12 17 17-3=14 12-3=9
Promedio 14.25 10.33

FCFS
Proceso Tiempo de
llegada
Tiempo de
Servicio
Tiempo de
Comienzo
Tiempo de
Finalizacin
Turnaround Tiempo de
Espera
A 0 8 0 8 8 0
B 1 4 8 12 12-1=11 8-1=7
C 2 9 12 21 21-2=19 12-2=10
D 3 5 21 26 26-3=23 21-3=18
Promedio 20.33 11.66

El SJF es probablemente optimal pues da el mnimo tiempo promedio de espera. El
problema est en conocer la duracin del prximo requerimiento de CPU para cada
proceso. Esta duracin puede predecirse suponiendo que el prximo ciclo puede ser similar
a los anteriores.

Este algoritmo puede ser preemptive o no. Cuando un nuevo proceso llega a la cola de
procesos listos mientras otro se est ejecutando, el nuevo proceso puede tener el ciclo de
duracin de CPU ms corto que lo que falta por ejecutar del proceso actual. En el caso de
un esquema preemptive, el CPU ser asignado al proceso que acaba de llegar a la cola. Este
algoritmo se conoce como Shortest Remaining Time First (SRTF).


Prioridad
En muchos sistemas, los procesos tienen prioridades asignadas, y el planificador escoger
aquel proceso con mayor prioridad.
Cuando un proceso debe ser seleccionado, el planificador por prioridades seleccionar
aquel proceso que tenga mayor prioridad. Si hay ms de un proceso entonces se deber
seguir alguna poltica de seleccin.
Un problema que presenta un esquema de planificacin por prioridades puro es que los
procesos con la prioridad ms baja pueden sufrir de inanicin o bloqueo indefinido. Un
proceso que est listo para correr pero espera porque siempre hay procesos con prioridad
ms alta.
Para evitar este problema, se puede ir incrementando gradualmente la prioridad de los
procesos (envejecimiento).
SJF es un caso especial de planificacin por Prioridad, donde la prioridad es el inverso del
valor estimado del prximo ciclo de CPU ( a menor ciclo, mayor prioridad).

Proceso Tiempo
de
llegada
Prioridad Tiempo de
Servicio
Tiempo de
Comienzo
Tiempo de
Finalizacin
Turnaround Tiempo
de Espera
A 0 2 8 0 8 8 0
B 1 1 4 22 26 26-1=25 22-1=21
C 2 4 9 8 17 17-2=15 8-2= 6
D 3 2 5 17 22 22-3=19 17-3=14
Promedio 16.75 10.25

Este algoritmo puede ser preemptive y nonpreemptive. En el caso de preemptive, cuando
un proceso llega a la cola de procesos listos, su prioridad es comparada con la prioridad del
proceso que est corriendo. Si la prioridad del nuevo proceso es mayor, entonces se atiende
al nuevo proceso.


Round Robin
Una manera rpida de reducir la penalizacin que los procesos cortos sufren con FCFS es
usar expropiacin basada en un reloj. Una interrupcin de reloj es generada a intervalos
peridicos. Cuando ocurre la interrupcin, el proceso en ejecucin es colocado en la cola de
procesos listos y el prximo trabajo es seleccionado basado en el esquema FCFS. A cada
proceso se le da un trozo de tiempo.
La principal decisin de diseo que surge con Round Robin es el tamao del trozo o
quantum. Si el quantum es muy corto, entonces los procesos se movern a travs del
sistema rpidamente. Por otro lado, hay un cierto overhead o desperdicio de tiempo
envuelto con el manejo de la interrupcin de reloj y las funciones de planificacin y
despacho. Por lo tanto quanta muy pequeos deberan evitarse. Una alternativa es usar un
quantum de tiempo que sea un poco ms grande que el tiempo promedio requerido para una
interaccin tpica.
Round Robin es particularmente efectivo para sistemas generales de tiempo compartido. Se
implementa con una cola FIFO de procesos. Nuevos procesos son agregados al final de la
cola, y toma el proceso que se encuentra en la cabeza de la cola. Actualiza el timer para que
interrumpa despus del quantum de tiempo.
El desempeo de este algoritmo depender del tamao del quantum. Si el quantum es
infinito entonces degenera en FCFS. Si el quantum es muy pequeo entonces Round
Robin es llamado comparticin de CPU y en teora pareciera que cada proce so tiene su
propio procesador corriendo a 1/n la velocidad del procesador real.
Bajo este esquema es importante considerar el efecto del cambio de contexto.

Round Robin (RR q=3)
Proceso Tiempo de
llegada
Tiempo de
Servicio
Tiempo de
Comienzo
Tiempo de
Finalizacin
Turnaround Tiempo de
Espera
A 0 8 0, 12, 21 3, 15, 23 23 15
B 1 4 3, 15 6, 16 16-1=15 11
C 2 9 6, 16, 23 9, 19, 26 26-2=24 15
D 3 5 9, 19 12,21 21-3=18 11
Promedio 20 13

Potrebbero piacerti anche