Algoritmo de Planificación Por Turnos

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

Algoritmo de planificación por turnos

(Zapata, n.d.)El algoritmo de planificación por turnos está diseñado especialmente para los
sistemas de tiempos compartidos, es similar a el FCFS, se añade la técnica del desalojo para
conmutar entre procesos.
En este tipo de sistemas se define una pequeña unidad de tiempo, denominada cuanto, del
tiempo, o franja temporal

Funcionamiento

Es uno de los algoritmos más antiguos, simples y justos para asignar CPU entre procesos, y es
muy válido para entornos de tiempo compartido. A cada operación se le asigna un tiempo de
ejecución, llamado cantidades o cantidades. Si un proceso se agota, se elegirá otro proceso
para consumir la CPU. Si un proceso falla o termina antes de consumir sus cantidades, también
se cambiará el uso de la CPU. Los círculos son fáciles de crear. Todo lo que necesita el
planificador es tener lista una lista de operaciones.

Franja temporal

Determinar el tamaño de un cuanto es


muy importante para el funcionamiento
eficiente de un sistema informático. Si la
cantidad de tiempo es demasiado
grande, cada proceso tendrá el tiempo
necesario para completarlo, por lo que el
gráfico de diseño de lotes cambia al
primero en entrar, primero en salir.

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 cuantum de 500 mseg., el tiempo desperdiciado con este parámetro sería del 1%.

Característica

(Silberschatz, 2006)Periódicamente, se genera una interrupción de reloj.

Cuando se genera la interrupción, el proceso que está en ejecución se sitúa en la cola de Listos
y se selecciona el siguiente trabajo (apropiativo) 

Código
def roundRobin(units, sets=None):

Generates a schedule of "fair" pairings from a list of units """

if len(units) % 2:

units.append(None)

count    = len(units)

sets     = sets or (count - 1)

half     = count / 2

schedule = []

for turn in range(sets):

pairings = []

for i in range(half):

pairings.append(units[i], units[count-i-1])

units.insert(1, units.pop())

schedule.append(pairings)

return schedule

test code

if __name__ == '__main__':

for pairings in roundRobin(range(5)):

print pairings

Planificación mediante colas multinivel

La programación mediante una cola de varios


niveles es un algoritmo para programar
operaciones en el sistema operativo. Su objetivo es
distinguir entre diferentes tipos de trabajos, para
ello divide las colas de procesos preparados en
varias colas, una para cada tipo de trabajo, y no
permite el movimiento de procesos.

Los algoritmos de colas multinivel

Las devoluciones se basan en un algoritmo de cola


de varios niveles, pero permiten que el trabajo se
transfiera de una cola a otra.

Los acrónimos MLQ y MLFQ son la abreviatura de


Cola multinivel y Cola de respuesta multinivel.

Planificación MLFQ: colas multinivel con realimentación.


El algoritmo de puesta en cola de varios niveles tiene bajos costos de programación, pero no es
flexible. Al planificar con una cola de respuesta de varios niveles, un proceso puede pasar de
una cola a otra en función de su comportamiento en tiempo de ejecución.

Este algoritmo funciona ejecutando procesos en la cola de mayor prioridad, luego ejecutando
procesos en la siguiente cola, etc. Con esta disposición, los procesos con conjuntos cortos se
ejecutarán rápidamente sin ir demasiado lejos en la jerarquía de colas listas para usar.
Mientras que los procesos con floración prolongada irán disminuyendo gradualmente.

La forma óptima de atenderlos es:

Concéntrese en las funciones de E / S limitadas, para ocupar recursos y liberar el procesador


durante el mayor tiempo posible.

En general, al proceso se le da un tiempo T para estar en la cola, y cuando lo excede, pasará a


la siguiente cola baja con menor prioridad, es decir, su prioridad se reducirá en uno. La
elección del valor dado para el tiempo T varía ampliamente entre sistemas, dependiendo del
número de procesos actuales, el tipo de operación y el número de colas.

Se pueden usar mecanismos de envejecimiento para evitar bloquear un proceso


indefinidamente, y estos incluyen aumentar la prioridad de los procesos que esperan
demasiado tiempo en una cola de baja prioridad, para moverlos a una cola de mayor prioridad
que se puede ejecutar antes.

se puede definir por los siguientes parámetros:

 El número de colas.
 El algoritmo de planificación de cada
cola.
 El algoritmo de planificación entre
las distintas colas.
 El método usado para determinar
cuándo pasar un proceso a una cola
de prioridad más alta.
 El método usado para determinar
cuándo pasar un proceso a una cola
de prioridad más baja.
 El método usado para determinar en
qué cola se introducirá un proceso
cuando haya que darle servicio.

bibliografía
Silberschatz, G. (2006). Algoritmos de planificación. Fundamentos de Sistemas Operativos,
142–151. http://algoritmosplanificacion.blogspot.com/2012/08/planificacion-por-turno-
rotatorioround.html
Zapata, J. (n.d.). Planificacion por turnos (Round Robin). Retrieved January 4, 2022, from
https://prezi.com/qf-pz8tdfxeq/planificacion-por-turnos-round-robin/
GALLEGO, C. (n.d.). Planificación mediante colas multinivel – CAMILO GALLEGO. Retrieved
January 4, 2022, from https://ccgallegoe.wordpress.com/2014/05/07/planificacion-
mediante-colas-multinivel/

https://chsos20152912029.wordpress.com/tag/colas-multinivel/

También podría gustarte