Udostępnij przez


Co nowego w zakresie procesów i wątków

Systemy Windows 7 i Windows Server 2008 R2 zawierają następujące nowe elementy programowania dla procesów i wątków.

Nowe możliwości

64-bitowe wersje systemów Windows 7 i Windows Server 2008 R2 obsługują więcej niż 64 procesory logiczne na jednym komputerze. Aby uzyskać więcej informacji, zobacz Grupy procesorów.

Planowanie w trybie użytkownika (UMS) to uproszczony mechanizm, którego aplikacje mogą używać do planowania własnych wątków. Aby uzyskać więcej informacji, zobacz User-Mode Harmonogram.

Nowe funkcje

Następujące nowe funkcje są używane z procesorami i grupami procesorów.

Funkcja Opis
CreateRemoteThreadEx
Tworzy wątek uruchamiany w wirtualnej przestrzeni adresowej innego procesu i opcjonalnie określa atrybuty rozszerzone, takie jak koligacja grupy procesorów.
GetActiveProcessorCount
Zwraca liczbę aktywnych procesorów w grupie procesorów lub w systemie.
GetActiveProcessorGroupCount
Zwraca liczbę aktywnych grup procesorów w systemie.
GetCurrentProcessorNumberEx
Pobiera grupę procesorów i liczbę procesora logicznego, w którym jest uruchomiony wątek wywołujący.
GetLogicalProcessorInformationEx
Pobiera informacje o relacjach procesorów logicznych i powiązanego sprzętu.
getMaximumProcessorCount
Zwraca maksymalną liczbę procesorów logicznych, które może mieć grupa procesorów lub system.
GetMaximumProcessorGroupCount
Zwraca maksymalną liczbę grup procesorów, które może mieć system.
GetNumaAvailableMemoryNodeEx
Pobiera ilość pamięci dostępnej w określonym węźle jako wartość USHORT.
PobierzNumerWęzłaNumaZUchwytu
Pobiera węzeł NUMA skojarzony z urządzeniem bazowym na potrzeby dojścia do pliku.
GetNumaNodeProcessorMaskEx
Pobiera maskę procesora dla określonego węzła NUMA jako wartość USHORT.
GetNumaProcessorNodeEx
Pobiera numer węzła określonego procesora logicznego jako wartość USHORT.
GetNumaProximityNodeEx
Pobiera numer węzła w postaci wartości USHORT dla określonego identyfikatora bliskości.
getProcessGroupAffinity
Pobiera koligację grupy procesorów określonego procesu.
PobierzCzasCykluSystemuProcesora
Pobiera czas cyklu każdego procesora w określonej grupie, który był poświęcony na obsługę odroczonych wywołań procedur (DPC) oraz procedur obsługi przerwań (ISR).
GetThreadGroupAffinity
Pobiera przynależność do grupy procesorowej określonego wątku.
GetThreadIdealProcessorEx
Pobiera numer idealnego procesora dla określonego wątku.
QueryIdleProcessorCycleTimeEx
Pobiera skumulowany czas cyklu dla wątku bezczynności dla każdego procesora logicznego w określonej grupie procesorów.
SetThreadGroupAffinity
Ustawia koligację grupy procesorów dla określonego wątku.
SetThreadIdealProcessorEx
Ustawia idealny procesor dla określonego wątku i opcjonalnie pobiera poprzedni idealny procesor.

 

Następujące nowe funkcje są używane z pulami wątków.

Funkcja Opis
QueryThreadpoolStackInformation
Pobiera rozmiary rezerw i zatwierdzeń stosu dla wątków w określonej puli wątków.
SetThreadpoolCallbackPersistent
Określa, że wywołanie zwrotne powinno być uruchamiane w stałym wątku.
SetThreadpoolCallbackPriority
Określa priorytet funkcji wywołania zwrotnego w odniesieniu do innych zadań w tej samej puli wątków.
SetThreadpoolStackInformation
Ustawia rozmiar przestrzeni i przydziału stosu dla nowych wątków w określonej puli wątków.

 

Następujące nowe funkcje są używane z usługą UMS.

Funkcja Opis
CreateUmsCompletionList
Tworzy listę uzupełnień UMS.
CreateUmsThreadContext
Tworzy kontekst wątku UMS reprezentujący wątek procesu roboczego UMS.
DeleteUmsCompletionList
Usuwa określoną listę ukończenia UMS. Lista musi być pusta.
DeleteUmsThreadContext
Usuwa określony kontekst wątku UMS. Wątek musi zostać zakończony.
DequeueUmsCompletionListItems
Pobiera wątki procesów roboczych UMS z określonej listy uzupełniania usługi UMS.
Włącz tryb planowania UMS
Konwertuje wątek wywołujący na wątek harmonogramu UMS.
ExecuteUmsThread
Uruchamia określony wątek roboczy UMS.
GetCurrentUmsThread
Zwraca kontekst wątku UMS wywołującego wątku UMS.
GetNextUmsListItem
Zwraca następny kontekst wątku UMS na liście kontekstów wątku UMS.
GetUmsCompletionListEvent
Pobiera dojście do zdarzenia skojarzonego z określoną listą uzupełniania usługi UMS.
QueryUmsThreadInformation
Pobiera informacje o określonym wątku procesu roboczego usługi UMS.
SetUmsThreadInformation
Ustawia informacje kontekstowe specyficzne dla aplikacji dla określonego wątku roboczego usługi UMS.
UmsSchedulerProc
Funkcja punktu wejścia zdefiniowana przez aplikację, związana z harmonogramem UMS i skojarzona z listą zakończenia UMS.
UmsThreadYield
Daje kontrolę nad wątkiem harmonogramu usługi UMS, na którym jest uruchomiony wątek wywołujący proces roboczy usługi UMS.

 

Nowe struktury

Struktura Opis
CACHE_RELATIONSHIP
Opisuje atrybuty pamięci podręcznej.
GROUP_AFFINITY
Zawiera koligację specyficzną dla grupy procesora, taką jak koligacja wątku.
RELACJA_GRUPOWA
Zawiera informacje o grupach procesorów.
relacja_węzła_NUMA
Zawiera informacje o węźle NUMA w grupie procesorów.
INFORMACJE_O_GRUPIE_PROCESORÓW
Zawiera liczbę i koligację procesorów w grupie procesorów.
PROCESSOR_NUMBER
Reprezentuje procesor logiczny w grupie procesorów.
PROCESSOR_RELATIONSHIP
Zawiera informacje o koligacji w grupie procesorów.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
Zawiera informacje o relacjach procesorów logicznych i powiązanego sprzętu.
UMS_CREATE_THREAD_ATTRIBUTES
Określa atrybuty wątku roboczego usługi UMS.
UMS_SCHEDULER_STARTUP_INFO
Określa atrybuty wątku harmonogramu UMS