3-2 Process

Copes·2022년 10월 29일
0

OS

목록 보기
5/15

Thread

  • 프로세스 내의 실행 단위
  • Lightweight process라고도 부름

프로세스 내부에서

  • 프로세스 상태
  • 메모리 공간
  • 자원

등은 공유하고,

CPU 수행을 위한

  • Register
  • PC
  • stack

은 각 스레드가 독립적으로 가지고 있다.

스레드의 장점

  • 프로세스를 여러 개 할당하는 경우 Code, Data, Stack을 별도로 할당해야 하므로 메모리 낭비가 심할 수 있다.
  • 하나의 서버 스레드가 blocked(waiting)인 상태에서도 동일한 태스크 내의 다른 스레드가 실행(running)되어 빠른 처리를 할 수 있다.
  • 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있다.
  • 스레드를 사용하면 병렬성을 높일 수 있다.

스레드의 장점 정리

  • Responsiveness
    • 하나의 thread가 blocked된 경우 다른 thread는 지속적으로 동작할 수 있다.
  • Resource Sharing
    • Code, Data, 각종 자원을 공유하여 효율적
  • Economy
    • 생성, context switching으로 인한 overhead가 process에 비해 현저히 적다.(Solaris의 경우 위 두 가지 overhead가 각각 30배, 5배 적다.)
  • Utilization of MP Architecture
    • 각 스레드가 멀티프로세서 환경에서 병렬적으로 동작 가능

Kernel의 지원을 받으면 Kernel Thread

Library의 지원을 받으면 User Thread

0개의 댓글