Introducción de Iteración de CPU

De Departamento de Informatica
Saltar a: navegación, buscar

El objetivo de realizar itineraciones de CPU (CPU Scheduling) es el de aprovechar al máximo la CPU. La tarea del itinerador o planificador es el de asignar procesos en la cola ready a la CPU de manera tal que la CPU esté funcionando la mayor parte del tiempo, dicho de otra manera, la tarea del itinerador es la de reducir al mínimo el tiempo de ocio de la CPU. Ya que durante su ejecución, los procesos, no ocupan siempre la CPU si no que tienen periodos en que están esperando que algún evento ocurra para poder seguir usando la CPU, la CPU mientras corre un proceso completo tiene mucho tiempo ociosa. La tarea de los algoritmos de itineración es la de aprovechar este tiempo de ocio para ejecutar otro proceso que necesite la CPU.

Las itineraciones de CPU ocurren entre intervalos de tiempo muy reducidos, del orden de los microsegundos. Además, la itineración implica un coste de tiempo en el que la CPU no está siendo aprovechada. Por esto, tienen que ser procesos rápidos, ya que su desempeño influye directamente con el desempeño del SO y en el tiempo en el que la CPU está ociosa.

Hay dos tipos de planificadores, no expropiativos o cooperativos (nonpreemptive o cooperative) y los apropiativos o expropiativos (pre-emptive). El momento en el que se tome la desición de iteración, es decir, dependiendo del momento en el que se haga un cambio de contexto dependerá del tipo de planificador.

  • No expropiativo: El proceso tiene el control de la CPU y el control no es cedido hasta que el proceso termina o pasa de estado running a waiting. Cuando el control es cedido por el proceso, el planificador realiza el cambio de contexto.
  • Expropiativo: El planificador tiene mecanismos para quitar a un proceso el control de la CPU y realizar un cambio de contexto, aunque el proceso en ejecución no haya terminado. El mecanismo de interrupción generalmente incluye una interrupción generada por hardware. Las decisiones pueden ocurrir cuando un proceso cambia de estado running a ready o de estado waiting a ready.

Dispatcher

Módulo que se encarga de asignarle CPU al proceso seleccionado por el itinerador. Provee el mecanismo necesario para cambiar el proceso que usará la CPU.

Esto implica

  • Cambiar contexto (Valores de registro)
  • Cambiar a modo usuario
  • Saltar a la dirección correspondiente en el proceso usuario para recomenzar el programa


Todo este trabajo tiene, naturalmente, un coste en tiempo. Ya que el dispatcher o despachador es usado para cada cambio de contexto, este coste en tiempo, asociado al cambio de un proceso por otro, tiene que ser mínimo. Por lo que el dispatcher debe estar lo más optimizado posible.

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas