sábado, 30 de junio de 2012

PLANIFICACIÓN DE PROCESOS


Cuando más de un proceso es ejecutable desde el punto de vista lógico, el Sistema Operativo debe decidir cuál de ellos debe ejecutarse en primer término.

El Planificador es la porción del Sistema Operativo que decide y el Algoritmo de Planificación es el utilizado.

Las decisiones de planificación de CPU se toman según  las cuatro situaciones siguientes:

1. Cuando un proceso pasa del estado en ejecución a en espera.
2. Cuando un proceso pasa del estado en ejecución a listo.
3. Cuando un proceso pasa del estado en espera al estado listo.
4. Cuando un proceso termina.

Los principales conceptos relacionados con Planificación del Procesador son los siguientes:



ñ Planificación apropiativa: es la estrategia de permitir que procesos ejecutables (desde el punto de vista lógico) sean suspendidos temporalmente.
ñ Planificación no apropiativa: es la estrategia de permitir la ejecución de un proceso hasta terminar. 




Principales algoritmos de planificación:

FIFO (First in, First ouput - primero en entrar, primero en salir): es un algoritmo no apropiativo ya que no libera el CPU hasta la ejecución del proceso.

Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que lleva más tiempo listo. Cuando el CPU está libre, éste es asignado al proceso que está en la cabeza de la cola. El proceso en ejecución se mantiene en la CPU hasta que espontáneamente lo suelta ya sea porque el proceso finalizó o por algún requerimiento de E/S.

Este algoritmo puede presentar un inconveniente ya que si el proceso que está adelante es demasiado largo, el resto sin importar su tiempo de duración, debe esperar hasta que termine completamente.

SJF (Short job first – Primero el trabajo más corto): puede ser apropiativo o no apropiativo.

Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento por lotes en los cuales se puede saber cual es el tiempo de duración de la ejecución de cada proceso y entonces se puede seleccionar primero el trabajo más corto. El problema que se presenta con éste algoritmo es que los grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño se "cuela" sobre uno de mayor tamaño y como resultado final se podría dar el caso que el proceso grande nunca obtenga procesamiento.





SRTF (Short Remaining time first – Tiempo restante de ejecución menor): es la parte apropiativa de SJF.

En este caso si un nuevo proceso pasa a listo y es más corto que lo que queda por ejecutar del proceso en ejecución, el proceso en ejecución pasa a listo y el nuevo a ejecución, es decir el proceso en CPU es desalojado si llega a la cola un proceso con duración más corta.

Round Robin: En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse, en este caso al finalizar el quantum. El quantum de un proceso equivale a un número fijo de pulsos o ciclos de reloj. Si ese quantum no es suficiente para acabar, el reloj del sistema genera una interrupción y el proceso pasa de nuevo a la cola para ser atendido nuevamente cuando todos los demás procesos hayan recibido su quantum. 

La determinación del tamaño del cuanto es vital para la operación efectiva de un sistema de cómputo.


Si el cuanto de tiempo es muy grande, cada proceso tendrá el tiempo necesario para terminar, de manera que el esquema de planificación por turno rotatorio degenera en uno de primero-en-entrar-primero-en-salir. Si el cuanto es muy pequeño, el gasto extra por cambio de proceso se convierte en el factor dominante y el rendimiento del sistema se degradará.


Prioridad: A cada proceso se le asocia una prioridad y la CPU es asignada al proceso de mayor prioridad, el criterio principal es hacer que los procesos ‘en espera’ sean los primeros en ejecutarse es por esa que los procesos de prioridad más baja tienen riesgo de inanición, para evitar esto es recomendable ir aumentando de forma progresiva la prioridad de los procesos en espera.


Las prioridades pueden ser definidas externa o internamente. De forma interna, la define el SO. De forma externa, la definen los usuarios. El algoritmo SJF es un caso de planificación por prioridad.



 


Para conocer los tiempos de espera (tiempo que un proceso permanece en la cola de preparados) y de retorno (tiempo transcurrido entre la llegada de un proceso y su finalización), se utilizan las siguientes fórmulas:





Además se construye un diagrama de Gantt para colocar los procesos, todo esto se realiza según el criterio de cada algoritmo. Por ejemplo:


Se tiene una tabla con los siguientes valores y se desea aplicar el algoritmo FIFO:




No hay comentarios:

Publicar un comentario