Conjuntos de CPU
Los conjuntos de CPU proporcionan API para declarar la afinidad de aplicación de una manera "flexible" compatible con la administración de energía del sistema operativo. Además, la API proporciona a las aplicaciones la capacidad de reasignar todos los subprocesos en segundo plano del proceso a un subconjunto de procesadores mediante el mecanismo De proceso predeterminado para evitar interferencias de subprocesos del sistema operativo dentro del proceso. Algunas versiones de windows admiten directivas de reserva básica, en las que un subconjunto de los conjuntos de CPU del sistema se puede dedicar al uso exclusivo de las aplicaciones y cargas de trabajo individuales.
La API del conjunto de CPU funciona con identificadores de conjunto de CPU, que están asociados a afinidades de procesador virtual. En la mayoría de los sistemas y, en la mayoría de las condiciones, cada identificador de conjunto de CPU se asignará directamente a un único procesador lógico principal . Normalmente, una afinidad de subproceso con un conjunto de CPU determinado se ejecutará en uno de los procesadores de su lista de identificadores de conjunto de CPU seleccionados.
Los conjuntos de CPU reservados se pueden determinar inspeccionando la marca Asignada en el SYSTEM_CPU_SET_INFORMATION. El sistema controla el acceso a conjuntos de CPU reservados y se puede consultar la asignación mediante la marca AllocatedToTargetProcess de la estructura de SYSTEM_CPU_SET_INFORMATION. Si un proceso intenta usar una asignación de conjunto de CPU que se asigna exclusivamente a otros procesos, su solicitud se omite y los subprocesos asignados a conjuntos de CPU no permitidos se programan en otro lugar. Los conjuntos de CPU se pueden asignar en dos niveles. Los conjuntos de CPU predeterminados de proceso se asignan a todos los subprocesos de un proceso que no tienen una asignación en el nivel Seleccionado para subprocesos. Si un subproceso o proceso tiene un conjunto restrictivo de máscara de afinidad, la máscara de afinidad se respeta por encima de cualquier asignación de conjunto de CPU en conflicto. En los sistemas de varios grupos, las asignaciones de CPU se omiten si están en grupos que no coinciden con el grupo en la máscara de afinidad del subproceso. Si un subproceso se asigna a varios conjuntos de CPU válidos, se ejecutará en uno de los procesadores correspondientes según sus prioridades y las prioridades de subprocesos competidores en esos procesadores.
Funciones/enumeraciones/estructuras del conjunto de CPU
- Función GetProcessDefaultCpuSets
- Función GetProcessDefaultCpuSetMasks
- Función GetSystemCpuSetInformation
- Función GetThreadSelectedCpuSets
- Función GetThreadSelectedCpuSetMasks
- Función SetProcessDefaultCpuSets
- Función SetProcessDefaultCpuSetMasks
- Función SetThreadSelectedCpuSets
- Función SetThreadSelectedCpuSetMasks
- enumeración CPU_SET_INFORMATION_TYPE
- estructura de SYSTEM_CPU_SET_INFORMATION