Вы находитесь на странице: 1из 25

Universidad de Los Andes Facultad de Ingeniera Escuela de Ingeniera de Sistemas Departamento de Computacin

Planificacin de Procesos

Sistemas Operativos Br. Ronald A. Sulbaran S. C.I. 20.135.425 abril 2013

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

Los algoritmos de planificacin a usar son :


No expropiables First-Come/First-Served (FCFS) y Shortest Job First (SJF) . Expropiables Round Robin con rodaja de tiempo igual a 5 y Preemptive Shortest Job First (PSJF) Se crearan 100 procesos de cada tipo para cada uno de los 4 algoritmos de planificacin de corto plazo.

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.

Shortest Job First (SJF)


El algoritmo primero el trabajo ms corto (shortest job first). Establece para la planificacin una relacin entre proceso y rfaga de la CPU. Es decir, al liberarse la cpu ingresar el proceso con la menor rfaga de tiempo, el ms pequeo primero, y si existiera ms de un proceso con igual valor, pues se aplicara dentro de este el algoritmo anterior(FCFS) Este algoritmo presenta una gran ventaja, pues el tiempo de espera ser mucho menor, pues mientras los procesos de tiempo inferior terminan y ocupan tiempo en operaciones de E/S, el cpu se ocupa de resolver el proceso con mayor tiempo, un algoritmo muy ptimo. Pero, el mayor problema radica en como saber el tiempo de rfaga para cada proceso???? Pues no existe manera de saber cual ser la siguiente. Pero podemos aproximarnos, diciendo que ser similar a las anteriores, que mediante una frmula matemtica podramos decir que: Tn +1 = a Tn + (1 a)Tn De donde Tn es la rfaga anterior y a es el peso relativo de la historia reciente. Lo que garantiza una aproximacin mas considerable.

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.

Preemptive Shortest Job First (PSJF)


En este algoritmo de planificacin, el proceso con la menor cantidad de tiempo restante hasta la terminacin se selecciona para ejecutarse. Dado que el proceso se est ejecutando actualmente es el que tiene la menor cantidad de tiempo que queda por definicin, y dado que el tiempo deberia reducirse segun la ejecucion progresa,los procesos siempre se ejecutarn hasta que se complete o un nuevo proceso se aada que requiera una menor cantidad de tiempo.

Corridas con el proceso de computo intenso:


Algoritmo "No expropiable, First-Come/First-Served"
Tiempos de espera: El siguiente grafico de barras muestra como es el tiempo de espera 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 espera del mismo. La linea horizontal verde indica cual es la media de los tiempos de espera.

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

Algortimo SJF key "Shortest Job First"


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 Shortest Job First, 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 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

Algoritmo de PSJF "Preemptive Shortest Job First"


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 Preemptive Shortest Job First, 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 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

Corridas con el proceso altamente bloqueante:


Algoritmo "No expropiable, First-Come/First-Served"
Tiempos de espera: El siguiente grafico de barras muestra como es el tiempo de espera 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 espera del mismo. La linea horizontal verde indica cual es la media de los tiempos de espera.

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

Algortimo SJF key "Shortest Job First"


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 Shortest Job First, 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 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

Algoritmo de PSJF "Preemptive Shortest Job First"


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 Preemptive Shortest Job First, 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 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

Tablas con los resultados obtenidos:


Para los procesos de computo intenso: Tiempos de espera:
Algoritmo FCFS SJF RR PSJF Promedio 67861.9 ut 48467.3 ut 68369 ut 48276.5 ut Minimo 39945.2 ut 10490 ut 49500 ut 10253.3 ut Maximo 76679.1 ut 76892.8 ut 76746.7 ut 76892.8 ut

Uso del cpu.


Algoritmo FCFS SJF RR PSJF Promedio 114.698 ut 114.698 ut 4.896 ut 75.0323 ut Minimo 97.2033 ut 97.2033 ut 4.82259 ut 41.7688 ut Maximo 130.21 ut 130.21 ut 4.9592 ut 120.16 ut

Para los procesos altamente bloqueantes: Tiempos de espera:


Algoritmo FCFS SJF RR PSJF Promedio 61813.8 ut 46291.6 ut 61877.8 ut 46216.9 ut Minimo 42761.2 ut 10456.8 ut 44319.5 ut 10583.8 ut Maximo 68516.7 ut 74306.5 ut 68827.3 ut 74237.9 ut

Uso del cpu.


Algoritmo FCFS SJF RR PSJF Promedio 5.98621ut 5.98621 ut 3.68701 ut 4.67554 ut Minimo 5.53425 ut 5.53425 ut 3.51252 ut 4.26324 ut Maximo 6.50137 ut 6.50137 ut 3.88447 ut 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.

Вам также может понравиться