Set di CPU
I set di CPU forniscono API per dichiarare l'affinità dell'applicazione in modo "soft" compatibile con il risparmio di energia del sistema operativo. Inoltre, l'API offre alle applicazioni la possibilità di riaffinire tutti i thread in background nel processo a un subset di processori usando il meccanismo di Processo predefinito per evitare interferenze 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 gli 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 home processore logico. Un thread affinizzato a un determinato set di CPU viene in genere eseguito su uno dei processori nel relativo elenco di ID set di CPU selezionati.
I set di CPU riservati possono essere determinati esaminando il flag allocato nel SYSTEM_CPU_SET_INFORMATION. Il sistema controlla l'accesso ai 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 a set di CPU non consentiti vengono pianificati altrove. I set di CPU possono essere assegnati a due livelli. I set di CPU predefinito 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 maschera di affinità restrittiva, 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
- funzione GetProcessDefaultCpuSets
- funzione GetProcessDefaultCpuSetMasks
- funzione di GetSystemCpuSetInformation
- funzione GetThreadSelectedCpuSets
- funzione GetThreadSelectedCpuSetMasks
- funzione SetProcessDefaultCpuSets
- funzione SetProcessDefaultCpuSetMasks
- funzione setThreadSelectedCpuSets
- funzione SetThreadSelectedCpuSetMasks
- enumerazione CPU_SET_INFORMATION_TYPE
- struttura SYSTEM_CPU_SET_INFORMATION