OS/theory / / 2016. 8. 30. 15:16

스레드(thread)

스레드

 

 

스레드(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
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유