1. First Come First Served (FCFS) :
First Come First Served (FCFS) es el tipo de algoritmo más simple. Es un algoritmo no preventivo, es decir, el proceso no se puede interrumpir una vez que comienza a ejecutarse. El FCFS se implementa con la ayuda de una cola FIFO. Los procesos se colocan en la cola de listos en el orden de su hora de llegada. El proceso que llega primero se convierte en la cabeza de la cola, mientras que los demás que llegan después se agregan al final de la cola. En el algoritmo First Come First Served (FCFS), el proceso que llega primero se envía primero para que la CPU lo ejecute cuando la CPU está libre.
La principal desventaja de este algoritmo es que el tiempo de espera promedio suele ser bastante largo. También conduce al efecto convoy . Esto da como resultado una menor utilización del dispositivo o de la CPU y una menor eficiencia.
2. El trabajo más largo primero (LJF):
el trabajo más largo primero (LJF) se basa en el tiempo de ráfaga del proceso. Los procesos se colocan en la cola de listos en función de sus tiempos de ráfaga. En este algoritmo, el proceso con el mayor tiempo de ráfaga se procesa primero. Se compara el tiempo de ráfaga de sólo aquellos procesos que están presentes o han llegado hasta ese momento. También es de naturaleza no preventiva. Su versión preventiva se llama algoritmo Longest Remaining Time First (LRTF) .
La principal desventaja de este algoritmo es que proporciona un tiempo de espera promedio y un tiempo de respuesta promedio muy altos para un conjunto dado de procesos y, por lo tanto, reduce la efectividad del sistema.
Nota:
si dos procesos tienen el mismo tiempo de ráfaga, el empate se rompe mediante FCFS, es decir, el proceso que llegó primero se procesa primero.
La diferencia entre el algoritmo de programación First Come First Served (FCFS) y Longest Job First (LJF) es la siguiente:
Primero en llegar, primero en ser atendido (FCFS) | Trabajo más largo primero (LJF) |
---|---|
First Come First Served (FCFS) ejecuta los procesos en el orden en que llegan, es decir, el proceso que llega primero se ejecuta primero. | Longest Job First (LJF) ejecuta los procesos en función de su tiempo de ráfaga, es decir, en orden descendente de sus tiempos de ráfaga. |
FCFS no es de naturaleza preventiva. | LJF tampoco es preventivo, pero su versión preventiva también se denomina algoritmo de tiempo restante más largo primero (LRTF). |
FCFS da como resultado un tiempo de espera bastante largo para los procesos y, por lo tanto, aumenta el tiempo de espera promedio. | El tiempo de espera promedio y el tiempo de respuesta promedio para un conjunto dado de procesos es muy grande. |
El algoritmo FCFS es el más fácil de implementar en cualquier sistema. | El algoritmo LJF es muy difícil de implementar. |
Es posible que un proceso deba esperar bastante tiempo para ejecutarse según el tiempo de ráfaga de los procesos que llegaron primero. | Es posible que nunca se ejecute un proceso corto y que el sistema siga ejecutando los procesos más largos. Esto puede hacer que el usuario sienta que su trabajo no se está realizando en el caso de sistemas multiusuario. |
FCFS conduce a una menor utilización de dispositivos y CPU, lo que reduce la eficiencia del sistema. | LJF conduce a una velocidad de procesamiento muy baja, lo que reduce la eficacia del sistema debido al gran tiempo de espera promedio y el tiempo de respuesta. |
FCFS da como resultado una sobrecarga mínima. | En el caso de LJF, se debe registrar el tiempo transcurrido, lo que genera más sobrecarga en el procesador y, por lo tanto, reduce el rendimiento del sistema. |