Thread

제롬·2023년 2월 19일
0

운영체제(OS)

목록 보기
1/2

Thread의 개념

  • 프로세스는 자원을 할당받고 그 자원을 제어함으로써 원하는 목적을 달성한다.
  • 자원을 제어하기 위한 기능을 담당하는 것을 Thread라고 한다.
  • 자원을 제어하는 Thread는 하나의 프로세스 내에서 여러개가 존재 할 수 있다.

자원과 Thread

  • 위 그림을 보면 하나의 자원(코드, 전역데이터, 힙)에 대한 부분을 여러 Thread(Thread1, Thread2, ..., Thread n)가 공유하는 것을 알 수 있다.

  • 즉, 하나의 프로세스가 자원을 할당받으면 해당 프로세스 내에서 작업의 실행단위인 여러 Thread가 각각 이 자원들을 공유하며 제어할 수 있다.

메모리 관점에서 Thread

  • 같은 프로세스들의 Thread 들은 동일 주소공간 공유
  • 여러 Thread 들은 각각의 작업영역(스택영역)을 할당받는다.
  • Thread 들은 각 작업영역에서 지역 데이터를 만들고 그 안에서작업을 한다.
  • 코드 영역에서 각 Thread 의 프로그램 포인터(PC)로 작업 흐름을 제어한다.

Single Thread vs Multi Thread

- 자원을 할당받은 프로세스가 하나의 스레드만 가지고 있을경우 단일 스레드 프로세스라고 한다. - 자원을 할당받은 프로세스가 자원을 공유하는 여러개의 프로세스를 가지고 있을경우 멀티 스레드 프로세스라고 한다.

Thread의 특징

  • Light Weight Process(LWP)
    • 프로세스는 자원+제어 의 개념으로 이루어져 있지만 Thread는 자원을 공유하기 때문에 제어의 개념만 가지고 있어 일반 프로세스보다 가볍기 때문에 LWP 라고 불리기도 한다.
  • 프로세서 활용의 기본 단위
    • CPU를 활용하는 기본 단위로 Thread가 여러개면 프로세서 여러개를 동시에 사용이 가능하다.
  • 구성요소
    • Thread ID
    • Register Set (SP, PC 등) : 제어를 위한 Set
    • Stack (i.e.local data) : 자신만의 작업영역
  • 제어 요소 외 코드, 데이터 및 자원들은 동일 프로세스의 다른 Thread 들과 공유
  • 전통적 프로세스 = 단일 Thread 프로세스

스레드의 장점

  1. 사용자 응답성
    • 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업을 계속 처리가 가능하다.
  2. 자원 공유
    • 자원을 공유해서 효율성 증가 (커널의 개입을 피할 수 있다.)
  3. 경제성
    • 프로세스의 생성, context switch에 비해 효율적이다.
  4. 멀티 프로세서(processor) 활용

스레드의 장점 - 사용자 응답성

[다중 스레드를 통한 워드 편집기 프로세스]

  • 입출력 발생시 프로세스는 작업을 중지한다.
  • 사용자가 키보드를 입력할경우 이미지나 텍스트를 보여주는 작업은 동작하지 못한다.
  • 이를 해결하기 위해서 여러 스레드로 나누어 각각의 작업을 스레드에 할당하여 사용하게 하면 모든 작업을 동시에 사용가능하다.

스레드의 장점 - 자원공유, 경제성

  • 프로세스는 하나의 자원을 공유하지 못한다.
  • 여러 프로세스가 하나의 자원을 번갈아 가면서 사용하기 위해 context switch 가 발생한다. context switch는 커널이 개입하는 매우 비싼 연산이기 때문에 되도록이면 사용을 피하는것이 좋다.
  • 같은 프로세스내의 멀티 스레드는 자원을 공유하기 때문에 자원을 보다 효율적으로 사용이 가능하다.

스레드의 장점 - 멀티 프로세서 활용

  • Thread 는 프로세서(processor)를 활용하는 기본 단위이다.
  • 여러개의 Thread를 사용하면 여러개의 CPU 코어를 동시에 사용할 수 있다.
  • 병렬처리를 통해 성능 향상이 가능하다.

[관련 면접질문]
쓰레드란?
쓰레드의 특징
쓰레드의 장점
프로세스와 쓰레드의 차이
멀티 프로세스와 멀티 쓰레드의 특징
멀티 프로세스 대신 멀티 쓰레드를 사용하는 이유는?
멀티쓰레드의 동시성과 병렬성에 대해 설명
멀티 쓰레드 환경에서의 주의사항

[Reference]
운영체제 강의자료 - 한국기술대학교(김덕수)
운영체제 강의 - 한국기술대학교(김덕수)

0개의 댓글