lunes, 1 de octubre de 2012

Práctica 7: Algoritmos de Planificación


Explicación detallada del modelo diseñado

Simulación del algoritmo de Planificación:

Primero en llegar, primero en ser servido (First Come, First Served - FCFS).
Primero en entrar, primero en salir (First Input, First Output - FIFO).
Servicio por orden de llegada.

En la simulación del algoritmo, aparecerán una serie de procesos hasta llegar a un número de tres. Todos los procesos creados competirán por el procesador según el algoritmo F.I.F.O.

Los Procesos, para concluir su ejecución, tendrán que consumir un número de unidades de tiempo con el que parten desde el momento en el que se crean.

Irán pasando desde una cola de procesos listos hasta la figura que representa el procesador del sistema operativo y una vez allí podrán consumir su tiempo de ejecución o bien dormirse como consecuencia de una operación de entrada/salida o un bloqueo.

Los procesos que se duermen lo harán durante cierto tiempo. Una vez que pase cierto tiempo, se despertarán y pasarán de nuevo a formar parte de la cola de procesos listos.

Los procesos irán pasando por los distintos estados de su ciclo de vida reflejando cada estado con un letrero que indicara el estado en el que se encuentran.



Simulación del algoritmo de Planificación:

Round Robin (RR).
Asignación cíclica.
Planificación en rueda.
Planificación por turno circular.
Planificación por Turno Rotatorio.

En la simulación del algoritmo, irán apareciendo una serie de procesos hasta llegar a un número de dos.
Todos los procesos creados competirán por el procesador según el algoritmo de Planificación por Turno Rotatorio.

Los Procesos, para concluir su ejecución, tendrán que consumir un número de unidades de tiempo con el que parten desde el momento en el que se crean.

Irán pasando desde la cola de procesos listos hasta la figura que representa el procesador del sistema operativo, y una vez allí podrán consumir el tiempo especificado por el parámetro Quantum o bien dormirse como consecuencia de una operación de entrada/salida o un bloqueo.

Si el proceso consume todo el Quantum de tiempo, abandonará el procesador del sistema operativo y pasará a ocupar la última posición en la cola de procesos listos.

Si el proceso no consume todo el tiempo de su Quantum, este se dormirá durante una serie de unidades de tiempo. Los procesos que se duermen se desplazan a otra zona de la pantalla específica para ellos. Una vez que pase cierto tiempo, se despertarán y pasarán de nuevo a formar parte de la cola de procesos listos.

Los procesos irán pasando por los distintos estados de su ciclo de vida reflejando cada estado con un letrero que indicara el estado en el que se encuentran.



Cuestionario

A)

¿Qué es el planificador del CPU?

Cuando mas de un proceso es ejecutable, la porción del SO que debe decidir cual de ellos debe ejecutarse en primer término es el Planificador (Scheduler o Dispatcher).

¿Cuál es su importancia en el sistema?

Es importante ya que es el encargado de escoger los procesos correctos que van a ejecutarse y además de el depende el uso eficiente de la CPU.

En el contexto de la planificación del CPU, ¿se puede considerar el término planificador y despachador como sinónimos? Justifique su respuesta.

Tal vez, porque al hablar de planificador estamos diciendo que es el encargado ver cual proceso va a ser atendido o "despachado" primero y si habláramos de despachador diríamos que es el encargado de despachar a los procesos haciendo posible que usen el CPU, o sea que el planificador y el despachador en el contexto de la planificación del CPU pudieran ser sinónimos.

B)

¿Cuál es la finalidad de ejecutar un algoritmo de planificación?

La finalidad es lograr la equidad en los procesos, eficiencia, bajo tiempo de respuesta, un rendimiento alto y minimizar el tiempo de espera.

C)

¿Cuál es la diferencia entre una planificación apropiativa y no apropiativa?

La planificación apropiativa es aquella en la cual, una vez que a un proceso le toca su turno de ejecución ya no puede ser suspendido, ya no se le puede arrebatar el procesador.

Una planificación no apropiativa es aquella en que existe un reloj que lanza interrupciones periódicas en las cuales el planificador toma el control y se decide si el mismo proceso seguirá ejecutándose o se le da su turno a otro proceso.

D)

Defina el concepto ráfaga de CPU y ráfaga de E/S.

· Ráfaga de CPU: Intervalo de tiempo consecutivo que un proceso está ejecutándose en la CPU.
· Ráfaga de E/S: Intervalo de tiempo consecutivo que un proceso está realizando una E/S.

¿Qué consideraciones se deben tomar en cuenta al momento de seleccionar un algoritmo de planificación basándose en estos dos conceptos?

Se debe tener bien claro que es lo que queremos optimizar, por ejemplo, ay algoritmos de planificación que optimizan los tiempos medios de espera asignando de forma dinámica la longitud (duración) de la ráfaga de CPU de los procesos. También ay que tener muy en claro como la ejecución de un trabajo depende las longitudes de las ráfagas de CPU y de E/S, ningún algoritmo de planificación logra cubrir al 100% los objetivos deseados de la planificación, ya que si trata de optimizar algunos objetivos necesariamente debe descuidar otros, así que para seleccionar un algoritmo de planificación es necesario conocer el tipo de proceso a realizar y los tipos de criterios de planificación que se desean optimizar.

