230207 - 스레드

Cornchip·2023년 2월 7일
0

Today-I-Learned

목록 보기
14/28

목차
1. 스레드(Thread)란
2. 스레드의 분류
3. 스레드 사용의 장점



1. 스레드(Thread)

  • 스레드는 프로세스 내에서의 작업 단위로서 시스템의여러 자원을 할당받아 실행하는 프로그램의 단위이다.

    < 프로세스 >
    프로세스는 일반적으로 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미하며, 작업(Job), 태스크(Task)라고도 한다.


  • 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나 이상의 스레드가 존재하는 경우에는 다중 스레드라고 한다.
  • 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 한다.
  • 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당한다.
  • 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능하다.


2. 스레드의 분류

  • 사용자 수준의 스레드
    • 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.
    • 속도는 빠르지만 구현이 어렵다.

  • 커널 수준의 스레드
    • 운영체제의 커널에 의해 스레드를 운용한다.
    • 구현이 쉽지만 속도가 느리다.


3. 스레드 사용의 장점

  • 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있다.
  • 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.
  • 응용 프로그램의 응답 시간(Response Time)을 단축시킬 수 있다.
  • 실행 환경을 공유시켜 기억장소의 낭비가 줄어든다.
  • 프로세스들 간의 통신이 향상된다.
  • 스레드는 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신한다.
profile
cornchip

0개의 댓글