Planificación de la cpu.

Spread the love

 

 

Planificación de la cpu.

Para la planificación de la CPU lo importante son los procesos, no los programas. La idea básica es que un proceso se puede ver como:

Unidad de ejecución: cada proceso se ejecuta Independiente mente y tiene su propio flujo de control. Unidad de planificación.

Criterios de planificación.

Para realizar los objetivos de la planificación, un mecanismo de planificación debe considerar lo siguiente.

La limitación de un proceso a las operaciones de Entrada / Salida: cuando un proceso consigue la CPU, ¿la utiliza solo brevemente antes de generar una petición de Entrada / Salida?

La limitación de un proceso a la CPU: cuando un proceso obtiene la CPU, ¿tiende a usarla hasta que expira su tiempo?

Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben recibir inmediato servicio para garantizar buenos tiempos de respuesta.

¿Qué urgencia tiene una respuesta rápida?: por ejemplo, un proceso de tiempo real de un sistema de control que supervise una refinería de combustible requiere una respuesta rápida, más rápida que la respuesta requerida por un proceso en lotes (batch) que deberá entregarse al día siguiente.

La prioridad de un proceso: a mayor prioridad mejor tratamiento.

Frecuentemente un proceso genera fallos (carencias) de página:

Probablemente los procesos que generan pocos fallos de página hayan acumulado sus “conjuntos de trabajo” en el almacenamiento principal.

Los procesos que experimentan gran cantidad de fallos de página aún no han establecido sus conjuntos de trabajo.

Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo.

Otro criterio indica favorecer a los procesos con una tasa alta de fallos de página ya que rápidamente generarán una petición de Entrada / Salida.

Frecuentemente un proceso ha sido apropiado por otro de más alta prioridad, lo cual significa lo siguiente:

A menudo los procesos apropiados deben recibir un tratamiento menos favorable.

Cada vez que el Operativo asume la sobrecarga para hacer ejecutar este proceso, el corto tiempo de ejecución antes de la apropiación no justifica la sobrecarga de hacer ejecutar al proceso en primer lugar.

¿Cuánto tiempo de ejecución real ha recibido el proceso?: un criterio considera que debe ser favorecido un proceso que ha recibido muy poco tiempo de cpu.

¿Cuánto tiempo adicional va a necesitar el proceso para terminar?: los tiempos promedio de espera pueden reducirse priorizando los procesos que requieren de un tiempo de ejecución mínimo para su terminación, pero pocas veces es posible conocer la cantidad de tiempo adicional que cada proceso necesita para terminar.

Planificación de sistemas multiprocesador.

Los sistemas multiprocesadores son aquellos que disponen de 2 o más procesadores

Los planificadores de los sistemas operativos modernos aplican una asignación híbrida de manera que emplea asignación estática la mayor parte del tiempo. Sin embargo, si el número de procesos asociados a un procesador supera en N unidades al de otro, se procede a migrar procesos al procesador con menor número de procesos para balancear la carga de trabajo. Este es el caso del planificador del núcleo de Linux

Planificación de hebras.

El sistema operativo Linux admite varias políticas de planificación. La política de planificación de compartición de tiempo universal es SCHED_OTHER, que utilizan la mayoría de las 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 como la hebra que se va a ejecutar a continuación.