Sdílet prostřednictvím


Novinky v procesech a vláknech

Windows 7 a Windows Server 2008 R2 zahrnují následující nové programovací prvky pro procesy a vlákna.

Nové možnosti

64bitové verze systému Windows 7 a Windows Server 2008 R2 podporují více než 64 logických procesorů na jednom počítači. Další informace naleznete v tématu skupiny procesorů.

Plánování uživatelského režimu (UMS) je jednoduchý mechanismus, pomocí kterého můžou aplikace plánovat vlastní vlákna. Pro více informací viz User-Mode Plánování.

Nové funkce

Následující nové funkce se používají s procesory a skupinami procesorů.

Funkce Popis
CreateRemoteThreadEx
Vytvoří vlákno, které běží ve virtuálním adresní prostoru jiného procesu a volitelně určuje rozšířené atributy, jako je spřažení skupiny procesorů.
GetActiveProcessorCount
Vrátí počet aktivních procesorů ve skupině procesoru nebo v systému.
GetActiveProcessorGroupCount
Vrátí počet aktivních skupin procesorů v systému.
GetCurrentProcessorNumberEx
Načte skupinu procesoru a počet logického procesoru, ve kterém je spuštěné volající vlákno.
getLogicalProcessorInformationEx
Načte informace o relacích logických procesorů a souvisejícího hardwaru.
GetMaximumProcessorCount
Vrátí maximální počet logických procesorů, které může mít skupina procesorů nebo systém.
GetMaximumProcessorGroupCount
Vrátí maximální počet skupin procesorů, které může mít systém.
GetNumaAvailableMemoryNodeEx
Načte množství paměti, které je k dispozici v zadaném uzlu jako hodnota USHORT.
GetNumaNodeNumberFromHandle
Načte uzel NUMA přidružený k podkladovému zařízení pro popisovač souboru.
GetNumaNodeProcessorMaskEx
Načte masku procesoru pro zadaný uzel NUMA jako hodnotu USHORT.
GetNumaProcessorNodeEx
Načte číslo uzlu zadaného logického procesoru jako hodnotu USHORT.
GetNumaProximityNodeEx
Načte číslo uzlu jako hodnotu USHORT pro zadaný identifikátor blízkosti.
GetProcessGroupAffinity
Načte spřažení skupiny procesorů zadaného procesu.
GetProcessorSystemCycleTime
Načte dobu, kterou každý procesor v určené skupině strávil prováděním odložených volání procedur (DPC) a obslužných rutin přerušení (ISR).
GetThreadGroupAffinity
Načte spřažení skupiny procesorů zadaného vlákna.
GetThreadIdealProcessorEx
Načte číslo ideálního procesoru pro zadané vlákno.
QueryIdleProcessorCycleTimeEx
Načte čas kumulovaného cyklu pro nečinné vlákno na každém logickém procesoru v zadané skupině procesoru.
SetThreadGroupAffinity
Nastaví spřažení skupiny procesoru pro zadané vlákno.
SetThreadIdealProcessorEx
Nastaví ideální procesor pro zadané vlákno a volitelně načte předchozí ideální procesor.

 

Následující nové funkce se používají s fondy vláken.

Funkce Popis
QueryThreadpoolStackInformation
Načte rezervu zásobníkového prostoru a velikosti alokace pro vlákna v zadaném fondu vláken.
SetThreadpoolCallbackPersistent
Určuje, že zpětné volání by mělo běžet v trvalém vlákně.
SetThreadpoolCallbackPriority
Určuje prioritu funkce zpětného volání vzhledem k jiným pracovním položkám ve stejném fondu vláken.
SetThreadpoolStackInformation
Nastaví rezervu zásobníku a velikosti potvrzení pro nová vlákna v zadaném fondu vláken.

 

Následující nové funkce se používají s UMS.

Funkce Popis
VytvořitSeznamDokončeníUms
Vytvoří seznam dokončení UMS.
CreateUmsThreadContext
Vytvoří kontext vlákna UMS, který bude představovat pracovní vlákno UMS.
DeleteUmsCompletionList
Odstraní zadaný seznam dokončení UMS. Seznam musí být prázdný.
DeleteUmsThreadContext
Odstraní zadaný kontext vlákna UMS. Vlákno musí být ukončeno.
DequeueUmsCompletionListItems
Načte pracovní vlákna UMS ze zadaného seznamu dokončení UMS.
EnterUmsSchedulingMode
Převede volající vlákno na vlákno plánovače UMS.
ExecuteUmsThread
Spustí zadané pracovní vlákno UMS.
GetCurrentUmsThread
Vrátí kontext vlákna UMS volajícího vlákna UMS.
GetNextUmsListItem
Vrátí další kontext vlákna UMS v seznamu kontextů vlákna UMS.
GetUmsCompletionListEvent
Načte popisovač události přidružené k zadanému seznamu dokončení UMS.
QueryUmsThreadInformation
Načte informace o zadaném pracovním vlákně UMS.
SetUmsThreadInformation
Nastaví informace o kontextu specifické pro aplikaci pro zadané pracovní vlákno UMS.
UmsSchedulerProc
Funkce vstupního bodu UMS plánovače definovaná aplikací přidružená k seznamu úloh UMS.
UmsThreadYield
Poskytuje kontrolu nad vláknem plánovače UMS, na kterém je spuštěno volající pracovní vlákno UMS.

 

Nové struktury

Struktura Popis
CACHE_RELATIONSHIP
Popisuje atributy mezipaměti.
GROUP_AFFINITY
Obsahuje spřažení specifické pro skupinu procesoru, například spřažení vlákna.
SKUPINOVÝ_VZTAH
Obsahuje informace o skupinách procesorů.
NUMA_NODE_RELATIONSHIP
Obsahuje informace o uzlu NUMA ve skupině procesoru.
PROCESSOR_GROUP_INFO
Obsahuje počet a spřažení procesorů ve skupině procesorů.
PROCESSOR_NUMBER
Představuje logický procesor ve skupině procesoru.
VZTAH_MEZI_PROCESORY
Obsahuje informace o spřažení v rámci skupiny procesorů.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Obsahuje informace o relacích logických procesorů a souvisejícího hardwaru.
UMS_CREATE_THREAD_ATTRIBUTES
Určuje atributy pro pracovní vlákno UMS.
UMS_SCHEDULER_STARTUP_INFO
Určuje atributy pro vlákno plánovače UMS.