Python - Algoritmo RoundRobin

 
Vista:

Algoritmo RoundRobin

Publicado por Francisco (1 intervención) el 29/10/2017 21:03:43
Hola, necesito realizar un programa que me permita hacer el algoritmo Round Robin, es el ultimo que me falta y no se como hacerlo, si alguien me podria ayudar se lo agradeceria. Les dejo la consigna para que lo vean mejor:

Estructura​ ​de​ ​las​ ​funciones:


Las funciones tienen la siguiente firma:
NOMBRE(actual, listos, tiempo[, quantum]) → siguiente
Siendo:
actual proceso que en el tiempo actual está utilizando el procesador

(o None si no hay ninguno)

listos lista completa de los procesos a ejecutar (ejecutados y a futuro)
tiempo tiempo actual de ejecución (se incrementa en cada llamada a la función)
quantum quantum total a utilizar por cada proceso
(en caso de que el algoritmo lo requiera)

siguiente proceso que tomará el procesador en el siguiente instante

(será el valor enviado en la siguiente llamada en el parámetro actual​)

Descripción​ ​de​ ​la​ ​lógica​ ​de​ ​las​ ​funciones:

En cada llamada, la función debe recibir los parámetros y luego devolver el siguiente
proceso a ejecutar. Así sucesivamente hasta que todos los procesos de la lista hayan sido
ejecutados en forma completa.
Cada llamada a estas funciones debe ir controlando los tiempos de ejecución y espera
de cada uno de los procesos involucrados, para poder determinar cuando un proceso a
finalizado, y además visualizar la historia de cada uno en forma similar a la gráfica realizada
en las clases de teoría.
Estructura​ ​de​ ​los​ ​procesos
Los “procesos” que estarán contenidos en la lista de procesos, son estructuras que
deben poseen los siguientes atributos:
id, nombre, inicio, duración, procesado, espera, quantum, estado
Cada uno de estos atributos deben ir reflejando el estado del proceso a medida que el
tiempo avanza en la ejecución.
Funciones​ ​internas
Cada uno de los procesos, posee una serie de funciones propias para realizar un
mejor control del estado del mismo (algunas son):
● ejecutar​: actualiza la historia e incrementa el tiempo de procesado en 1
● esperar​: actualiza la historia e incrementa el tiempo de espera en 1
● fin​: retorna True si el proceso ya completó su ejecución completa y actualiza la historia de
ser necesario
En las funciones de los algoritmos, es conveniente llamar a “ejecutar” y “esperar” en lugar
de codificar las actualizaciones necesarias.

Importante: nosotros ya tenemos programado todo lo de ejecutar, esperar y fin, unicamente tendiramos que ver como hacer el algoritmo con la funcion (actual, listos, tiempo y siguiente)

Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder