Implementados algoritmos de programación comunes utilizados en computadoras personales, servidores y otros tipos de sistemas interactivos
A cada proceso se le asigna un intervalo de tiempo, llamado "cuántico", durante el cual se le permite funcionar. Después de terminar su proceso cuántico bloqueado y puesto al final de la cola. El planificador supone que todo el proceso es igualmente importante. El problema interesante con Round Robin es la longitud del cuántico. Establecer el cuántico demasiado corto causa demasiados interruptores de proceso y reduce la eficencia de la CPU. Pero establecerlo demasiado tiempo puede causar una mala respuesta a solicitudes interactivas cortas.
A cada proceso se le asigna una prioridad, y se permite que se ejecute el RPOCESS Runnable con la más alta prioridad. Para evitar que los procesos de alta prioridad se funcionen infinitamente, el programador puede disminuir la prioridad del proceso de ejecución actualmente en cada tigas de reloj, o algún otro intervalo de tiempo. Si esta acción hace que su prioridad caiga por debajo del siguiente proceso más alto, se produce un interruptor de proceso. Las prioridades se pueden asignar para procesar de forma estadí o dinámica. A menudo es conveniente agrupar los procesos en CalsSes prioritarios y utilizar la programación de prioridades entre las clases, pero la programación de redondeo en las clases, la programación de prioridades tiene un problema de bloqueo o inanición indefinido, en el que la tarea de baja prioridad puede esperar para siempre. Una solución común a este problema es el envejecimiento, en el que las prioridades de los trabajos aumentan cuanto más esperan. Bajo este esquema, un trabajo de baja prioridad eventualmente obtendrá su prioridad lo suficientemente alta por el tiempo.
Cuando se pueden clasificar los procesos, se pueden establecer múltiples colas separadas, cada una implementando cualquier algoritmo de programación es más apropiado para ese tipo de trabajo. La programación también debe hacerse entre las colas, lo que está programando una cola para obtener tiempo en relación con otras colas. Las opciones comunes son la prioridad y la redonda. Los procesos no pueden cambiar las colas, salir de la cola o ingresar a la cola.
Esta programación es similar a la programación de la cola multinivel, excepto que los trabajos se pueden mover de una cola a otra por estas razones: - Si las características del proceso se cambian entre CPU -intesiva a E/S intensiva. - Si envejece el proceso, por lo que ese proceso ha esperado mucho tiempo
Esta programación ejecuta procesos más cortos y calcula qué proceso es más corto según el comportamiento pasado. El cálculo es simple, agregando el nuevo valor a la estimación actual y divide la suma en 2. La técnica de estimar el siguiente valor en una serie tomando el promedio ponderado del valor medido actual y la estimación anterior a veces se llama envejecimiento
Con los procesos N en funcionamiento, en igualdad de condiciones, cada una debería obtener 1/n de los ciclos de la CPU. El sistema debe realizar un seguimiento de la cantidad de CPU que ha tenido cada proceso desde su creación, luego calcula la cantidad de CPU que cada proceso tiene derecho a la relación del tiempo real de la CPU. El algoritmo se ejecuta el proceso con la ración más baja hasta que su relación se haya movido por encima de la de su competidor más cercano
La idea es dar procesos de tickets de lotería para los recursos del sistema, como el tiempo de la CPU. Cuando se debe tomar una decisión de programación, se elige un boleto de lotería al azar, y el proceso que contiene ese boleto obtiene el recurso. Se pueden dar procesos más importantes para aumentar sus IDD de ganar. Un proceso que contiene una fracción F de los boletos obtendrá aproximadamente una fracción F del recurso en cuestión. Los procesos de coorporación pueden intercambiar boletos si lo desean