Algoritmos de Planificación elegidos para la simulación

FCFS (first come, firstserve)

Es un algoritmo apropiativo.


Es el algoritmo de planificación más sencillo. Esto es, el primer proceso en solicitar la CPU es el primero en recibir la asignación de la misma. La implementación del FCFS se realiza fácilmente mediante una cola FIFO. Cuando un proceso entra en la cola de preparados o listos para la ejecución (readyqueue), se lo coloca al final de la cola.

Cuando la CPU queda libre, ésta se le asigna al proceso situado al principio de la cola. Entonces el proceso en ejecución se elimina de la cola. FCFS rinde mucho mejor con procesos largos que con procesos cortos. Sin embargo, las prestaciones del FCFS son, con frecuencia, bastante malas.

Presenta problemas como que el tiempo medio de espera suele ser elevado, un bajo nivel de uso de la CPU, pobre tiempo de respuesta en procesos cortos en esquemas con mucha carga, tiende a favorecer los procesos con carga de CPU respecto a los que tienen carga de E/S, así como también un uso ineficiente de los dispositivos de E/S.


Round Robin

Es un algoritmo no apropiativo.


El algoritmo de planificación round-robin fue especialmente diseñado para sistemas de tiempo compartido. Requiere que se defina una pequeña unidad de tiempo común llamada quantum de tiempo o time slice, pequeño en magnitud de milisegundos. Los procesos se encolan en una cola de procesos listos que es tratada como una cola circular. El planificador recorre la cola asignando el procesador a cada proceso durante un intervalo de tiempo de hasta un quantum.

Para implementar la planificación round robin, 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.
  • Que se proceda la llamada a una E/S y el proceso se quede bloqueado.
  • Que se genere una interrupción por haber superado un quantum de ejecución del proceso.
Si hay n procesos en la cola y el quantum de tiempo es q, entonces cada proceso obtiene 1/n del tiempo de CPU en fragmentos de al menos q unidades de tiempo cada vez. Cada proceso tiene que esperar no más de (n-1) x q unidades de tiempo hasta su quantum de tiempo siguiente.


El verdadero problema de esta implementación esta en la elección del quantum de tiempo para cada proceso. Si el quantum es muy pequeño, produce mucho overhead por la gran cantidad de cambios de contexto de ejecución que hace el sistema operativo. Si por el contrario, el quantum es muy grande produce un tiempo de reacción muy pobre porque los procesos en cola de listos esperan demasiado (si el tiempo de espera fuese infitino, este algoritmo se convertiría en un FCFS). Es decir que para que sea eficiente, la duración del contextswitch debe ser mucho menor que el quantum elegido.



Una desventaja del turno rotatorio es el tratamiento que hace si existe una mezcla de procesos limitados por CPU y procesos limitados por E/S. En este caso, sucedería lo siguiente: un proceso limitado por E/S utiliza el procesador durante un periodo corto y después se bloquea en la E/S, espera a que se complete la operación de E/S y entonces vuelve a la cola de listos. Por otro lado, un proceso limitado por procesador generalmente hace uso de un cuanto de tiempo completo cuando se ejecuta e inmediatamente retorna a la cola de listos. Así, los procesos con más carga de procesador que entrada/salida, tienden a recibir una porción desigual de tiempo de procesador, lo que origina un rendimiento pobre de los procesos con carga de E/S. Esto además, trae aparejado un mal aprovechamiento de los dispositivos de E/S y un incremento de la variabilidad del tiempo de respuesta.



Para solucionar este problema se implementa un variación del algoritmo llamada VRR (virtual round-robin). La nueva característica consiste en una cola FIFO auxiliar a la que se desplazan los procesos una vez que son liberados de la espera por E/S. Al tomar una decisión sobre el siguiente proceso a expedir, los procesos de la cola auxiliar tienen preferencia sobre los de la cola principal de listos. Cuando se expide un proceso desde la cola auxiliar, no se puede ejecutar más que un tiempo igual al cuanto básico menos el tiempo total de ejecución consumido desde que fue seleccionado por última vez en la cola de listos.



Conclusión

La planificación del procesador se refiere a la manera o técnicas que se usan para decidir cuánto tiempo de ejecución y cuando se le asignan a cada proceso del sistema.

Una buena estrategia de planificación debe buscar que los procesos obtengan sus turnos de ejecución apropiadamente, conjuntamente con un buen rendimiento y minimización de la overhead (sobrecarga) del planificador mismo. En general, se buscan cinco objetivos principales: Justicia o Imparcialidad en los procesos, Maximización de la finalización de procesos en el menor tiempo posible, Maximizar el tiempo de respuesta, Evitar la espera indefinida de tiempo para que los procesos ocupen la CPU, Evitar la inanición.

Para elegir el mejor algoritmo de planificación hay que conocer los tipos de procesos que se van a ejecutar y conocer los siguientes criterios de planificación: Utilización de CPU, Rendimiento, Tiempo de retorno o de estancia, Tiempo de espera y Tiempo de respuesta.

No hay comentarios.:

Publicar un comentario