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