Set di CPU

I set di CPU forniscono API per dichiarare l'affinità dell'applicazione in modo "soft" compatibile con la gestione energia del sistema operativo. Inoltre, l'API fornisce alle applicazioni la possibilità di riaffinare tutti i thread in background nel processo in un subset di processori usando il meccanismo Process Default per evitare l'interferenza dai thread del sistema operativo all'interno del processo. Alcune versioni di Windows supportano i criteri di prenotazione core, in cui un subset dei set di CPU del sistema può essere dedicato all'uso esclusivo di singole applicazioni e carichi di lavoro.

L'API Set di CPU funziona con ID set di CPU, associati alle affinità del processore virtuale. Nella maggior parte dei sistemi e nella maggior parte delle condizioni, ogni ID set di CPU verrà mappato direttamente a un singolo processore logico home . Un thread affinizzato a un determinato set di CPU verrà in genere eseguito in uno dei processori nel relativo elenco di ID set di CPU selezionati.

I set di CPU riservati possono essere determinati controllando il flag Allocato nella SYSTEM_CPU_SET_INFORMATION. Il sistema controlla l'accesso a set di CPU riservati e l'assegnazione può essere eseguita una query usando il flag AllocateToTargetProcess della struttura SYSTEM_CPU_SET_INFORMATION. Se un processo tenta di usare un'assegnazione set di CPU allocata esclusivamente ad altri processi, la richiesta viene ignorata e i thread assegnati ai set di CPU non consentiti vengono pianificati altrove. I set di CPU possono essere assegnati a due livelli. I set di CPU predefiniti del processo vengono assegnati a tutti i thread in un processo che non hanno un'assegnazione a livello di thread selezionato. Se un thread o un processo ha un set di maschere di affinità restrittive, la maschera di affinità viene rispettata sopra qualsiasi assegnazione di set di CPU in conflitto. Nei sistemi a più gruppi le assegnazioni della CPU vengono ignorate se si trovano in gruppi che non corrispondono al gruppo nella maschera di affinità del thread. Se un thread viene assegnato a più set di CPU validi, verrà eseguito su uno dei processori corrispondenti in base alle priorità e alle priorità dei thread concorrenti in tali processori.

Funzioni/enumerazioni/strutture del set di CPU