2013-02-11 2 views
0

Je voulais savoir si une copie de la fonction schedule() s'exécutait sur chaque processeur, ou si c'était juste un schedule() en cours d'exécution pour chaque processeur.Linux Scheduler sur NUMA et SMP

Si une copie de schedule() est en cours d'exécution sur chaque processeur/core, comment les processus sont-ils distribués à une file d'attente CPU/cpu particulière. Est-ce le travail de l'équilibreur de charge? Existe-t-il un seul équilibreur de charge fonctionnant pour tous les processeurs ou est-il distribué de manière distribuée à l'aide de drapeaux/méthode de communication? Ps-Je connais le fonctionnement des classes de planification, mais j'ai du mal à comprendre la répartition des processus entre les diverses files d'attente. Comment les processus sont-ils distribués à une file d'attente CPU/cpu particulière?

Répondre

0

Est-ce le travail de l'équilibreur de charge?

Oui. Dans un système multiprocesseur, l'équilibreur de charge vérifie périodiquement si les charges de l'UC sont déséquilibrées; Si c'est le cas, le processeur effectue un équilibrage des tâches entre les CPU.

Existe-t-il un seul équilibreur de charge fonctionnant pour toutes les CPU ou est-il distribué de manière distribuée en utilisant les indicateurs/la méthode de communication?

Oui. Dans la planification SMP, il n'y a qu'un seul planning() et un seul équilibrage de charge qui gère le multitâche entre plusieurs cœurs.

Référence: Inside the Linux scheduler.

Questions connexes