Partager via


Ensembles de processeurs

Les ensembles d’UC fournissent des API pour déclarer l’affinité d’application de manière « réversible » compatible avec la gestion de l’alimentation du système d’exploitation. En outre, l’API fournit aux applications la possibilité de réaffinitiser tous les threads d’arrière-plan du processus à un sous-ensemble de processeurs à l’aide du mécanisme de par défaut de processus pour éviter les interférences des threads de système d’exploitation au sein du processus. Certaines versions de Windows prennent en charge les stratégies de réservation de base, dans lesquelles un sous-ensemble des ensembles de processeurs du système peut être consacré à l’utilisation exclusive d’applications et de charges de travail individuelles.

L’API CPU Set fonctionne avec les ID de jeu d’UC, qui sont associés aux affinités de processeur virtuel. Sur la plupart des systèmes, et dans la plupart des conditions, chaque ID de jeu d’UC est mappé directement à un seul processeur logique d’accueil. Un thread affiniténé avec un jeu d’UC donné s’exécute généralement sur l’un des processeurs de sa liste d’ID de jeu d’UC sélectionnés.

Les jeux d’UC réservés peuvent être déterminés en inspectant l’indicateur de alloué dans le SYSTEM_CPU_SET_INFORMATION. Le système contrôle l’accès aux jeux d’UC réservés et l’affectation peut être interrogé à l’aide de l’indicateur AllocatedToTargetProcess de la structure SYSTEM_CPU_SET_INFORMATION. Si un processus tente d’utiliser une affectation de jeu d’UC qui est allouée exclusivement à d’autres processus, sa requête est ignorée et les threads affectés aux jeux d’UC non autorisés sont planifiés ailleurs. Les jeux d’UC peuvent être attribués à deux niveaux. Les jeux d’UC par défaut de processus sont attribués à tous les threads d’un processus qui n’ont pas d’affectation au niveau sélectionné du thread. Si un thread ou un processus a un jeu de masque d’affinité restrictif, le masque d’affinité est respecté au-dessus de toute affectation de jeu d’UC en conflit. Sur les systèmes multi-groupes, les affectations d’UC sont ignorées si elles se trouvent dans des groupes qui ne correspondent pas au groupe dans le masque d’affinité du thread. Si un thread est affecté à plusieurs jeux d’UC valides, il s’exécute sur l’un des processeurs correspondants en fonction de ses priorités et des priorités des threads concurrents sur ces processeurs.

fonctions/énumérations/structures de jeu d’UC