- 프로세스는 1개이기 때문에 PCB는 1개만 만들어진다.
- 그런데 프로세스 안에 스레드가 여러 개 있을 경우 PC, Registers 관련한 정보는 각각 별도의 Copy를 가지고 있게 된다.
- single thread일 경우 registers, stack은 각각 1개씩 있다.
- multi thread일 경우 registers, stack은 별도로 각각 1개씩 있다.
Thread의 장점
- Responsiveness(응답성)
- 예) 멀티스레드 웹
- 하나의 스레드 block 상태 : 네트워크 통신
- 다른 스레드 계속 동작 : 화면 표시 등 작업
- Resource Sharing(자원 공유)
- n개의 스레드는 프로세스 내의 binary code, data, resource를 공유할 수 있다.
- Economy(경제성)
- creating & CPU switching thread(rather than a process)
- 프로세스 생성보다 스레드 생성 비용이 싸다.
- 마찬가지로 CPU 스위칭 또한 프로세스보다 스레드가 더 싸다.
- Solaris의 경우 위 두 가지 overhead가 각각 30배(생성), 5배(컨텍스트 스위칭)
- Utilization of MP Architectures(Multi Processor)
- 각각의 스레드가 서로 다른 CPU에서 병렬적으로 작업 가능
출처 : http://www.kocw.net/home/cview.do?lid=29d9a718cff884c3