프로세스 및 스레드의 새로운 기능

Windows 7 및 Windows Server 2008 R2에는 프로세스 및 스레드에 대한 다음과 같은 새로운 프로그래밍 요소가 포함되어 있습니다.

새로운 기능

Windows 7 및 Windows Server 2008 R2의 64비트 버전은 단일 컴퓨터에서 64개 이상의 논리 프로세서를 지원합니다. 자세한 내용은 프로세서 그룹을 참조하세요.

UMS(사용자 모드 예약)는 애플리케이션이 자체 스레드를 예약하는 데 사용할 수 있는 간단한 메커니즘입니다. 자세한 내용은 사용자 모드 예약을 참조하세요.

새로운 함수

프로세서 및 프로세서 그룹과 함께 사용되는 새로운 함수는 다음과 같습니다.

함수 Description
CreateRemoteThreadEx
다른 프로세스의 가상 주소 공간에서 실행되는 스레드를 만들고 필요에 따라 프로세서 그룹 선호도와 같은 확장 특성을 지정합니다.
GetActiveProcessorCount
프로세서 그룹 또는 시스템의 활성 프로세서 수를 반환합니다.
GetActiveProcessorGroupCount
시스템의 활성 프로세서 그룹 수를 반환합니다.
GetCurrentProcessorNumberEx
호출 스레드가 실행 중인 논리 프로세서의 프로세서 그룹 및 수를 검색합니다.
GetLogicalProcessorInformationEx
논리 프로세서 및 관련 하드웨어의 관계에 대한 정보를 검색합니다.
GetMaximumProcessorCount
프로세서 그룹 또는 시스템에 있을 수 있는 논리 프로세서의 최대 수를 반환합니다.
GetMaximumProcessorGroupCount
시스템에 있을 수 있는 프로세서 그룹의 최대 수를 반환합니다.
GetNumaAvailableMemoryNodeEx
지정된 노드에서 사용할 수 있는 메모리 양을 USHORT 값으로 검색합니다.
GetNumaNodeNumberFromHandle
파일 핸들에 대한 기본 디바이스와 연결된 NUMA 노드를 검색합니다.
GetNumaNodeProcessorMaskEx
지정된 NUMA 노드의 프로세서 마스크를 USHORT 값으로 검색합니다.
GetNumaProcessorNodeEx
지정된 논리 프로세서의 노드 번호를 USHORT 값으로 검색합니다.
GetNumaProximityNodeEx
노드 번호를 지정된 근접 식별자에 대한 USHORT 값으로 검색합니다.
GetProcessGroupAffinity
지정된 프로세스의 프로세서 그룹 선호도를 검색합니다.
GetProcessorSystemCycleTime
지정된 그룹의 각 프로세서가 DPC(지연 프로시저 호출) 및 ISR(인터럽트 서비스 루틴)을 실행하는 데 소요된 주기 시간을 검색합니다.
GetThreadGroupAffinity
지정된 스레드의 프로세서 그룹 선호도를 검색합니다.
GetThreadIdealProcessorEx
지정된 스레드에 적합한 프로세서의 프로세서 번호를 검색합니다.
QueryIdleProcessorCycleTimeEx
지정된 프로세서 그룹의 각 논리 프로세서에서 유휴 스레드에 대해 누적된 주기 시간을 검색합니다.
SetThreadGroupAffinity
지정된 스레드에 대한 프로세서 그룹 선호도를 설정합니다.
SetThreadIdealProcessorEx
지정된 스레드에 이상적인 프로세서를 설정하고 필요에 따라 이전 이상적인 프로세서를 검색합니다.

 

다음 새 함수는 스레드 풀과 함께 사용됩니다.

함수 설명
QueryThreadpoolStackInformation
지정된 스레드 풀의 스레드에 대한 스택 예약 및 커밋 크기를 검색합니다.
SetThreadpoolCallbackPersistent
콜백이 영구 스레드에서 실행되도록 지정합니다.
SetThreadpoolCallbackPriority
동일한 스레드 풀의 다른 작업 항목을 기준으로 콜백 함수의 우선 순위를 지정합니다.
SetThreadpoolStackInformation
지정된 스레드 풀의 새 스레드에 대한 스택 예약 및 커밋 크기를 설정합니다.

 

다음 새 함수는 UMS와 함께 사용됩니다.

함수 설명
CreateUmsCompletionList
UMS 완료 목록을 만듭니다.
CreateUmsThreadContext
UMS 작업자 스레드를 나타내는 UMS 스레드 컨텍스트를 만듭니다.
DeleteUmsCompletionList
지정된 UMS 완료 목록을 삭제합니다. 목록이 비어 있어야 합니다.
DeleteUmsThreadContext
지정된 UMS 스레드 컨텍스트를 삭제합니다. 스레드를 종료해야 합니다.
DequeueUmsCompletionListItems
지정된 UMS 완료 목록에서 UMS 작업자 스레드를 검색합니다.
EnterUmsSchedulingMode
호출 스레드를 UMS 스케줄러 스레드로 변환합니다.
ExecuteUmsThread
지정된 UMS 작업자 스레드를 실행합니다.
GetCurrentUmsThread
호출하는 UMS 스레드의 UMS 스레드 컨텍스트를 반환합니다.
GetNextUmsListItem
UMS 스레드 컨텍스트 목록에서 다음 UMS 스레드 컨텍스트를 반환합니다.
GetUmsCompletionListEvent
지정된 UMS 완료 목록과 연결된 이벤트에 대한 핸들을 검색합니다.
QueryUmsThreadInformation
지정된 UMS 작업자 스레드에 대한 정보를 검색합니다.
SetUmsThreadInformation
지정된 UMS 작업자 스레드에 대한 애플리케이션별 컨텍스트 정보를 설정합니다.
UmsSchedulerProc
UMS 완료 목록과 연결된 애플리케이션 정의 UMS 스케줄러 진입점 함수입니다.
UmsThreadYield
호출하는 UMS 작업자 스레드가 실행 중인 UMS 스케줄러 스레드에 대한 제어를 생성합니다.

 

새 구조체

구조체 설명
CACHE_RELATIONSHIP
캐시 특성을 설명합니다.
GROUP_AFFINITY
스레드의 선호도와 같은 프로세서 그룹별 선호도를 포함합니다.
GROUP_RELATIONSHIP
프로세서 그룹에 대한 정보를 포함합니다.
NUMA_NODE_RELATIONSHIP
프로세서 그룹의 NUMA 노드에 대한 정보를 포함합니다.
PROCESSOR_GROUP_INFO
프로세서 그룹의 프로세서 수와 선호도를 포함합니다.
PROCESSOR_NUMBER
프로세서 그룹의 논리 프로세서를 나타냅니다.
PROCESSOR_RELATIONSHIP
프로세서 그룹 내의 선호도에 대한 정보를 포함합니다.
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
논리 프로세서 및 관련 하드웨어의 관계에 대한 정보를 포함합니다.
UMS_CREATE_THREAD_ATTRIBUTES
UMS 작업자 스레드의 특성을 지정합니다.
UMS_SCHEDULER_STARTUP_INFO
UMS 스케줄러 스레드에 대한 특성을 지정합니다.