Pianificazione round robin: consentire di elencare un processo più volte?


9

In uno scheduler round robin, aggiungere un processo più volte all'elenco dei processi è un modo economico per dargli una priorità più alta.

Mi chiedo quanto possa essere pratico questo approccio. Quali vantaggi ha rispetto ad altre tecniche come dare al processo un intervallo di tempo più lungo (vantaggio: meno tempo di commutazione) o mantenere un elenco separato di processi ad alta priorità. In particolare, in che modo elencare un processo più volte influenza l'equità e la reattività?

(Dall'esercizio 2.16 nei sistemi operativi di Andrew Tanenbaum : progettazione e implementazione 1a ed.)


Tannenbaum ha scritto molti libri. Presumibilmente si intende sistemi operativi .
Dave Clarke,

@DaveClarke Sì, grazie per averlo segnalato. (E in realtà, tutto ciò che ho qui è una traduzione, ma non credo che manchi alcuna parte del testo.)
Gilles "SO - smetti di essere malvagio"

Risposte:


4

Il vantaggio di questo approccio è che la pianificazione round robin è molto efficiente, quindi non è necessario fare affidamento su uno scheduler più complesso, che ruberebbe i cicli. L'introduzione di intervalli di tempo più lunghi per processi con priorità più elevata ridurrebbe la reattività di altri thread e renderebbe più difficile il salto del sistema operativo per gestire un interrupt e così via. Il mantenimento di elenchi separati di processi richiederebbe uno scheduler molto più complesso, che sarebbe più costoso in termini di cicli. Tuttavia, non vedo come ci sarebbe un problema con l'equità. Immagino che il problema sia che la granularità è abbastanza ovvia: i processi possono avere solo numeri interi della fascia oraria di base.

Un punto negativo è che la rimozione di un processo sarebbe più costosa, poiché ogni occorrenza del processo dovrebbe essere rimossa dalla coda. Forse questo può essere fatto pigramente, però.


2

L'aggiunta dell'attività a una coda di pianificazione round robin più volte apre il problema di garantire che le voci rimangano ragionevolmente distribuite. Questo è facile da assicurare se il sistema non consente la creazione o la cancellazione dinamica di attività, ma non è possibile in generale.

Oltre al processo più complesso di rimozione degli elementi dalla coda, l'eventuale inclinazione delle voci del processo nella coda comporterà un comportamento sbilanciato che è più facile rendere equo con più livelli di priorità.


Il desiderio di avere priorità non controindica l'equità?
Raffaello
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.