CPU-Sätze
CPU-Sätze stellen APIs zum Deklarieren der Anwendungsaffinität auf "weiche" Weise bereit, die mit der Energieverwaltung des Betriebssystems kompatibel ist. Darüber hinaus bietet die API Anwendungen die Möglichkeit, alle Hintergrundthreads im Prozess mithilfe des Prozessstandardmechanismus einer Teilmenge von Prozessoren neu zu affinisieren, um Störungen durch Betriebssystemthreads innerhalb des Prozesses zu vermeiden. Einige Versionen von Windows unterstützen Kernreservierungsrichtlinien, in denen eine Teilmenge der CPU-Sätze des Systems der exklusiven Verwendung einzelner Anwendungen und Workloads zur Verfügung stehen kann.
Die CPU-Set-API funktioniert mit CPU-Satz-IDs, die virtuellen Prozessoraffinitäten zugeordnet sind. Auf den meisten Systemen und unter den meisten Bedingungen wird jede CPU-Satz-ID direkt einem einzelnen logischen Basisprozessor zugeordnet. Ein Thread, der einer bestimmten CPU-Gruppe affin ist, wird in der Regel auf einem der Prozessoren in der Liste der ausgewählten CPU-Satz-IDs ausgeführt.
Reservierte CPU-Sätze können durch Überprüfen des Flags Zugeordnet in den SYSTEM CPU SET INFORMATION ermittelt _ _ _ werden. Das System steuert den Zugriff auf reservierte CPU-Sätze, und die Zuweisung kann mithilfe des AllocatedToTargetProcess-Flags der SYSTEM _ CPU SET _ _ INFORMATION-Struktur abgefragt werden. Wenn ein Prozess versucht, eine CPU-Mengenzuweisung zu verwenden, die ausschließlich anderen Prozessen zugeordnet ist, wird seine Anforderung ignoriert, und Threads, die unzulässigen CPU-Sätzen zugewiesen sind, werden an anderer Stelle geplant. CPU-Sätze können auf zwei Ebenen zugewiesen werden. Die CPU-Standardsätze des Prozesses werden allen Threads in einem Prozess zugewiesen, die auf der Ebene Threadauswahl keine Zuweisung aufweisen. Wenn für einen Thread oder Prozess eine restriktive Affinitätsmaske festgelegt ist, wird die Affinitätsmaske über jeder in Konflikt liegenden CPU-Satzzuweisung berücksichtigt. In Systemen mit mehreren Gruppen werden CPU-Zuweisungen ignoriert, wenn sie sich in Gruppen befinden, die nicht mit der Gruppe in der Affinitätsmaske des Threads übereinstimmen. Wenn ein Thread mehreren gültigen CPU-Sätzen zugewiesen ist, wird er auf einem der entsprechenden Prozessoren gemäß seinen Prioritäten und den Prioritäten konkurrierender Threads auf diesen Prozessoren ausgeführt.
CPU Set Functions/Enumerations/Structures
- GetProcessDefaultCpuSets-Funktion
- GetProcessDefaultCpuSetMasks-Funktion
- GetSystemCpuSetInformation-Funktion
- GetThreadSelectedCpuSets-Funktion
- GetThreadSelectedCpuSetMasks-Funktion
- SetProcessDefaultCpuSets-Funktion
- SetProcessDefaultCpuSetMasks-Funktion
- SetThreadSelectedCpuSets-Funktion
- SetThreadSelectedCpuSetMasks-Funktion
- CPU _ SET _ INFORMATION _ TYPE-Enumeration
- SYSTEM _ CPU _ SET _ INFORMATION-Struktur