CS/OS

[운영체제] Chapter4 스레드 관리

ImYena 2021. 9. 9. 01:36
728x90

스레드 관리(Thread Management)

1. 프로세스(Process)와 스레드(Thread)

프로세스

  • 어떠한 목적을 위해 연산을 하는 과정
  • 자원을 할당받고 그 자원을 제어

 

스레드

  • 프로세스가 돌아가는 과정 중 "제어" 부분 의미
  • 하나의 프로세스에 여러 개의 스레드 존재 가능
  • 스레드는 프로세스와 다르게 하나의 자원을 여러 스레드가 공유 가능

 

2. 스레드(Thread)

  • LWP, Light Weight Process
    • 프로세서(CPU) 활용의 기본 단위
  • 구성요소
    • Thread ID
    • Register set : 제어를 위해 알고 있어야 하는 정보
    • Stack: 자신만의 작업 영역

 

자원과 프로세스 관점의 스레드 / 자원과 프로세스 관점의 스레드

 

 

스레드의 장점

  • 사용자 응답성 (Responsiveness)
    • 일부 스레드 처리가 지연되어도, 다른 스레드는 작업을 계속 처리할 수 있다.
  • 자원 공유 (Resource sharing)
    • 자원을 공유하므로 효율성이 증가한다.
  • 경제성 (Economy)
    • 프로세스의 생성, Context Switch에 비해 효율적이다.
  • 멀티 프로세서(multi-processor) 활용
    • 병렬처리를 통해 성능이 향상된다.

 

3. 스레드의 구현

사용자 수준 스레드 (User Thread)

  • 사용자 영역의 스레드 라이브러리로 구현
  • 다대일(n:1) 매핑
  • 커널은 스레드의 존재를 모름
    • 커널의 관리/개입를 받지 않음
      • 생성 및 관리의 부하가 적음
      • 높은 이식성(Portability)
    • 커널은 프로세스 단위로 자원 할당
      • 하나의 스레드가 block 상태가 되면, 모든 스레드 대기(Single-threaded Kernel인 경우)

 

커널 수준 스레드 (Kernel Threads)

  • OS(Kernal)가 직접 관리
    • 커널 영역에서 스레드의 생성과 관리 수행
    • 커널이 각 스레드를 개별적으로 관리
  • 일대일(1 : 1) 매핑

 

혼합형 (n : m) 스레드

  • n개 사용자 수준 스레드, m개의 커널 스레드 (n > m)
    • 사용자가 원하는 수만큼 스레드 사용
    • 커널 스레드는 할당된 하나의 사용자 스레드가 block 상태가 되어도, 다른 스레드 수행 가능(병행 처리)
  • 효율적이면서 유연

 


출처 : Youtube, HPC Lab. KOREATECH

728x90
반응형