Les planificateurs à deux niveaux ne sont-ils utiles que pour gérer l'échange?

10

La planification à deux niveaux est utile lorsqu'un système exécute plus de processus que la mémoire RAM ne le permet: un planificateur de niveau inférieur bascule entre les processus résidents et un planificateur de niveau supérieur échange et désactive des groupes de processus.

Je ne trouve aucune autre mention de la planification à deux niveaux dans les systèmes d'exploitation d' Andrew Tanenbaum : conception et mise en œuvre , 1re éd. L'exercice 2.22 demande pourquoi une planification à deux niveaux pourrait être utilisée; Je ne sais pas si c'est là comme un test de compréhension de la lecture ou s'il y a d'autres raisons qui ne sont pas clairement mentionnées dans le texte.

La planification à deux niveaux est-elle utile pour gérer d'autres conflits de ressources, outre la mémoire?

Gilles 'SO- arrête d'être méchant'
la source
1
Cela peut être bon pour les caches et les disques IO, mais ce n'est pas "en dehors de la mémoire".
Raphael
Comme le dit @Raphael, mais en d'autres termes, cela évite / réduit le thrashing.
Dave Clarke

Réponses:

8

Il existe d'autres formes de planification à deux niveaux que le type que vous décrivez. Par exemple, un niveau de planification pourrait être par utilisateur et l'autre par processus, visant à donner à un utilisateur avec 20 processus la même quantité de temps CPU qu'un utilisateur avec 1 processus. Avec un planificateur à un seul niveau, chaque processus peut obtenir 1/21 du temps CPU.

Une autre forme de planification à deux niveaux pourrait être par processus et par thread, visant à donner à un processus avec 20 threads la même quantité de temps CPU qu'un processus avec 1 thread.

Ellen Spertus
la source