Question

Dans un ordonnanceur round-robin, l'ajout d'un processus à plusieurs reprises à la liste des processus est un moyen pas cher pour lui donner une priorité plus élevée.

Je me demande comment une approche pratique, cela pourrait être. Quel avantage-il par rapport aux autres techniques telles que donner le processus une tranche de temps plus long (avantage: moins de temps de commutation) ou le maintien d'une liste séparée des processus de haute priorité. En particulier, comment un processus n'énumérant plusieurs fois l'équité et la réactivité influence?

(De l'exercice 2,16 à Andrew Tanenbaum de Systèmes d'exploitation:. Conception et mise en œuvre 1er ed)

Était-ce utile?

La solution

L'avantage de cette approche est que la planification à la ronde est très efficace, de sorte que vous n'avez pas besoin de compter sur un planificateur plus complexe, ce qui volerait cycles. Présentation de tranches de temps plus long pour les processus de priorité plus élevée diminuerait la capacité de réaction d'autres fils et de le rendre plus difficile pour le système d'exploitation de sauter pour faire face à une interruption et ainsi de suite. Le maintien des listes séparées des processus nécessiterait un planificateur beaucoup plus complexe, ce qui serait plus coûteux en termes de cycles. Je ne vois pas comment il y aurait un problème avec équité, cependant. Je suppose que le problème est que la granularité est assez sûr: les processus ne peuvent avoir des multiples entiers de la base tranche de temps

.

Un point négatif est que la suppression d'un processus serait plus coûteux, comme chaque occurrence du procédé devrait être supprimé de la file d'attente. Peut-être que cela peut être fait paresseusement, cependant.

Autres conseils

Ajout de la tâche à une file d'attente d'ordonnancement round-robin à plusieurs reprises ouvre le problème de veiller à ce que les entrées restent raisonnablement evently distribués. Cela est facile à assurer que le système ne permet pas la création ou la suppression dynamique de tâches, mais pas possible en général.

En plus du processus plus complexe d'enlever les éléments de la file d'attente, l'inclinaison éventuelle des entrées de processus dans la file d'attente se traduira par un comportement déséquilibré qui est plus facile de faire juste avec plusieurs niveaux de priorité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top