Condividi tramite


Novità nei processi e nei thread

Windows 7 e Windows Server 2008 R2 includono i nuovi elementi di programmazione seguenti per processi e thread.

Nuove funzionalità

Le versioni a 64 bit di Windows 7 e Windows Server 2008 R2 supportano più di 64 processori logici in un singolo computer. Per altre informazioni, vedere gruppi di processori.

La pianificazione in modalità utente (UMS) è un meccanismo leggero che le applicazioni possono usare per pianificare i propri thread. Per altre informazioni, vedere User-Mode Pianificazione.

Nuove funzioni

Le nuove funzioni seguenti vengono usate con processori e gruppi di processori.

Funzione Descrizione
CreateRemoteThreadEx
Crea un thread eseguito nello spazio indirizzi virtuale di un altro processo e, facoltativamente, specifica attributi estesi, ad esempio l'affinità del gruppo di processori.
GetActiveProcessorCount
Restituisce il numero di processori attivi in un gruppo di processori o nel sistema.
GetActiveProcessorGroupCount
Restituisce il numero di gruppi di processori attivi nel sistema.
GetCurrentProcessorNumberEx
Recupera il gruppo di processori e il numero del processore logico in cui è in esecuzione il thread chiamante.
GetLogicalProcessorInformationEx
Recupera informazioni sulle relazioni tra processori logici e hardware correlato.
GetMaximumProcessorCount
Restituisce il numero massimo di processori logici che un gruppo di processori o il sistema può avere.
GetMaximumProcessorGroupCount
Restituisce il numero massimo di gruppi di processori che il sistema può avere.
GetNumaAvailableMemoryNodeEx
Recupera la quantità di memoria disponibile nel nodo specificato come valore USHORT.
GetNumaNodeNumberFromHandle
Recupera il nodo NUMA associato al dispositivo sottostante per un handle di file.
GetNumaNodeProcessorMaskEx
Recupera la maschera del processore per il nodo NUMA specificato come valore USHORT.
GetNumaProcessorNodeEx
Recupera il numero di nodo del processore logico specificato come valore USHORT.
GetNumaProximityNodeEx
Recupera il numero di nodo come valore USHORT per l'identificatore di prossimità specificato.
GetProcessGroupAffinity
Recupera l'affinità del gruppo di processori del processo specificato.
GetProcessorSystemCycleTime
Recupera il tempo di ciclo che ogni processore nel gruppo specificato ha trascorso eseguendo chiamate di procedura posticipate (DPC) e delle routine di servizio di interruzione (ISR).
GetThreadGroupAffinity
Recupera l'affinità del gruppo di processori del thread specificato.
GetThreadIdealProcessorEx
Recupera il numero di processore del processore ideale per il thread specificato.
QueryIdleProcessorCycleTimeEx
Recupera il tempo di ciclo accumulato per il thread inattivo su ogni processore logico nel gruppo di processori specificato.
SetThreadGroupAffinity
Imposta l'affinità del gruppo di processori per il thread specificato.
SetThreadIdealProcessorEx
Imposta il processore ideale per il thread specificato e, facoltativamente, recupera il processore ideale precedente.

 

Le nuove funzioni seguenti vengono usate con i pool di thread.

Funzione Descrizione
QueryThreadpoolStackInformation
Ottiene le dimensioni di riserva e di impegno dello stack per i thread nel pool di thread specificato.
SetThreadpoolCallbackPersistent
Specifica che il callback deve essere eseguito in un thread persistente.
SetThreadpoolCallbackPriority
Specifica la priorità di una funzione di callback rispetto ad altri elementi di lavoro nello stesso pool di thread.
SetThreadpoolStackInformation
Imposta le dimensioni di riserva e di commit dello stack per i nuovi thread nel pool di thread specificato.

 

Le nuove funzioni seguenti vengono usate con UMS.

Funzione Descrizione
CreateUmsCompletionList
Crea un elenco di completamento UMS.
CreateUmsThreadContext
Crea un contesto di thread UMS per rappresentare un thread di lavoro UMS.
DeleteUmsCompletionList
Elimina l'elenco di completamento UMS specificato. L'elenco deve essere vuoto.
DeleteUmsThreadContext
Elimina il contesto del thread UMS specificato. Il thread deve essere terminato.
DequeueUmsCompletionListItems
Recupera i thread di lavoro UMS dalla lista di completamento UMS specificata.
Entra nella Modalità di Pianificazione Ums
Converte il thread chiamante in un thread UMS di schedulazione.
ExecuteUmsThread
Esegue il thread di lavoro UMS specificato.
GetCurrentUmsThread
Restituisce il contesto del thread UMS del thread di messaggistica unificata chiamante.
OttieniElementoSuccessivoListaUms
Restituisce il contesto del thread UMS successivo in un elenco di contesti di thread di messaggistica unificata.
GetUmsCompletionListEvent
Recupera un handle per l'evento associato all'elenco di completamento UMS specificato.
QueryUmsThreadInformation
Recupera informazioni sul thread di lavoro UMS specificato.
SetUmsThreadInformation
Imposta informazioni sul contesto specifiche dell'applicazione per il thread di lavoro UMS specificato.
UmsSchedulerProc
Funzione del punto di ingresso del pianificatore UMS specificata dall'applicazione associata a un elenco di completamento UMS.
UmsThreadYield
Concede il controllo al thread del pianificatore UMS su cui è in esecuzione il thread di lavoro UMS chiamante.

 

Nuove strutture

Struttura Descrizione
CACHE_RELATIONSHIP
Descrive gli attributi della cache.
GROUP_AFFINITY
Contiene un'affinità specifica del gruppo di processori, ad esempio l'affinità di un thread.
GROUP_RELATIONSHIP
Contiene informazioni sui gruppi di processori.
NUMA_NODE_RELATIONSHIP
Contiene informazioni su un nodo NUMA in un gruppo di processori.
PROCESSOR_GROUP_INFO
Contiene il numero e l'affinità dei processori in un gruppo di processori.
PROCESSOR_NUMBER
Rappresenta un processore logico in un gruppo di processori.
RELAZIONE_PROCESSORE
Contiene informazioni sull'affinità all'interno di un gruppo di processori.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Contiene informazioni sulle relazioni tra processori logici e hardware correlato.
UMS_CREATE_THREAD_ATTRIBUTES
Specifica gli attributi per un thread di lavoro UMS.
UMS_SCHEDULER_STARTUP_INFO
Specifica gli attributi per un thread di pianificazione UMS