SJF significa Trabajo más corto primero . Es un tipo de programación de CPU . Este algoritmo asocia con cada proceso la duración de la próxima ráfaga de CPU de este último. Cuando la CPU está disponible, se asigna al proceso que tiene el siguiente tiempo de ráfaga de CPU más pequeño. Es una política de programación que selecciona ejecutar el proceso de espera con el menor tiempo de ejecución . Si dos procesos tienen la misma longitud en la próxima ráfaga de CPU, se ejecutará First Come.
Características
- El algoritmo SJF puede ser preventivo o no preventivo.
- Tiempo restante más corto La programación es una variante preventiva de la programación SJF.
- Este método de algoritmo es útil para el procesamiento por lotes.
- La programación SJF se utiliza con frecuencia en la programación a largo plazo.
Ejemplo:
Aquí, tenemos 4 procesos P1, P2, P3 y P4 y su tiempo de ráfaga es 6, 8, 7, 3 respectivamente.
Supongamos que llegan todos al mismo tiempo.
Por definición de programación SJF, podemos decir que P4 se ejecutará primero, luego P1, luego P3 y, por último, P2 se ejecutará.
El diagrama de Gantt será: –
El tiempo de espera es de 3 unidades de tiempo para el proceso P1, 16 unidades de tiempo para el proceso P2, 9 unidades de tiempo para el proceso P3 y 0 unidades de tiempo para el proceso P4.
Por lo tanto , el tiempo de espera promedio es (3 + 16 + 9 + 0)/4 = 7 unidad de tiempo .
ventajas
- Reduce el tiempo medio de espera.
- La programación SJF brinda el tiempo de espera promedio más bajo para un conjunto específico de procesos.
- Probablemente óptimo con respecto al tiempo promedio de respuesta.
Desventajas
- No se puede implementar a nivel de programación de CPU a corto plazo.
- Puede conducir a la inanición de otros procesos si el tiempo de ráfaga del proceso en ejecución es muy grande.
- El tiempo total de ejecución de un trabajo debe conocerse antes de la ejecución.
- No hay forma de saber la duración de la próxima ráfaga de CPU.