본문 바로가기
Operating System

Process(프로세스) vs Thread(스레드)

by 기리의 개발로그 2015. 7. 6.

Process(프로세스)

 

실행 중인 상태의 프로그램을 프로세스 또는 태스크라고 하며, 멀티태스킹을 지원하는 운영체제에서는 여러 개의 프로세스에 CPU와 메모리 자원을 안정되게 분배해주어야 한다.

 

 

Thread(스레드)

 

CPU가 독립적으로 처리하는 하나의 작업 단위를 의미한다.

 

 

 

 

프로세스들은 독립된 공간을 가지고 있지만 프로세스 내의 스레드의 경우 독립된 register와 스택 영역을 가지면서 code, data, files 영역은 스레드끼리 공유하고 있음을 알 수 있다.

 

 

 

* 스레드의 장점

- 시스템의 자원소모과 줄어든다.

- 프로그램의 응답 시간이 단축된다.

- 프로세스 간 통신 방법에 비해 스레드간의 통신 방법이 더 간단하다.

 

* 스레드의 단점

- 프로세스 밖에서 각 스레드를 제어할 수 없다.

- 여러 개의 스레드를 이용하는 프로그램을 작성하는 경우 저의 깊게 설계해야 한다.

- 프로그램 디버깅이 어렵다.

 

반응형

'Operating System' 카테고리의 다른 글

SISD / SIMD / MISD / MIMD  (0) 2022.03.02
인터럽트(Interrupt)  (0) 2015.08.14
시스템 콜(System Call)  (0) 2015.08.14
프로세서 vs 프로세스  (0) 2015.07.20
프로세스간 통신(IPC - InterProcess Communication)  (0) 2015.07.08

댓글