2010-04-08 4 views
1

J'ai la requête suivante concernant la planification des threads de processus. a) Si mon processus A a 3 threads, alors ces threads peuvent être programmés simultanément sur les différentes CPU dans SMP m/c ou ils recevront une tranche de temps sur le même CPU. B) Supposons que j'ai deux processus A avec 3 threads et Process B avec 2 threads (tous les threads sont de même priorité), puis le temps CPU affecté à chaque thread (tranche de temps) dépend du nombre de threads dans le processus ou pas? Corrigez-moi si je me trompe est-ce que le temps CPU est alloué au processus qui est ensuite partagé entre ses threads, c'est-à-dire la tranche de temps donnée au processus? Un thread est inférieur à celui des threads du processus B.ordonnancement des threads de processus

Répondre

3

Cela dépend de votre système d'exploitation et de l'implémentation du thread. Les threads POSIX définissent une interface pour définir comment les threads sont planifiés: si chaque thread est planifié de manière égale ou si chaque processus est planifié de manière égale. Tous les types de planification ne sont pas pris en charge sur toutes les plates-formes. Sous Linux, en utilisant nptl, le comportement par défaut est de planifier tous les threads de manière égale, donc un processus avec 10 threads peut obtenir 10 fois plus de temps qu'un processus avec 1 thread, si les onze threads sont liés à la CPU.