프로세스와 스레드

Server/Winodw Network 2015. 10. 5. 20:28

프로세스는 실행 중인 프로그램을 말한다.

 

프로그램과 프로세스의 차이점

 

- 프로세스는 실행중인 프로그램의 한 인스턴스이다.

- 예를 들어 두 개의 같은 프로그램을 실행시킨다면 같은 프로그램이지만 다른 프로세스로

   인식된다.

 

 

운영체제는 실행된 프로그램을 프로세스 단위로 관리한다.

프로세스는 각가 4GB의 주소 공간과 파일, 메모리, 스레드 등의 객체들을 소유하며 프로세스가

종료될 때 프로세스가 소유한 모든 자원은 운영체제에 의해서 파괴된다.

스레드는 윈도우와 메시지 큐, 스택만 소유한다.

 

객체 간의 소유 관계는 프로세스 > 스레드 > 윈도우 순서이다.

 

 

프로세스는 실행중인 프로그램이지만 실제로 작업을 하는 주체는 아니다.

작업은 프로세스 내의 스레드가 담당한다.

 

프로세스는 단지 메모리상에 존재하기만 할 뿐이고 실행과 동시에 스레드를 하나 만들고

스레드를 호출함으로써 스레드에게 모든 작업을 맡긴다.

 

프로세스는 스레드를 담는 껍데기이고 실제 일은 스레드가 담당하게 된다.

 

프로세스는 최소한 하나 이상의 스레드를 가진다.

프로세스와 동시에 만들어지는 스레드를 주 스레드(Primary Thread)라 하며 이외에

필요에 따라서 여러 개의 스레드를 더 만들어 사용할 수 있다.

 

하나의 프로세스가 복수 개의 스레드를 가질 수 있는 것을 멀티 스레드라고 한다.

 

 

'Server > Winodw Network' 카테고리의 다른 글

프로세스, 스레드의 우선순위  (0) 2015.10.08
스레드 생성과 종료  (0) 2015.10.06
로그 기록  (0) 2015.09.23
select 모델  (0) 2015.08.11
소켓입출력모델  (0) 2015.08.10
admin