[운영 체제] 프로세스 _2 (Process)

Yongmin Park·2022년 9월 4일
0

운영체제

목록 보기
4/4
post-thumbnail

스레드 (Thread)

스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다.

쉽게말해 프로세스 하나에 여러개의 CPU 수행단위를 두는 것이다. (CPU를 수행하는 단위)

  • Thread 의 구성
    • program counter
    • register set
    • stack space
  • Thread가 동료 thread와 공유하는 부분(=task)
    • code section
    • data section
    • OS resources
  • 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다.
  • 다중 스레드로 구성된 테스크 구조에서는 하나의 서버 스레드가 blocked (waiting)상태인 동안에도 동일한 테스크 내의 다른 스레드가 실행 되어 빠른 처리를 할 수 있다.
  • 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율과 성능향상을 얻을 수 있다.
  • 스레드를 사용하면 병렬성을 높일 수 있다.

스레드의 장점

  1. 응답성
    • 예를들어 여러개의 스레드 중 먼저 종료된 스레드가 있을 때 화면에 띄워 주고 나머지 스레드는 계속해서 실행할 수 있기 때문에 사용자 입장에서 빨리 결과를 볼 수 있다.
  2. 자원 공유
    • 하나의 프로세스를 만들고 여러개의 스레드를 만들면 자원을 효율적으로 사용할 수 있다.
  3. 경제성
    • 스레드를 추가하는 것은 오버헤드가 적다. (PCB를 추가하는 것은 오버헤드가 크다.)
  4. Utilization of MP
    • 스레드가 여러개 있으면 효율적으로 실행이 가능하다.
profile
기록으로 기적을

0개의 댓글