Algoritmo Turno Rotativo y Algoritmo SRTF - Paul Andrea David Petro

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

UNIVERSIDAD DE CÓRDOBA

Facultad de Ingenierías
Ingeniería de Sistemas

Algoritmo Turno Rotativo y


Algoritmo SRTF

Presentado por:
Paula Andrea David Petro

Tutor: Antonio Fernando Movilla


Curso: Sistemas Operativos
VIII Semestre

Montería - Córdoba

09/03/2021
Los algoritmos de planificación se encargan de gestionar el
tiempo disponible del microprocesador entre todos los procesos listos para su
ejecución. Estos algoritmos pueden usar prioridades, en cuyo caso a cada
proceso se le asigna una prioridad y los procesos de mayor prioridad tendrán
preferencia sobre los de menos. La prioridad de un proceso se puede modificar
a lo largo de su vida, para evitar que un proceso de baja prioridad nunca llegue
a ejecutarse ya que los de alta prioridad monopolizan el procesador.

Estos métodos nacieron por la necesidad de poder ordenar los procesos para
ganar eficiencia a la hora de tratar con ellos, es decir, son los encargados de
ordenar y dirigir los procesos para asegurar que ninguno de ellos monopolice el
uso de la CPU.

Existen dos tipos de algoritmos de planificación, expropiativos y no


expropiativos. Los expropiativos asignan un tiempo de ejecución a cada
proceso después del cual se planifica otro proceso, hasta que cada proceso
acabe su trabajo. También pueden expulsar a un proceso en ejecución si llega
otro de mayor prioridad que necesita ejecutarse. Los no expropiativos permiten
que se ejecute el proceso hasta que acabe su trabajo. Es decir, una vez les
llega el turno de ejecutarse, no dejarán libre la CPU hasta que terminen o se
bloqueen.

A continuación, hablaremos de los siguientes algoritmos:

Algoritmo Turno Rotativo


Este es uno de los algoritmos más antiguos, sencillos y equitativos en el
reparto de la CPU entre los procesos, muy válido para entornos de tiempo
compartido. Cada proceso tiene asignado un intervalo de tiempo de ejecución,
llamado cuantum o cuánto. Si el proceso agota su cuantum de tiempo, se elige
a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes
de agotar su cuantum también se alterna el uso de la CPU. El round Robin es
muy fácil de implementar.
Es uno de los algoritmos de planificación más antiguos, sencillo y usado, en
este cada proceso tiene asignado un intervalo de tiempo de ejecución llamado
Quantum. Round-Robin es muy sencillo de implementar, todo lo que necesita el
planificador es conocer la cola de los procesos listos y una vez que el proceso
en ejecución consume su Quantum, se le quita el procesador y se le asigna al
siguiente en la cola, colocando al proceso que salió al final de la cola de
procesos listos. Específicamente cada proceso tiene asignado un intervalo de
tiempo de ejecución, llamado cuánto. Si el proceso agota su cuanto, de tiempo,
se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina
antes de agotar su cuanto también se alterna el uso de la CPU.

El Round-Robin es muy fácil de implementar. Todo lo que necesita el


planificador es mantener una lista de los procesos listos, como se muestra en
la Figura 1. En esta figura en a) el proceso P7 ocupa la CPU. En b) P7 se
bloquea pasando P2 a ocupar la CPU. En c) P2 agota su cuanto con lo que
pasa al final de la lista y P4 ocupa la CPU. Este algoritmo presupone la
existencia de un reloj en el sistema para generar periódicamente interrupciones
al expirar el cuanto y proceder a llamar al dispatcher.), la determinación del
tamaño del cuanto es vital para la operación efectiva de un sistema de
cómputo.

Si el cuanto de tiempo es muy grande, cada proceso tendrá el tiempo necesario


para terminar, de manera que el esquema de planificación por turno degenera
en uno de primero-en-entrar-primero-en-salir. Si el cuanto es muy pequeño, el
gasto extra por cambio de proceso se convierte en el factor dominante y el
rendimiento del sistema se degradará hasta el punto en que la mayor parte del
tiempo se invierte en la conmutación del procesador, con muy poco o ningún
tiempo para ejecutar los programas de los usuarios. El tamaño del cuanto debe
fijarse en el tamaño lo bastante grande como para que la mayoría de las
peticiones interactivas requieran menos tiempo que la duración del cuánto. Por
ejemplo, supongamos que el cambio de proceso tarda 5 mseg., y la duración
del cuantum es de 20 mseg.

Con estos parámetros, se utiliza un mínimo del 20% del tiempo de la CPU en la
ejecución del sistema operativo. Para incrementar la utilización de la CPU por
parte de los procesos de usuario podríamos establecer un cuanto de 500
mseg., el tiempo desperdiciado con este parámetro sería del 1%. Pero
consideremos lo que ocurriría si diez usuarios interactivos oprimieran la tecla
enter casi al mismo tiempo. Diez procesos se colocarían en la lista de procesos
listos. Si la CPU está inactiva, el primero de los procesos comenzaría de
inmediato, el segundo comenzaría medio segundo después, etc. Partiendo de
la hipótesis de que todos los procesos agoten su cuanto, el último proceso
deberá de esperar 4’5 seg. para poder ejecutarse. Esperar 4’5 seg. para la
ejecución de una orden sencilla como dir parece excesivo. En conclusión, un
cuanto corto disminuye el rendimiento de la CPU, mientras que un cuanto muy
largo empobrece los tiempos de respuesta y degenera en el algoritmo FIFO. La
solución es adoptar un término medio como 100 mseg, Round-robin (RR) es
uno de los algoritmos empleados por los programadores
de procesos y redes en la informática.

