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
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


0