본문 바로가기

운영체제

Process와 Thread의 비교 및 차이

Program(혹은 Application)은 어떠한 일을 수행하는 명령어의 집합으로, 프로그래밍 언어로 생성되어 컴퓨터에서 실행가능한 형태로 디스크나 비휘발성 메모리에 저장되어 있다. Process는 실행 중인 program을 의미하며 명령 수행에 필요한 메모리와 자원을 할당받아 동작한다. Process는 상호배타적으로 분리된 메모리 공간을 할당받아 실행되어서 다른 process에 직접적인 영향을 주지 않는다. Thread는 process의 실행 단위로 경량화된 process이며, process가 시작되면 이 역시 메모리와 자원을 할당받는다. 하나의 process는 여러개의 thread를 생성할 수 있으며, 이 경우에 각각의 thread는 자신만의 레지스터와 스택을 할당받고 process 내부의 나머지 자원은 공유하게 된다. 따라서 하나의 thread가 다른 thread에 미치는 영향이 크다. 

 

 

Process Thread
무거운 동작(heavy weight operation)이다. 가벼운 동작(light weight operation)이다.
생성, 종료, 문맥교환에 걸리는 시간이 길다. 걸리는 시간이 짧다.
Process간 메모리를 공유하지 않아 독립적이고 자원을 많이 소비한다. Thread간 메모리를 공유해 독립적이지 않고 자원을 덜 소비한다.
Process간 통신이 복잡하고 느리다. Thread간 통신이 간단하고 빠르다.

 

 

참고자료

https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/

https://www.geeksforgeeks.org/difference-between-process-and-thread/

'운영체제' 카테고리의 다른 글

Priority Inversion  (0) 2020.04.14
Race Condition  (0) 2020.04.11
Memory Layout of a Program(Process)  (0) 2020.04.09
WHAT HAPPENS WHEN YOU TURN A COMPUTER ON?  (0) 2020.04.06