Академический Документы
Профессиональный Документы
Культура Документы
Planificacin de Procesos
Introduccin
En un sistema multiprogramado, mltiples procesos son mantenidos en memoria principal. Multiprogramacin surgi con la idea de tener algn proceso ejecutndose en todo momento con la finalidad de maximizar el uso del CPU. Tiempo Compartido fue concebido con la idea de conmutar o cambiar continuamente el CPU entre procesos de forma tal que los usuarios puedan interactuar con sus programas mientras estn corriendo. Con multiprogramacin, un proceso ejecuta hasta que debe esperar por algn evento. En un sistema simple sin multiprogramacin el CPU estara ocioso. Cuando un proceso entra al sistema es colocado en una cola de trabajos. Una vez que el proceso se encuentra en memoria principal y est listo para ejecutar, este es colocado en la cola de procesos listos (ready). Cuando al proceso se le asigna el CPU, ejecuta por un tiempo y eventualmente el proceso terminar, o ser interrumpido o esperar por la ocurrencia de algn evento. Con frecuencia nos encontraremos con situaciones en las que dos o ms procesos son ejecutables desde el punto de vista lgico. En estos casos el sistema de operacin debe decidir cul de ellos debe ejecutarse primero. La parte del sistema de operacin que lleva a cabo esta decisin se llama Planificador y el algoritmo que se utiliza se conoce como Algoritmo de Planificacin.
Simulacion de procesos:
Las llegadas sern segn una distribucin exponencial, cuyo parmetro es 3. Los procesos tendrn una duracin distribuida Uniformemente entre 500 y 1000 ut 1, y se harn experimentos cada uno de los siguientes tipo : Procesos con rafaga de cpu distribuido uniformemente entre 100.0 y 150.0 ut y operaciones de Entrada/Salida constante de 1.0 ut (procesos de computo intenso). Proceso con rfaga de CPU distribuido uniformemente entre 2.0 y 10.0 ut y operaciones de Entradas/Salida de 50 ut(procesos altamente bloqueantes).
First-Come/First-Served (FCFS)
Con este esquema el proceso que requiere el cpu primero es alojado en el cpu primero. La implementacion de esta politica es facilmente gestionada con una cola FIFO.Cuando un proceso entra en la cola de listo, su PCB se vincula al final de la cola. Cuando el cpu esta libre es asignado el proceso que esta en la cabeza de la cola. El proceso actual luego es removido de la cola.
Round Robin
La planificacin por turnos o Round Robin, se basa en una estructura FIFO de forma circular, en donde se asigna a los procesos un intervalo de tiempo para la cpu, conocido como quantum. En donde se establece la regla de que un proceso no podr estar dos veces seguidas en la cpu a menos que sea el nico en el estado de listo. Este algoritmo trabaja de la siguiente manera, al ingresar el proceso a utilizar la cpu, este estar dentro del tiempo(quantum), si al terminar este tiempo el proceso no ha terminado es colocado al final y se ingresar otro proceso. Pero si el proceso pasa ha estado terminado antes de terminar su quantum, tambin ser extrado de la cpu. En cambio este algoritmo presenta complicaciones pues el tiempo de entrega de un proceso depender mucho ms del tiempo(quantum) que de la magnitud del proceso.
Promedio 67861.9 ut
Minimo
Maximo
39945.2 ut
76679.1 ut
Tiempo de uso: El siguiente grafico de barras muestra como es el tiempo de uso para cada uno de los 100 procesos usando el algoritmo First-Come/First-Served, mostrando en el eje x el id del proceso, y en el eje y el tiempo de uso del mismo. La linea horizontal verde indica cual es la media de los tiempos de uso.
Promedio
114.698 ut
Minimo
97.2033
Maximo
130.21
Promedio 48467.3 ut
Minimo 10490 ut
Maximo 76892.8 ut
Tiempo de uso: El siguiente grafico de barras muestra como es el tiempo de uso para cada uno de los 100 procesos usando el algoritmo Shortest Job First, mostrando en el eje x el id del proceso, y en el eje y el tiempo de uso del mismo. La linea horizontal verde indica cual es la media de los tiempos de uso.
Promedio
114.698 ut
Minimo
97.2033
Maximo
130.21
Algoritmo de "RoundRobin"
Tiempo de espera: El siguiente grafico de barras muestra como es el tiempo de espera para cada uno de los 100 procesos usando el algoritmo RoundRobin, mostrando en el eje x el id del proceso, y en el eje y el tiempo de espera del mismo. La linea horizontal verde indica cual es la media de los tiempos de espera.
Promedio 68369 ut
Minimo 49500 ut
Maximo 76746.7 ut
Tiempo de uso: El siguiente grafico de barras muestra como es el tiempo de uso para cada uno de los 100 procesos usando el algoritmo RoundRobin, mostrando en el eje x el id del proceso, y en el eje y el tiempo de uso del mismo. La linea horizontal verde indica cual es la media de los tiempos de uso.
Promedio
4.896 ut
Minimo
4.82259 ut
Maximo
4.9592 ut
Promedio 48276.5 ut
Minimo 10253.3 ut
Maximo 76892.8 ut
Tiempo de uso: El siguiente grafico de barras muestra como es el tiempo de uso para cada uno de los 100 procesos usando el algoritmo Preemptive Shortest Job First, mostrando en el eje x el id del proceso, y en el eje y el tiempo de uso del mismo. La linea horizontal verde indica cual es la media de los tiempos de uso.
Promedio
75.0323 ut
Minimo
41.7688 ut
Maximo
120.16 ut
Promedio 61813.8 ut
Minimo 42761.2 ut
Maximo 68516.7 ut
Tiempo de uso: El siguiente grafico de barras muestra como es el tiempo de uso para cada uno de los 100 procesos usando el algoritmo First-Come/First-Served, mostrando en el eje x el id del proceso, y en el eje y el tiempo de uso del mismo. La linea horizontal verde indica cual es la media de los tiempos de uso.
Promedio
5.98621ut
Minimo
5.53425 ut
Maximo
6.50137 ut
Promedio 46291.6 ut
Minimo 10456.8
Maximo 74306.5
Tiempo de uso: El siguiente grafico de barras muestra como es el tiempo de uso para cada uno de los 100 procesos usando el algoritmo Shortest Job First, mostrando en el eje x el id del proceso, y en el eje y el tiempo de uso del mismo. La linea horizontal verde indica cual es la media de los tiempos de uso.
Promedio
5.98621 ut
Minimo
5.53425 ut
Maximo
6.50137 ut
Algoritmo de "RoundRobin"
Tiempo de espera: El siguiente grafico de barras muestra como es el tiempo de espera para cada uno de los 100 procesos usando el algoritmo RoundRobin, mostrando en el eje x el id del proceso, y en el eje y el tiempo de espera del mismo. La linea horizontal verde indica cual es la media de los tiempos de espera.
Promedio 61877.8 ut
Minimo 44319.5 ut
Maximo 68827.3 ut
Tiempo de uso: El siguiente grafico de barras muestra como es el tiempo de uso para cada uno de los 100 procesos usando el algoritmo RoundRobin, mostrando en el eje x el id del proceso, y en el eje y el tiempo de uso del mismo. La linea horizontal verde indica cual es la media de los tiempos de uso.
Promedio
3.68701 ut
Minimo
3.51252 ut
Maximo
3.88447 ut
Promedio 46216.9 ut
Minimo 10583.8
Maximo 74237.9
Tiempo de uso: El siguiente grafico de barras muestra como es el tiempo de uso para cada uno de los 100 procesos usando el algoritmo Preemptive Shortest Job First, mostrando en el eje x el id del proceso, y en el eje y el tiempo de uso del mismo. La linea horizontal verde indica cual es la media de los tiempos de uso.
Promedio
4.67554 ut
Minimo
4.26324 ut
Maximo
5.19495 ut
Conclusion
Para los procesos con computo intenso, los resultados obtenidos nos dicen que el mejor algoritmo de planificacion es el SJF, ya que tiene un menor tiempo de espera promedio y un mayor tiempo de uso promedio de cpu, es decir que aprovecha mejor el cpu, en comparacion con los demas algoritmos.
Para los procesos altamente bloqueante, los resultados obtenidos nos dicen que el mejor algoritmo de planificacion es el SJF, ya que tiene un menor tiempo de espera promedio y un mayor tiempo de uso promedio de cpu, es decir que aprovecha mejor el cpu, en comparacion con los demas algoritmos. Es importante saber que tanto para procesos de computo intenso como para los altamente bloqueantes los algoritmos con mejor tiempo de espera son el sjf y el psjf, pero el que aprovecha mejor el uso del cpu de esos dos es el sjf. Y que para ambos tipos de procesos los algoritmos que aprovechan mejor el cpu son el FCFS y el SJF, aunque el que tiene menor tiempo de espera es el SJF. Por esto, el mejor algoritmo para los dos tipos de procesos es el SJF.
Herramientas usadas:
Los datos usados para hacer las graficas fueron obtenidos del simulador de planificacion de procesos(UTSA Process Scheduling Simulator). Los calculos de promedio, minimo y maximo se hicieron con un programa hecho en c++ que lee los datos obtenidos del simulador. Las graficas se hicieron con gnu plot. Este documento fue editado con libreOffice Writer.