En algunas aplicaciones, es posible emplear un
lenguaje y unas herramientas del sistema que permitan cambiar dinámicamente el
numero de hilos de un proceso. Esto permite al sistema operativo ajustar la
carga y mejorar así la utilización.
Un enfoque en el que tanto el sistema operativo
como la aplicación están involucrados en la toma de decisiones de planificación.
El sistema operativo es responsable de repartir los procesadores entre los
trabajos. Cada trabajo emplea los procesadores de su partición para procesar un
subconjunto de tareas ejecutables, organizando estas tareas en hilos. A las
aplicaciones individuales se les deja (quizá mediante una biblioteca de rutinas
de tiempo de ejecución) la decisión sobre el subconjunto a ejecutar, además
de a que hilo suspender cuando se expulsa un proceso. Este método puede no
resultar conveniente para todas las aplicaciones. Sin embargo algunas
aplicaciones podrían limitarse a un único hilo, mientras que otras podrían
ser programadas para sacar partido de esta característica del sistema
operativo.
Con este método la responsabilidad de la
planificación del sistema operativo se limita fundamentalmente a la asignación
del proceso y actúa según la siguiente política: cuando un trabajo solicita
uno o mas procesadores:
Al
liberar uno o mas procesadores (incluyendo la salida del trabajo):
4. explorar la cola de peticiones de procesador no satisfechas. Asignar un solo procesador a cada trabajo de la lista que no tiene aún un procesador. Después, recorrer la lista de nuevo, asignando el resto de procesadores según FCFS.
Algunos análisis expuesto proponen que para las
aplicaciones que pueden sacar partido de planificación dinámica, este método
es superior a la planificación por grupos o la asignación dedicada de
procesos. Sin embargo, la sobrecarga de este método puede anular la aparente
mejoría del rendimiento. Para probar la validez de la planificación dinámica
hace falta más experiencia con los sistemas reales.