2010-12-03 7 views

Répondre

0

Une réponse générale n'existe pas car elle dépend de la stratégie adoptée par un système d'exploitation spécifique.

Trois choix communs sont:

  • 1 à 1, chaque thread a sa propre entité planifiable
  • N à 1, tous les fils du même processus ne sont pas vus par le noyau du système d'exploitation, si juste l'ensemble du processus est planifié (mauvais pour le multi-threading mais bon pour l'héritage, ils sont quelque peu similaires aux threads verts)
  • N à M, N threads sont mappés à M entités schedulable (c'est une approche hybride qui essaie d'être un compromis mais cela augmente la complexité de l'ordonnancement)

Explication plus détaillée here.

+0

mais comment le temps imparti n'est pas clair ... – Mishthi

+0

COMMENT le temps alloué ne dépend pas de la façon dont les threads sont gérés par rapport aux processus mais par la politique de planification adoptée par le système d'exploitation. Par exemple: si c'est round-robin et 1 à 1 alors chaque thread reçoit le même quantum de temps, si à la place c'est N à 1, alors tous les threads du même processus ne reçoivent qu'un seul quantum et ainsi de suite. – Jack

0

Pour Windows, il existe une bonne documentation sur la façon dont les threads sont sélectionnés pour s'exécuter here. La priorité de thread est une combinaison d'informations par processus et par thread.

Questions connexes