Planificación de la CPU, Algoritmos de planificación, Planificación de sistemas multiprocesador

Asignatura:

Sistema operativo

Planificación de la CPU

La planificación es el conjunto de políticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse.

Es un proceso gradual, por el que se establece el esfuerzo necesario para cumplir con los objetivos de un proyecto en un tiempo u horario que se debe cumplir para que la planificación sea exitosa. En este proceso permite además, refinar los objetivos que dieron origen al proyecto.



Criterios de Planificación

Los algoritmos de planificación tendrán distintas propiedades y favorecerán cierta clase de procesos.

Es necesario definir criterios para poder evaluar los algoritmos de planificación:

Utilización de CPU (CPU utilization): Es el porcentaje de uso (en cuanto a ejecución de tareas de usuario o del sistema que son consideradas útiles) que tiene un procesador.

– Rendimiento (Throughput): Es el número de procesos que ejecutaron completamente por unidad de tiempo (una hora p.ej.).

Tiempo de retorno (Turnaround time): Es el intervalo de tiempo desde que un proceso es cargado hasta que este finaliza su ejecución.

– Tiempo de espera (Waiting time): Es la suma de los intervalos de tiempo que un proceso estuvo en la cola de procesos listos (ready queue).

– Tiempo de respuesta (Response time): Es el intervalo de tiempo desde que un proceso es cargado hasta que brinda su primera respuesta.


Algoritmos de planificación.

La planificación hace referencia a un conjunto de políticas y mecanismos incorporados al SO que gobiernan el orden en que se ejecutan los trabajos que deben ser completados por el sistema informático

Planificación de sistemas multiprocesador.

En un sistema simétrico, cualquier procesador podrá ejecutar procesos de usuario.

Una posibilidad es asignar una cola de procesos listos para cada procesador y de esa forma mantenerlos procesos asignados a un procesador (afinidad de procesador).

Esto es conveniente para aprovechar los datos que están frescos en la memoria cache del procesador, ya que al ejecutar un procesador se nutre su cache con datos del proceso.



De esta forma, se logra mantener un mayor índice de cachehity, por lo tanto, un mayor rendimiento en el sistema.

Un problema que puede surgir es un desbalance en la cantidad de trabajo por procesador. En estos casos se migrarán procesos de cola para lograr balancear nuevamente la carga.

Planificación de hebras.

Las hebras pueden utilizar SCHED_RR y SCHED_FIFO en aplicaciones en tiempo real. .

El kernel decide cuál es la siguiente hebra ejecutable que puede ejecutar el procesador. El kernel mantiene una lista de hebras ejecutables. Busca la hebra con la prioridad más alta y selecciona dicha hebra