Академический Документы
Профессиональный Документы
Культура Документы
HECHO POR:
SISTEMAS OPERATIVOS
GRUPO AN
2019
Introducción
Este trabajo consta de una investigación acerca de las características propias del algoritmo de
planificación conocido como Round Robin en un sistema monoprocesador. La planificación de un
procesador es una de las partes más importantes dentro del análisis de un sistema operativo. Vale
la pena aclarar para aquellos que no estén tan introducidos en el tema, que la planificación de un
procesador es la base de los sistemas operativos para la multiprogramación. El concepto de
multiprogramación es: teniendo un número de programas en memoria al mismo tiempo, la CPU
puede ser compartida entre ellos, haciendo más trabajos en menor tiempo. La planificación del
procesador es implementar algoritmos que le permitan decidir al sistema operativo que procesos
van a competir por el uso de la CPU, y al “despachador”, que proceso va a hacer uso de ella en cada
instante; y también la manera o técnicas que se usan para decidir cuanto tiempo de ejecución se le
asigna a cada proceso.
El Round Robin es un algoritmo de los más conocidos dentro de los algoritmos de planificación, y de
los más usados también. Consta básicamente de la asignación de un quantum a cada proceso, como
tiempo máximo de uso del procesador. nos proponemos con este trabajo evaluar la eficiencia del
Round Robin con respecto a los objetivos de la planificación, si cumple o no con estos, y si una vez
implementado puede llegar a tener deficiencias.
El round Robin es uno de los algoritmos más antiguos, sencillos y equitativos en el reparto de la CPU,
lo que significa que evita que sea monopolizado el uso de la CPU. Esto es muy válido para entornos
de tiempo compartido.
El algoritmo consiste en definir una pequeña unidad de tiempo llamada quantum, la cual se le asigna
a cada proceso que tiene como estado “listo”. Si el proceso agota su “quantum” de tiempo, se elige
otro proceso para que ocupe la CPU. De igual manera si el proceso se bloquea o finaliza antes de
agotar su quantum, también alterna el uso de la CPU.
Es por esto que la necesidad de un reloj del sistema existe. Este dispositivo genera interrupciones
periódicamente. Estas son muy importantes, pues garantiza que el sistema operativo obtenga el
mando de la CPU periódicamente. El quantum de un proceso equivale a un número fijo de ciclos del
reloj. Al ocurrir una interrupción del reloj que coincide con el término del quantum se llama
despachador, el cual le cede el control de la CPU al proceso seleccionado por el planificador. Este
algoritmo es usado para ayudar a crear procesos o trabajos programados para asegurar que cada
proceso requerido para realizar una acción tiene suficiente tiempo para ejecutarlo.” Por ejemplo,
en un ordenador el usuario empieza tres aplicaciones, que pueden ser la aplicación de correo, el
navegador Web y un procesador de texto. Estas aplicaciones son cargadas en el sistema de memoria,
y cada uno de ellos puede funcionar de forma transparente para el usuario. Round Robin se encarga
de compartir los recursos entre las tres aplicaciones y sus procesos (y muchas otras que están
funcionando de forma invisible para el usuario). Esta forma de manejar los procesos funciona bien
porque cada aplicación consigue una cierta cantidad de tiempo por cada proceso cíclico. Un proceso
cíclico es la cantidad de tiempo que le lleva a la CPU gestionar cada proceso el mismo tiempo.”
Su diseño
Para implementar la planificación RR, la cola se mantiene como una cola de procesos FIFO. El
planificador de la CPU selecciona el primer proceso de la cola, y únicamente puede salir del estado
de ejecución por tres motivos: que termine su ejecución, se proceda a la llamada a una E/S y el
proceso se quede bloqueado o que se genere una interrupción por haber superado un quantum de
ejecución del proceso.
Este simulador fue desarrollado en el lenguaje de programación JAVA. Para realizar este simulador,
primero, creamos 3 paquetes: Recursos: para las imágenes utilizadas en los botones; UI: para el
formulario a utilizar; SilumadorRoundRobin: donde se guardan las clases. En el paquete
“simuladorRoundRobin” creamos 3 clases: gráfica, procesos y simulador. Ver figura 1.
Clases:
Gráfica: esta clase se creó con el objetivo de poder dibujar la simulación del proceso en una
gráfica de barras apiladas. Para poder realizar esta gráfica utilizamos la librería JFreeChart.
Ver figura 2
Procesos: esta clase guarda el objeto proceso con los datos requeridos: PID, nombre del
proceso, tiempo de llegada, tiempo de ráfaga y prioridad. Además, se usan otras variables
para guardar el tiempo de espera, tiempo de retorno y para poder realizar el proceso.
Simulador Round Robin: aquí creamos varios métodos para agregar, eliminar procesos,
ordenar los procesos en FIFO y para realizar el proceso principal el algoritmo round robin.
Figura 1. Paquetes y clases del proyecto en JAVA Figura 2. Librería utilizada JFreeChart
Clase Procesos:
Contiene 3 constructores: el constructor normal, uno para poder graficar la simulación y otro para
realizar operaciones con los procesos. Declaramos las variables principales: PID, nombre del
proceso, tiempo de llegada y demora y prioridad. Las demás variables se utilizan para graficar.
También, se encuentran los getters y setters de cada variable.
Figura 3. Clase Procesos
Figura 4. Clase procesos
Clase simuladorRoundRobin:
Como se puede observar en la figura 5, declaramos 4 ArrayList: 3 tipo Proceso para realizar la
simulación, un auxiliar para las operaciones y uno en donde se guardan los datos para la gráfica. El
otro ArrayList es tipo String en donde se guardan los nombres de los procesos para luego colocarlo
en la gráfica.
Métodos:
eliminarProceso(): según el nombre del proceso se elimina. Para los dos for se compara si el
nombre del proceso es el mismo y se remueve de las listas. Una lista es la principal y otra
contiene el tiempo de demora.
getNombresOrdenados(): devuelve el ArrayList tipo String con los nombres de los procesos
ordenados según el tiempo de llegada
Clase gráfica:
Esta clase tiene dos variables String que son los estados: espera y ejecución. Para graficar utilizamos
la librería JFreeChart, a partir de este creamos las variables para el grafico, el axis en Y y en X.
Creamos 5 métodos, como se puede visualizar en la figura 6.
initData(): se guardan los nombres de los procesos para ser utilizados como el axis x, según
la lista brindada.
crearIntervalosGrafica(): Se establecen los colores de cada estado y los axis de la gráfica (x,
y)
Este formulario contiene 3 secciones Round robin donde se agrega la información del proceso, se
modifica, elimina y ejecuta, como se puede ver en la figura 7. En el lado detalles, se encuentra
información detallada del proceso y la gráfica del proceso, como se observa en la figura 8. Y en el
lado acerca de, se encuentra la información sobre los integrantes, ver figura 9.
Figura 7. Formulario
Figura 8. Formulario lado “detalles”.
Agregar datos e igual a cero: El primero añade los procesos de la tabla en la lista principal y
el segundo verifica que en la tabla no haya ceros en el tiempo de demora
Conclusión:
Round-Robin es uno de los algoritmos de lanificación más antiguos, sencillo y usado, en este se
considera que 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.
En este algoritmo es importante la determinación del tamaño del Quantum para la operación
efectiva de un sistema de cómputo. Ya que si:
• El Quantum 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 (FIFO).
• El quantum es muy pequeño, el gasto extra por cambio de proceso se convierte el 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 quantum 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 quantum. En resumen,
tenemos: un quantum corto disminuye el rendimiento de la CPU, mientras que un quantum 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.
El algoritmo Round-Robin puede ser aplicada también a otros problemas de planificación, como la
planificación de redes, ya que, en las redes inalámbricas, donde varios servidores comparten el
mismo canal, este algoritmo provee a cada servidor un intervalo regular de tiempo para transmitir
o recibir información mediante el canal compartido.
Referencias