CS

Thread 구조 및 특징(Process와의 차이)

cob 2024. 9. 10. 09:22

선행 학습

2023.01.13 - [CS] - 프로세스 메모리(스택, 힙, 데이터 영역, 코드 영역) 구조 개념 및 특징

 

 

Thread란? 
프로세스가 운영체제로부터 할당받은 자원을 이용하는 실행 단위 또는 흐름의 단위로 하나의 프로세스에는 반드시 하나 이상의 스레드를 갖는다. 각각의 스레드는 독립적인 Stack 영역은 할당받지만, 프로세스가 가지고 있는 Heap, Data, Code 영역은 공유한다.

Thread

 

 

Process vs Thread 

 

Process 

  • 여러 개의 프로세스 중에 하나가 문제가 발생해도 다른 프로세스에 영향을 미치지 않는다. (안전성)
  • 프로세스 간 전환(Context Switch) 시 레지스터, 캐시 메모리 초기화 등 무거운 작업으로 시간과 비용이 발생한다.
  • 프로세스 간 통신 하기 위한 방법이 복잔해 오버헤드가 크다.
  • 프로세스 생성 시 독립적으로 메모리가 할당되기 때문에 리소스 비용이 크다.

 

 

Thread

  • 여러 개의 스레드 중 하나만 문제가 발생해도 전체 스레드에 영향을 미치게 된다.
  • 프로세스의 메모리 영역을 공유하기 때문에 Context Switch 시간이 적고 리소스를 효율적으로 사용한다.
  • 스레드 간 통신 비용이 적어 오버헤드가 작다.
  • 스레드 간 공유 메모리(Static)로 동시 접근에 따른 동기화 문제가 발생한다.
반응형