struttura JOBOBJECT_CPU_RATE_CONTROL_INFORMATION (winnt.h)

Contiene informazioni sul controllo della frequenza della CPU per un oggetto processo. Questa struttura viene utilizzata dalle funzioni SetInformationJobObject e QueryInformationJobObject con la classe di informazioni JobObjectCpuRateControlInformation .

Sintassi

typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
  DWORD ControlFlags;
  union {
    DWORD CpuRate;
    DWORD Weight;
    struct {
      WORD MinRate;
      WORD MaxRate;
    } DUMMYSTRUCTNAME;
  } DUMMYUNIONNAME;
} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION;

Members

ControlFlags

Criteri di pianificazione per il controllo della frequenza della CPU. Questo membro può essere uno dei valori seguenti.

Valore Significato
JOB_OBJECT_CPU_RATE_CONTROL_ENABLE
0x1
Questo flag consente di controllare la velocità della CPU del processo in base al peso o al limite rigido. È necessario impostare questo valore se si impostano anche JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP o JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.
JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED
0x2
La frequenza della CPU del processo viene calcolata in base al peso relativo di altri processi. Se questo flag è impostato, il membro Weight contiene altre informazioni. Se questo flag è chiaro, il membro CpuRate contiene altre informazioni.

Se si imposta JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, non è possibile impostare anche JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.

JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP
0x4
La velocità della CPU del processo è un limite rigido. Dopo che il processo raggiunge il limite di ciclo della CPU per l'intervallo di pianificazione corrente, nessun thread associato al processo verrà eseguito fino all'intervallo successivo.

Se si imposta JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP, non è possibile impostare anche JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.

JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY
0x8
Invia messaggi quando la frequenza della CPU per il processo supera i limiti di velocità per il processo durante l'intervallo di tolleranza.
JOB_OBJECT_ CPU_RATE_CONTROL_MIN_MAX_RATE
0x10
La frequenza della CPU per il processo è limitata da velocità minime e massime specificate nei membri MinRate e MaxRate .

Se si imposta JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, è possibile impostare né JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED né JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP.

DUMMYUNIONNAME

DUMMYUNIONNAME.CpuRate

Specifica la parte dei cicli del processore che i thread in un oggetto processo possono usare durante ogni intervallo di pianificazione, come numero di cicli per 10.000 cicli. Se il membro ControlFlags specifica JOB_OBJECT_CPU_RATE_WEIGHT_BASED o JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, questo membro non viene utilizzato.

Impostare CpuRate su una percentuale di 100. Ad esempio, per consentire al processo di usare il 20% della CPU, impostare CpuRate su 20 volte 100 o 2.000.

Non impostare CpuRate su 0. Se CpuRate è 0, SetInformationJobObject restituisce INVALID_ARGS.

DUMMYUNIONNAME.Weight

Se il membro ControlFlags specifica JOB_OBJECT_CPU_RATE_WEIGHT_BASED, questo membro specifica il peso di pianificazione dell'oggetto processo, che determina la condivisione del tempo del processore assegnato al processo rispetto ad altri carichi di lavoro nel processore.

Questo membro può essere un valore compreso tra 1 e 9, dove 1 è la quota più piccola e 9 è la quota più grande. Il valore predefinito è 5, che deve essere usato per la maggior parte dei carichi di lavoro.

Se il membro ControlFlags specifica JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, questo membro non viene utilizzato.

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MinRate

Specifica la parte minima dei cicli del processore che i thread in un oggetto processo possono riservare durante ogni intervallo di pianificazione. Specificare questa frequenza come percentuale per 100. Ad esempio, per impostare una frequenza minima del 50%, specificare 50 volte 100 o 5.000.

Affinché le tariffe minime funzionino correttamente, la somma delle tariffe minime per tutti gli oggetti processo nel sistema non può superare 10.000, che equivale al 100%.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate

Specifica la parte massima dei cicli del processore che i thread in un oggetto processo possono usare durante ogni intervallo di pianificazione. Specificare questa frequenza come percentuale per 100. Ad esempio, per impostare una velocità massima del 50%, specificare 50 volte 100 o 5.000.

Dopo che il processo raggiunge questo limite per un intervallo di pianificazione, nessun thread associato al processo può essere eseguito fino all'intervallo di pianificazione successivo.

Commenti

È possibile impostare il controllo della frequenza della CPU per più processi in una gerarchia di processi annidati. Quando si imposta il controllo della frequenza della CPU per un oggetto processo, le impostazioni si applicano al processo e ai processi figlio nella gerarchia. Quando si imposta il controllo della frequenza della CPU per un processo in una gerarchia nidificata, il sistema calcola le quote corrispondenti rispetto al controllo della frequenza della CPU del processo padre immediato per il processo. In altre parole, le tariffe impostate per il processo rappresentano la relativa parte della frequenza di CPU allocata al processo padre. Se un oggetto processo non dispone di un elemento padre con controllo della frequenza della CPU attivato nella catena dei processi padre, il controllo della frequenza per il processo rappresenta la parte della CPU per l'intero sistema.

Il controllo della frequenza della CPU non può essere usato dagli oggetti processo nelle applicazioni in esecuzione in Servizi Desktop remoto (in precedenza Terminal Services) se la pianificazione dinamica della condivisione equa (DFSS) è attiva.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Intestazione winnt.h

Vedi anche

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

QueryInformationJobObject

SetInformationJobObject