Como el término se usa generalmente, los segmentos de tiempo (también


conocidos como cuantos de tiempo) se asignan a cada proceso en partes
iguales y en orden circular, manejando todos los procesos
sin prioridad (también conocido como ejecutivo cíclico ). La programación de
round-robin es simple, fácil de implementar, y la inanición exento. La
programación por turnos también se puede aplicar a otros problemas de
programación, como la programación de paquetes de datos en redes
informáticas. Es un concepto de sistema operativo .

El nombre del algoritmo viene del round-robin principio conocido de otros


campos, donde cada persona toma una parte igual de algo a su vez.

Programación de procesos: Para programar los procesos de manera justa,


un programador por turnos generalmente emplea el tiempo compartido , dando
a cada trabajo un intervalo de tiempo o cuanto (su asignación de tiempo de
CPU) e interrumpiendo el trabajo si no se completa para entonces. El trabajo se
reanudará la próxima vez que se asigne un intervalo de tiempo a ese proceso.
Si el proceso termina o cambia su estado a espera durante su cuanto de
tiempo atribuido, el planificador selecciona el primer proceso en la cola lista
para ejecutar. En ausencia de tiempo compartido, o si los cuantos fueran
grandes en relación con el tamaño de los trabajos, un proceso que produjera
trabajos grandes se vería favorecido sobre otros procesos.
El algoritmo round-robin es un algoritmo preventivo ya que el programador
fuerza el proceso fuera de la CPU una vez que expira la cuota de tiempo.

Por ejemplo, si el intervalo de tiempo es de 100 milisegundos y


el trabajo1 tarda un tiempo total de 250 ms en completarse, el programador por
turnos suspenderá el trabajo después de 100 ms y dará a otros trabajos su
tiempo en la CPU. Una vez que los otros trabajos hayan tenido su parte igual
(100 ms cada uno), el trabajo1 obtendrá otra asignación de tiempo de CPU y el
ciclo se repetirá. Este proceso continúa hasta que finaliza el trabajo y no
necesita más tiempo en la CPU.

Trabajo1 = tiempo total para completar 250 ms (cuántico 100 ms).

Primera asignación = 100 ms.

Segunda asignación = 100 ms.

Tercera asignación = 100 ms

Tiempo total de CPU del trabajo1 = 250 ms

Considere la siguiente tabla con el tiempo de llegada y el tiempo de ejecución


del proceso con el tiempo cuántico de 100 ms para comprender la
programación por turnos:

Nombre del proceso Hora de llegada Tiempo de ejecución

P0 0 250

P1 50 170

P2 130 75

P3 190 100

P4 210 130

P5 350 50
Otro enfoque consiste en dividir todos los procesos en un número igual de
cuantos de tiempo de modo que el tamaño del cuanto sea proporcional al
tamaño del proceso. Por tanto, todos los procesos terminan al mismo tiempo.

Ejemplo:
Algoritmo SRTF
Es similar al SJF, con la diferencia de que si un nuevo proceso pasa a listo se
activa el dispatcher para ver si es más corto que lo que queda por ejecutar del
proceso en ejecución. Si es así, el proceso en ejecución pasa a listo y su
tiempo de estimación se decremento con el tiempo que ha estado
ejecutándose.

En SRTF se penaliza a las ráfagas largas (como en SJF). Un punto débil de


este algoritmo se evidencia cuando una ráfaga muy corta suspende a otra un
poco más larga, siendo más larga la ejecución en este orden al ser preciso un
cambio adicional de proceso y la ejecución del código del planificador. Trabajos
cortos.

 Es una versión apropiativa de SJF.


 Cada vez que entran trabajos se interrumpe el actual y se compara el
tiempo restante de éste con el de los entrantes.
 Si hay un trabajo nuevo más corto que lo que le falta al actual en CPU,
echamos el actual y metemos el nuevo.
 De nuevo, se supone que se conocen los tiempos de uso futuro de CPU
de antemano. Una versión práctica debe hacer uso de una estimación.

Características:
- De los procesos que están esperando para usar la CPU,SRTF lleva a
ejecución el proceso al que le reste menos tiempo para terminar.
- Los empates se dirimen mediante FIFO / FCFS

Funcionamiento:
- Los procesos llegan a la cola y solicitan un intervalo de CPU
- Si dicho intervalo es inferior al que le falta al proceso en ejecución para
abandonar la CPU, el nuevo proceso pasa a la CPU y el que se ejecutaba a la
cola de preparados.

Inconvenientes:
- El intervalo de CPU es difícil de predecir
- Posibilidad de inanición: los trabajos largos no se ejecutarán mientras hayan
trabajos cortos.

SRTF optimiza la media del tiempo de espera respecto SJF (mantiene mejores


promedios porque los procesos cortos salen antes de la ronda), pero acarrea
los mismos problemas y sumando la dificultad de predecir la duración de la
siguiente ráfaga de CPU.

También podría gustarte