Diferencia entre los algoritmos de programación de CPU SJF y LJF

El trabajo más corto primero :
el algoritmo de trabajo más corto primero (SJF) es un algoritmo de programación de CPU diseñado para reordenar los trabajos de modo que se elija el proceso que tiene el tiempo de ráfaga más pequeño para la próxima ejecución. Se utiliza para reducir el tiempo de espera promedio de otros procesos en espera de ejecución. Esto puede serpreventivoono preventivo. Su versión preventiva se llama Shortest Remaining Time First (SRTF).

Cuando llega un trabajo, se inserta en la cola de trabajos listos en función de su tiempo de ráfaga. SJF minimiza el tiempo de espera promedio porque da servicio a procesos con menos tiempo de ráfaga antes de dar servicio a procesos con mayor tiempo de ráfaga.

La principal ventaja de usar este algoritmo es que aumenta el tiempo promedio de respuesta y el tiempo promedio de espera, lo que aumenta la efectividad del sistema.

Si bien minimiza el tiempo de espera promedio, puede castigar los procesos con un tiempo de ráfaga más alto. Si los procesos de tiempo de ejecución más cortos están en la lista lista, entonces los procesos con grandes tiempos de ráfaga tienden a dejarse en la lista lista mientras que los procesos pequeños reciben servicio. Puede ocurrir en casos extremos que siempre se atiendan procesos con tiempos de ejecución cortos y que los procesos con tiempos de ejecución largos esperen indefinidamente. Esta privación de procesos de mayor tiempo de ejecución es la limitación de este algoritmo.

El trabajo más largo primero :
el trabajo más largo primero (LJF), por otro lado, es exactamente lo contrario de SJF. Está diseñado para reordenar los trabajos de modo que se elija el proceso que tenga el mayor tiempo de ráfaga para la próxima ejecución. Es un tipo de algoritmo de programación no preventivo en el que una vez que un proceso comienza su ejecución, no puede interrumpirse entre su procesamiento y cualquier otro proceso puede ejecutarse solo después de que el proceso asignado haya completado su procesamiento y haya terminado. Cuando llega un trabajo, se inserta en la cola de trabajos listos en función de su tiempo de ráfaga. Esto también puede ser preventivo o no preventivo.
Su versión preventiva se llama el tiempo restante más largo primero (LRTF).

La principal desventaja de este algoritmo es que podría conducir a la inanición de los procesos. El efecto de convoy es otro problema y conduce a un rendimiento reducido. Por lo tanto, este algoritmo rara vez se usa.

Trabajo más corto primero (SJF) Trabajo más largo primero (LJF)
Los procesos cortos se ejecutan primero y luego siguen los procesos más largos. Los procesos más largos se ejecutan primero y luego siguen los procesos más cortos.
El rendimiento aumenta porque se pueden ejecutar más procesos en menos tiempo. El rendimiento disminuye porque se pueden ejecutar menos procesos en una cierta cantidad de tiempo.
No conduce al efecto de convoy. Podría conducir al efecto convoy.
Tiene un tiempo promedio de respuesta y un tiempo promedio de espera más pequeños, lo que aumenta la efectividad del sistema. Tiene un tiempo de respuesta promedio y un tiempo de espera promedio muy mayores. Esto da como resultado un procesamiento lento y disminuye la eficacia del sistema.

Considere el siguiente ejemplo:

Proceso Hora de llegada Tiempo quemado
P1 0 10
P2 1 5
P3 2 8
P4 2 15

Intentemos resolver este problema usando SJF y LJF para hacer un estudio comparativo.

1. Primero el trabajo más largo:
el diagrama de Gantt se verá así:

Average waiting time (AWT),
= ((0-0) + (33-1) + (25-2) + (10-2)) / 4 
= 63/4 
= 15.75

Average turnaround time (ATAT),
= ((10-0) + (38-1) + (33-2) + (25-2))/4 
= 101/4 
= 25.25 

2.(a). El trabajo más corto primero (no preventivo):
el diagrama de Gantt se verá así:

Average waiting time (AWT),
= ((0-0) + (10-1) + (15-2) + (23-2)) / 4 
= 43 / 4 
= 10.75

Average turnaround time (ATAT),
= ((10-0) + (15-1) + (23-2) + (38-2)) / 4 
= 81 / 4 
= 20.25 

2.(b). El trabajo más corto primero (preventivo):
el diagrama de Gantt se verá así:

Average waiting time (AWT),
= ((0-0) + (1-1) + (6-2) + (23-2)) / 4 
= 25 / 4 
= 6.25

Average turnaround time (ATAT),
= ((23-0) + (6-1) + (14-2) + (38-2)) / 4 
= 76 / 4 
= 19 

Del ejemplo anterior, está claro que el algoritmo SJF es más eficiente que el algoritmo LJF.

Publicación traducida automáticamente

Artículo escrito por srishtirajani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *