프로세스 및 스레드 정보

프로세스 는 프로그램을 실행하는 데 필요한 리소스를 제공합니다. 프로세스에는 가상 주소 공간, 실행 코드, 시스템 개체에 대한 열린 핸들, 보안 컨텍스트, 고유한 프로세스 식별자, 환경 변수, 우선 순위 클래스, 최소 및 최대 작업 집합 크기 및 하나 이상의 실행 스레드가 있습니다. 각 프로세스는 종종 주 스레드라고 하는 단일 스레드로 시작되지만 해당 스레드에서 추가 스레드를 만들 수 있습니다.

스레드는 실행을 예약할 수 있는 프로세스 내의 엔터티입니다. 프로세스의 모든 스레드는 가상 주소 공간 및 시스템 리소스를 공유합니다. 또한 각 스레드는 예외 처리기, 예약 우선 순위, 스레드 로컬 스토리지, 고유 스레드 식별자 및 시스템이 예약될 때까지 스레드 컨텍스트를 저장하는 데 사용할 구조 집합을 유지 관리합니다. 스레드 컨텍스트에는 스레드 프로세스의 주소 공간에 스레드의 머신 레지스터 집합, 커널 스택, 스레드 환경 블록 및 사용자 스택이 포함됩니다. 스레드는 클라이언트를 가장하는 데 사용할 수 있는 자체 보안 컨텍스트를 가질 수도 있습니다.

Microsoft Windows는 여러 프로세스에서 여러 스레드를 동시에 실행하는 효과를 만드는 선제적 멀티태스킹을 지원합니다. 다중 프로세서 컴퓨터에서 시스템은 컴퓨터에 프로세서가 있는 만큼의 스레드를 동시에 실행할 수 있습니다.

작업 개체를 사용하면 프로세스 그룹을 단위로 관리할 수 있습니다. 작업 개체는 연결된 프로세스의 특성을 제어하는 이름 지정 가능하고 보안이 가능한 공유 가능한 개체입니다. 작업 개체에서 수행되는 작업은 작업 개체와 연결된 모든 프로세스에 영향을 줍니다.

애플리케이션은 스레드 풀 을 사용하여 애플리케이션 스레드 수를 줄이고 작업자 스레드를 관리할 수 있습니다. 애플리케이션은 작업 항목을 큐에 대기하고, 대기 가능한 핸들과 작업을 연결하고, 타이머를 기반으로 자동으로 큐에 대기하고, I/O로 바인딩할 수 있습니다.

UMS(사용자 모드 예약)는 애플리케이션이 자체 스레드를 예약하는 데 사용할 수 있는 간단한 메커니즘입니다. 애플리케이션은 시스템 스케줄러 를 포함하지 않고 사용자 모드에서 UMS 스레드 간에 전환하고 UMS 스레드가 커널에서 차단되는 경우 프로세서의 제어권을 다시 얻을 수 있습니다. 각 UMS 스레드에는 단일 스레드의 스레드 컨텍스트를 공유하는 대신 자체 스레드 컨텍스트가 있습니다. 사용자 모드에서 스레드 간을 전환하는 기능을 사용하면 시스템 호출이 거의 필요한 단기 작업 항목에 대한 스레드 풀보다 UMS가 더 효율적입니다.

파이버는 애플리케이션에서 수동으로 예약해야 하는 실행 단위입니다. 파이버는 예약하는 스레드의 컨텍스트에서 실행됩니다. 각 스레드는 여러 파이버를 예약할 수 있습니다. 일반적으로 섬유는 잘 설계된 다중 스레드 애플리케이션에 비해 이점을 제공하지 않습니다. 그러나 파이버를 사용하면 자체 스레드를 예약하도록 설계된 애플리케이션을 쉽게 이식할 수 있습니다.

자세한 내용은 아래 항목을 참조하세요.