Thread
이화여대 ‘반효경’교수님의 Operating Systems강의 중, ‘Process 2’강의를 수강하고 학습합니다.
- 스레드(또는 경량 프로세스)는 CPU 사용의 기본 단위입니다.
- Thread의 구성
- program counter
- register set
- stack space
- Thread가 동료 thread와 공유하는 부분(=task)
- code section
- data section
- OS resources
- 전통적인 개념의 heacyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있습니다.
- 다중 스레드로 구성된 태스크 구조에서 하나의 서버 스레드가 blocked(wationg) 상태의 동안에도 동일한 태스크 내의 다른 스레드가 실행(running)동안 빠른 처리를 할 수 있습니다.
- 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있습니다.
- 스레드를 사용하면 병렬성을 높일 수 있습니다.
Benefits of Threads (스레드의 이점)
- Responsiveness
- 예) 다중 스레드 웹 - 한 스레드가 차단되면(예: 네트워크) 다른 스레드가 계속됩니다(예: 디스플레이)
- Resource Sharing
- n개의 스레드는 프로세스의 바이너리 코드, 데이터, 리소스를 공유할 수 있습니다.
- Economy
- 생성 및 CPU 스위칭 스레드(프로세스가 아닌)
- Solaris의 경우 위 두가지 overhead가 각각 30배, 5배
- Utilization of MP(Multi processer) Architectures
- 각 스레드는 다른 프로세서에서 병렬로 실행될 수 있습니다.