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. Algoritmo
de programación de prioridades: el algoritmo de programación de prioridades ejecuta los procesos según su prioridad. A cada proceso se le asigna una prioridad y el proceso con la prioridad más alta se ejecuta primero. Las prioridades se pueden definir tanto interna como externamente. El sistema decide las prioridades internas según la cantidad de recursos necesarios, el tiempo necesario, etc., mientras que las prioridades externas se basan en el tiempo en que se necesita el trabajo o la cantidad que se paga por el trabajo realizado o la importancia del proceso. La programación prioritaria puede ser preventiva o no preventiva.
Nota-
- Si dos procesos tienen la misma prioridad, el empate se rompe usando FCFS.
- El tiempo de espera para el proceso de mayor prioridad siempre es cero en el modo preventivo, mientras que puede no serlo en el caso del modo no preventivo.
Inconvenientes:
El gran problema es la inanición o bloqueo indefinido. Puede suceder que en el flujo de procesos, el sistema siga ejecutando los procesos de alta prioridad y los procesos de baja prioridad nunca se ejecuten.
Solución:
Una solución al problema es el envejecimiento. El envejecimiento se refiere al aumento gradual de la prioridad de los procesos que esperan en el sistema en un número fijo después de un intervalo fijo, digamos en 1 cada 10 minutos. Esto asegurará que un proceso de baja prioridad también se ejecute aumentando lentamente su prioridad con el tiempo.
Diferencias entre FCFS y el algoritmo de programación de prioridad:
Primero en llegar, primero en ser atendido (FCFS) | programación de prioridades |
---|---|
Ejecuta los procesos en el orden en que llegan, es decir, el proceso que llega primero se ejecuta primero. | Ejecuta los procesos en función de su prioridad, es decir, en orden descendente de sus prioridades. Un proceso con mayor prioridad se ejecuta primero. |
Es de naturaleza no preventiva. | Es de naturaleza no preventiva y preventiva. |
Da como resultado un tiempo de espera bastante largo para los procesos y, por lo tanto, aumenta el tiempo de espera promedio. | No hay idea de tiempo de respuesta y tiempo de espera. |
Conduce al efecto convoy. | Puede ocurrir que un proceso de baja prioridad se quede esperando un tiempo indefinido y nunca llegue a ejecutarse. |
Es el más fácil de implementar en cualquier sistema. | Es más adecuado para sistemas operativos en tiempo real. |