1. 스레드의 장점
a) 사용자에 대한 응답성 향상
- 하나의 프로세스 안에서 하나 이상의 작업(멀티 테스킹, 멀티 프로세싱)을 가능하기 때문
b) 자원 공유의 효율성
- 프로세스간의 자원 또는 데이터 공유를 위한 IPC와 같은 번거로운 작업이 필요없음
- 프로세스 내부에서 스레드 간의 소통이 가능하기 때문
- 번거로운 작업이 필요 없기에 그만큼 자원을 적게 사용한다는 의미
c) 작업 분리를 통한 코드의 간결화
- 각 스레드의 작업에 맞게 코드를 작성하기 때문
- 하지만, 개발자가 작성하기 나름.
- 즉, 개발자의 실력에 따라 편차가 크다.
2. 스레드의 단점
a) 여러 스레드 중 하나에만 문제가 생겨도, 전체 프로세스가 영향을 받음
- 스레드는 하나의 프로세스 안에 존재함
- 여러 스레드 중 하나라도 문제가 생기면 프로세스 자체에 문제가 발생한 것과 동일
b) 성능 저하
- 다수의 스레드 사용으로 인해, Context Switching이 너무 많이 발생하여 성능이 저하된다(과부하)
3. 프로세스와 스레드 비교분석
프로세스 | 스레드 |
독립적으로 존재 | 프로세스의 서브셋(하부 요소)으로 존재 |
독립적인 자원(=데이터) 보유 | 프로세스의 자원(=데이터)을 사용/공유 |
독립적인 주소영역(가상, 물리 주소) | 스레드는 주소영역을 공유 |
IPC기법을 통한 통신 | 특별한 과정없이 소통가능 |
'컴퓨터공학기초 개념 > 운영체제' 카테고리의 다른 글
27. 스레드 동기화 이슈 해결방법 (0) | 2021.05.11 |
---|---|
26. 스레드(Thread) - 동기화(Synchronization) (0) | 2021.05.11 |
24. 스레드란? (thread 개념) (0) | 2021.04.29 |
23. 코드를 통한 프로세스 실행과정의 이해 (0) | 2021.04.28 |
22. 프로세스 - IPC 기법(signal, socket) (0) | 2021.04.27 |
댓글