Freigeben über


CPU-Sätze

CPU-Sets stellen APIs bereit, um die Anwendungsaffinität auf eine "weiche" Weise zu deklarieren, die mit der Betriebssystem-Energieverwaltung kompatibel ist. Darüber hinaus bietet die API Anwendungen die Möglichkeit, alle Hintergrundthreads im Prozess mithilfe des Process Default Mechanismus zu reaffinitieren, um Störungen von Betriebssystemthreads innerhalb des Prozesses zu vermeiden. Einige Versionen von Windows unterstützen Core-Reservierungsrichtlinien, in denen eine Teilmenge der CPU-Sätze des Systems der exklusiven Verwendung einzelner Anwendungen und Workloads gewidmet werden kann.

Die CPU Set-API funktioniert mit CPU Set-IDs, die virtuellen Prozessoraffinitäten zugeordnet sind. Auf den meisten Systemen und unter den meisten Bedingungen wird jede CPU-Set-ID direkt einem einzelnen Heim- logischen Prozessor zugeordnet. Ein Thread, der zu einem bestimmten CPU-Satz affinitiert ist, wird in der Regel auf einem der Prozessoren in der Liste der ausgewählten CPU-Set-IDs ausgeführt.

Cpu-Sätze, die reserviert sind, können bestimmt werden, indem das attribut "Zugewiesen" im SYSTEM_CPU_SET_INFORMATION überprüft wird. Das System steuert den Zugriff auf reservierte CPU-Sätze, und die Zuordnung kann mithilfe der AllocatedToTargetProcess Flag der SYSTEM_CPU_SET_INFORMATION-Struktur abgefragt werden. Wenn ein Prozess versucht, eine CPU Set-Zuordnung zu verwenden, die ausschließlich anderen Prozessen zugeordnet ist, wird seine Anforderung ignoriert, und Threads, die nicht zulässigen CPU-Sätzen zugewiesen sind, werden an anderer Stelle geplant. CPU-Sätze können auf zwei Ebenen zugewiesen werden. Die Prozessstandard-CPU-Sätze werden allen Threads in einem Prozess zugewiesen, die keine Zuordnung auf thread ausgewählter Ebene aufweisen. Wenn ein Thread oder Prozess einen restriktiven Affinitätsformatsatz aufweist, wird die Affinitätsmaske oberhalb einer konfliktierenden CPU Set-Zuweisung berücksichtigt. Bei Mehreren Gruppensystemen werden CPU-Zuordnungen ignoriert, wenn sie sich in Gruppen befinden, die nicht mit der Gruppe im Affinitätsformat des Threads übereinstimmen. Wenn ein Thread mehreren gültigen CPU-Sätzen zugewiesen ist, wird er entsprechend seinen Prioritäten und den Prioritäten konkurrierender Threads auf diesen Prozessoren auf einem der entsprechenden Prozessoren ausgeführt.

CPU Set Functions/Enumerations/Structures