Saltar al contenido

Publicación más corta primero (SJF): ejemplo preventivo, no preventivo

¿Cuál es la primera programación de trabajo más corta?

El trabajo más corto primero (SJF) es un algoritmo en el que se selecciona el proceso con el menor tiempo de ejecución para la siguiente ejecución. Este método de programación puede ser preventivo o no preventivo. Reduce en gran medida el tiempo medio de espera para otros procesos que esperan su finalización. La forma más corta es primero la forma completa de SJF.

Básicamente, existen dos tipos de métodos SJF:

En este tutorial del sistema operativo, aprenderá:

Características de programación de SJF

SJF no preventivo

En la programación no preferente, una vez que se asigna el ciclo de la CPU para su procesamiento, el proceso lo mantiene hasta que alcanza un estado de espera o se termina.

Considere los siguientes cinco procesos, cada uno de los cuales tiene su propio tiempo de ráfaga y tiempo de llegada únicos.

Cola de procesamientoTiempo quemadoHora de llegada
P162
P225
P381
P430
P544

Paso 0) En el tiempo = 0, P4 muere y comienza la ejecución.

Paso 1) En el tiempo = 1, llega el proceso P3. Sin embargo, P4 todavía necesita 2 unidades de ejecución. Seguirá ejecutándose.

Paso 2) En el tiempo = 2, llega el proceso P1 y se agrega a la cola de espera. P4 seguirá ejecutándose.

Paso 3) En el tiempo = 3, finalizará el proceso de ejecución de P4. Se compara el tiempo de ráfaga de P3 y P1. El proceso P1 se ejecuta porque su tiempo de ráfaga es menor en comparación con P3.

Paso 4) En el tiempo = 4, llega el proceso P5 y se agrega a la cola de espera. P1 seguirá ejecutándose.

Paso 5) En el tiempo = 5, llega el proceso P2 y se agrega a la cola de espera. P1 seguirá ejecutándose.

Paso 6) En el tiempo = 9, el proceso P1 completará la ejecución. Se compara el tiempo de ráfaga de P3, P5 y P2. El proceso P2 se ejecuta porque el tiempo de ráfaga es el más bajo.

Paso 7) En el tiempo = 10, P2 se está ejecutando y P3 y P5 están en la cola de espera.

Paso 8) En el tiempo = 11, finaliza la ejecución del proceso P2. Se compara el tiempo de ráfaga de P3 y P5. El proceso P5 se ejecuta porque su tiempo de ráfaga es menor.

Paso 9) En el tiempo = 15, finalizará la ejecución del proceso P5.

Paso 10) En el tiempo = 23, finaliza la ejecución del proceso P3.

Paso 11) Calculemos el tiempo medio de espera como ejemplo anterior.


Wait time 
P4= 0-0=0
P1=  3-2=1
P2= 9-5=4
P5= 11-4=7
P3= 15-1=14

Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

SJF preventivo

En la programación preferente de SJF, los trabajos de la cola están listos a medida que llegan. Un proceso comienza con el tiempo de ejecución de ráfaga más corto. Si se produce un proceso con un tiempo de ráfaga aún más corto, el proceso actual o sustituido se elimina de la ejecución y se asigna un ciclo de CPU a la posición más corta.

Considere los siguientes cinco procesos:

Cola de procesamientoTiempo quemadoHora de llegada
P162
P225
P381
P430
P544

Paso 0) En el tiempo = 0, P4 muere y comienza la ejecución.

Cola de procesamientoTiempo quemadoHora de llegada
P162
P225
P381
P430
P544

Paso 1) En el tiempo = 1, llega el proceso P3. Pero, P4 tiene un tiempo de ráfaga más corto. Seguirá ejecutándose.

Paso 2) En el tiempo = 2, el proceso P1 viene con un tiempo de ráfaga = 6. El tiempo de ráfaga es mayor que el tiempo P4. En consecuencia, P4 continuará su ejecución.

Paso 3) En el tiempo = 3, finaliza la ejecución del proceso P4. Se compara el tiempo de ráfaga de P3 y P1. El proceso P1 se ejecuta porque su tiempo de ráfaga es menor.

Paso 4) En el tiempo = 4, vendrá el proceso de P5. Se compara el tiempo de ráfaga de P3, P5 y P1. El proceso P5 se ejecuta porque su tiempo de ráfaga es el más bajo. El proceso P1 tiene preferencia.

Cola de procesamientoTiempo quemadoHora de llegada
P1Quedan 5 de 62
P225
P381
P430
P544

Paso 5) En el tiempo = 5, vendrá el proceso P2. Se compara el tiempo de ráfaga de P1, P2, P3 y P5. El proceso P2 se ejecuta porque tiene el tiempo de ráfaga más corto. El proceso P5 tiene preferencia.

Cola de procesamientoTiempo quemadoHora de llegada
P1Quedan 5 de 62
P225
P381
P430
P5Quedan 3 de 44

Paso 6) En el tiempo = 6, P2 se está ejecutando.

Paso 7) En el tiempo = 7, P2 finaliza su ejecución. Se compara el tiempo de ráfaga de P1, P3 y P5. El proceso P5 se ejecuta porque su tiempo de ráfaga es menor.

Cola de procesamientoTiempo quemadoHora de llegada
P1Quedan 5 de 62
P225
P381
P430
P5Quedan 3 de 44

Paso 8) En el tiempo = 10, P5 terminará de ejecutarse. Se compara el tiempo de ráfaga de P1 y P3. El proceso P1 se ejecuta porque su tiempo de ráfaga es menor.

Paso 9) En el tiempo = 15, P1 finaliza su ejecución. P3 es el único proceso que queda. Comenzará a ejecutarse.

Paso 10) En el tiempo = 23, P3 finaliza su ejecución.

Paso 11) Calculemos el tiempo medio de espera como ejemplo anterior.


Wait time 
P4= 0-0=0
P1=  (3-2) + 6 =7
P2= 5-5 = 0
P5= 4-4+2 =2
P3= 15-1 = 14

Average Waiting Time = 0+7+0+2+14/5 = 23/5 =4.6

Ventajas de SJF

Aquí están las ventajas / beneficios de usar el método SJF:

Desventajas / Desventajas de SJF

Aquí hay algunas desventajas / desventajas de los algoritmos SJF:

Resumen