스레드
스레드(thread)의 기본적인 정의는 프로세스안의 실행의 흐름단위이다.
프로세스가 껍데기라면 실제로 일을 하는 것은 스레드가 하는 것이라고 보면된다.
일반적인 경우에는 한 프로세스당 스레드 한개를 가지고있지만 멀티 스레드를 하게되면 한 프로세스에 여러개의 스레드를 가질 수있다.
스레드는 프로세스 안에서 동작하며 code section, data section, heap secion을 프로세스와 공유하고 stack section은 별도의 stack section을 가지고있다. <밑 사진참조>
Context switching을 할때 Stack section만 swithching 하면 되기때문에 프로세스 스위칭 보다 빠르다.
스레드 간 공유가 가능하여 편리하지만 자원 동기화의 문제가 있다.
스레드의 장 단점
장점 |
- 시스템의 Throughput(처리량)이 향상된다. - 자원소모가 줄어든다. - 응답 시간이 단축된다. |
단점 |
- 다른 프로세스에서 스레드를 제어할 수 없다. - 여러 개의 스레드를 사용할 때는 자원 공유의 문제가 발생 할 수 있으므로 신중하게 사용 해야한다. - 디버깅이 어려워진다. |
R1. http://includestdio.tistory.com/6
'OS > theory' 카테고리의 다른 글
프로세스(Process) (0) | 2016.08.30 |
---|---|
CPU - CISC/RISC (0) | 2016.08.03 |