Dans un planificateur à tour de rôle, ajouter un processus plusieurs fois à la liste des processus est un moyen peu coûteux de lui donner une priorité plus élevée.
Je me demande à quel point cette approche pourrait être pratique. Quel avantage a-t-il par rapport à d'autres techniques, comme donner au processus une tranche de temps plus longue (avantage: moins de temps de commutation) ou maintenir une liste séparée de processus hautement prioritaires. En particulier, comment le fait d'inscrire un processus plusieurs fois influence-t-il l'équité et la réactivité?
(De l'exercice 2.16 dans les systèmes d'exploitation d' Andrew Tanenbaum : conception et mise en œuvre, 1ère éd.)
operating-systems
process-scheduling
Gilles 'SO- arrête d'être méchant'
la source
la source
Réponses:
L'avantage de cette approche est que l'ordonnancement à tour de rôle est très efficace, vous n'avez donc pas besoin de compter sur un ordonnanceur plus complexe, qui volerait des cycles. L'introduction de tranches de temps plus longues pour les processus de priorité plus élevée réduirait la réactivité des autres threads et rendrait plus difficile pour le système d'exploitation d'intervenir pour traiter une interruption, etc. La gestion de listes distinctes de processus nécessiterait un planificateur beaucoup plus complexe, ce qui serait plus coûteux en termes de cycles. Cependant, je ne vois pas en quoi il y aurait un problème d'équité. Je suppose que le problème est que la granularité est assez évidente: les processus ne peuvent avoir que des multiples entiers de la tranche de temps de base.
Un point négatif est que la suppression d'un processus serait plus coûteuse, car chaque occurrence du processus devrait être supprimée de la file d'attente. Peut-être que cela peut être fait paresseusement, cependant.
la source
L'ajout de la tâche à une file d'attente de planification à tour de rôle à plusieurs reprises pose le problème de garantir que les entrées restent raisonnablement réparties. Ceci est facile à garantir si le système ne permet pas la création ou la suppression dynamique de tâches, mais ce n'est pas possible en général.
En plus du processus plus complexe de suppression des éléments de la file d'attente, le biais éventuel des entrées de processus dans la file d'attente entraînera un comportement déséquilibré qui sera plus facile à rendre équitable avec plusieurs niveaux de priorité.
la source