2017-02-05 6 views
-2

Dans certains manuels, il existe un chapitre appelé "planification de processus". Dans un tel chapitre, il parle de la programmation CPU. Alors que dans de nombreux articles, ils utilisent la planification des threads pour faire référence à la planification CPU. Je sais que les concepts de processus et de thread sont différents. Je suis confus que ce qui fonctionne sur cpu scheduler, threads ou processus?Si la planification de CPU est basée sur des processus ou des threads dans Linux?

Répondre

0

Partiellement basé sur quantique qui est une quantité d'unité de base pour laquelle le thread va s'exécuter. Aussi je crois qu'il y a un niveau de priorité donc plusieurs threads sont en concurrence pour le temps sur le CPU. Ils attendent en ligne avec d'autres threads de même niveau de priorité et ensuite courir jusqu'à ce qu'ils soient hors de quantum. Ensuite, ils sont envoyés à l'arrière. Ce n'est pas une réponse exacte mais un résumé de haut niveau.

Aussi je suis plus familier avec Windows mais je pense qu'il est même dans les principes. Le processus n'est pas un code exécutable mais une unité de stockage. Donc, ce serait par fil. Linux que j'ai lu a un algorithme d'ordonnancement plus compliqué que Windows (plus de frais généraux peut-être comme un compromis), mais il est tout à fait possible que je spécule que les threads du même processus se disputent le temps CPU. La différence est qu'il n'y a pas de changement de contexte nécessaire car le processus de partage de thread utilise le même espace d'adresse.

Ceci expliquerait les rendements diminués en utilisant plus de threads que le nombre physique de cœurs (threads sur intel). Les threads d'un processus ont une petite chance de fonctionner en même temps. Au contraire, ils rivalisent. Donc, si vous avez 4000 threads, cela signifie que le temps d'exécution d'un seul d'entre eux est réduit de 1/4000. Cependant, si vous utilisiez les threads 4000 pour fonctionner sur un seul problème synchrone, en utilisant un stockage partagé pour charger l'état actuel, vous pourriez obtenir un gain de performance en ayant un plus grand pourcentage de temps CPU car la probabilité de l'exécution de 4000 threads est plus haute.

+0

Également les o.s. Probablement n'est pas destiné à être utilisé dans ce mannor et peut même empêcher un processus de diluer d'autres fils. Les interruptions et les threads qui terminent l'exécution appellent également l'algorithme d'ordonnancement, peut-être en deçà de la limite quantique des threads en cours. Dans quelques o.s. Il arrive à rouler sur son quantum. –