OS - 스레드

sunkeydokey·2022년 12월 13일
0

운영체제

목록 보기
3/9
post-custom-banner

HPC Lab. KOREATECH 채널 OS 강의를 듣고 정리

배우게 된 것

  • 스레드의 개념
  • 스레드의 구성요소
  • 스레드 활용의 장점
  • 스레드의 구현

스레드의 개념

  • Light Weight Process (LWP)
  • 프로세서(CPU) 활용의 기본 단위

게임을 한다고 생각하면
스레드가 하나인 프로세스만 사용하는 경우 화면 송출, 마우스와 키보드 입력 등 모든 행위가 각각의 작업을 위해 Context switching을 발생시킨다.
여러 개의 스레드를 사용해 자원을 공유하면 여러 작업을 동시에 수행할 수 있다.

스레드의 구성요소

  • Thread ID
  • Register set
  • Stack

스레드 활용의 장점

  • 사용자 응답성 (Responsiveness)
    - 일부 스레드의 처리가 지연되어도 다른 스레드는 작업을 계속 처리할 수 있음
  • 자원 공유 (Resource Sharing)
    - 자원을 공유하여 커널의 개입을 피하며 효율성을 증가시킬 수 있음
  • 경제성 (Economy)
    - 프로세스의 생성 및 문맥 교환에 비해 효율적
  • 멀티 프로세서 활용
    - 병렬 처리를 통해 성능 향상 가능

스레드의 구현

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

사용자 수준 스레드

  • 사용자 영역의 스레드 라이브러리로 구현된다.
  • 커널은 스레드의 존재를 모른다.
    - 커널의 관리를 받지 않아 유연한 관리가 가능하고 이식성이 높다.
    - 다만, 커널은 프로레스 단위로 자원을 할당하기 때문에 하나의 스레드가 Block 상태가 되면 모든 스레드가 대기하게 된다.

커널 수준 스레드 (Kernel Threads)

커널 수준 스레드

  • OS(Kernel)가 직접 관리
  • 커널 영역에서 스레드의 생성과 관리를 수행하여 문맥 교환 등 부하가 크다.
  • 커널이 각 스레드를 개별적으로 관리하여 프로세스 내 스레드들이 작업을 병행 수행을 할 수 있다.

혼합형 (n:m) 스레드

혼합형 (n:m) 스레드

  • n개의 사용자 수준 스레드와 m개의 커널 수준 스레드 (n > m)
    - 사용자는 원하는 수만큼 스레드를 사용
    - 커널 스레드는 자신에게 할당된 하나의 사용자 스레드가 block 상태가 되어도 다른 스레드를 수행할 수 있음 (병행 처리 가능)
  • 효율적이고 유연하다.
profile
내일은 더 잘하기
post-custom-banner

0개의 댓글