2017년 4월 2일 일요일

08. 프로세스와 쓰레드 이해6

5) 쓰레드(Thread)
  : 실행되는 프로세스의 내적 맥 혹은 흐름
  : 모든 프로그램에는 최소한 1개 이상의 맥이 있음.
   오직 1개인 경우 단일 쓰레드(Single-Thread)

Thread
             단일 쓰레드                                               다중 쓰레드

 * 다중 쓰레드(Multithread)
   : 하나의 프로그램에 2개 이상의 맥이 있는 개념
   : 예시)
     Web 브라우저에서 화면을 출력하는 쓰레드와 데이타 읽어 오는 쓰레드 존재
     동영상 플레이어 에서 화면 출력 쓰레드, 동영상 로드하는 쓰레드
     워드에서 키보드 입력 받는 쓰레드, 오타를 표시하는 스레드, 자동 저장 쓰레드

 * 다중 쓰레드(Multithread)의 구현
   : TSS(Time Sharing System)처럼 일정 시간이 지나면 각 쓰레드를 돌아가며 실행함.
   : 현대 대부분의 프로그램은 다중 쓰레드로 구현됨.
   : 또한 현대의 프로세스는 맥락 교환의 단위가 프로세스가 아니고 쓰레드임
   : Code, Data, Files은 공유하고 Registers, Stack, PC 등은 공유하지 않음.


 * 쓰레드(Multithread)의 특징
  : 프로세스에서 실행 제어만 분리한 실행단위이다.
  : 사용자에 대한 응답성을 증가시킨다.
  : 프로세스의 자원과 메모리를 공유한다. 따라서 오버헤드가 줄어든다.
  : 다중 프로세서 구조에서 각 쓰레드는 다른 프로세서에서 병렬로 실행될 수 있다.


댓글 없음:

댓글 쓰기