Programación round-robin: ¿permite enumerar un proceso varias veces?

9

En un planificador round-robin, agregar un proceso varias veces a la lista de procesos es una forma económica de darle mayor prioridad.

Me pregunto qué tan práctico podría ser este enfoque. ¿Qué beneficio tiene sobre otras técnicas, como dar al proceso un intervalo de tiempo más largo (beneficio: menos tiempo de cambio) o mantener una lista separada de procesos de alta prioridad. En particular, ¿cómo la inclusión de un proceso varias veces influye en la equidad y la reactividad?

(Del ejercicio 2.16 en los sistemas operativos de Andrew Tanenbaum : diseño e implementación, 1ª ed.)

Gilles 'SO- deja de ser malvado'
fuente
Tannenbaum escribió muchos libros. Presumiblemente te refieres a los sistemas operativos .
Dave Clarke
@DaveClarke Sí, gracias por señalar esto. (Y, de hecho, todo lo que tenemos aquí es una traducción, pero no creo que le falta ninguna parte del texto.)
Gilles parada SO ser maligno '

Respuestas:

4

La ventaja de este enfoque es que la programación de round robin es muy eficiente, por lo que no necesita confiar en un programador más complejo, que robaría ciclos. La introducción de segmentos de tiempo más largos para procesos de mayor prioridad disminuiría la capacidad de respuesta de otros subprocesos y dificultaría que el sistema operativo intervenga para lidiar con una interrupción, etc. Mantener listas separadas de procesos requeriría un programador mucho más complejo, lo que sería más costoso en términos de ciclos. Sin embargo, no veo cómo habría algún problema con la equidad. Supongo que el problema es que la granularidad es bastante clara: los procesos solo pueden tener múltiplos enteros del segmento de tiempo básico.

Un punto negativo es que eliminar un proceso sería más costoso, ya que cada aparición del proceso tendría que eliminarse de la cola. Sin embargo, quizás esto se pueda hacer perezosamente.

Dave Clarke
fuente
2

Agregar la tarea a una cola de programación de turnos múltiples varias veces abre el problema de garantizar que las entradas permanezcan razonablemente distribuidas eventualmente. Esto es fácil de asegurar si el sistema no permite la creación o eliminación dinámica de tareas, pero no es posible en general.

Además del proceso más complejo de eliminar los elementos de la cola, el sesgo eventual de las entradas del proceso en la cola dará como resultado un comportamiento desequilibrado que es más fácil de hacer justo con múltiples niveles de prioridad.

Pekka
fuente
¿El deseo de tener prioridades no contraindica la equidad?
Raphael