HS_development_log

쓰레드 본문

CS/운영체제

쓰레드

DevHyeonseong 2020. 9. 28. 05:49
반응형

쓰레드

쓰레드(Thread)

  • CPU 이용의 기본 단위
  • 프로세스 내에서 실행되는 기본 단위
  • LWP(Light Weight Process)

프로세스와 쓰레드

  • 프로세스가 여러 쓰레드를 가진다면 동시에 하나 이상의 작업들을 수행할 수 있음
  • 같은 프로세스에 속한 쓰레드들은 프로세스의 코드, 데이터, 열린 파일 등을 공유함
  • 각 쓰레드는 각자 레지스터 집합(PC 레지스터 포함), 스택을 가짐

싱글 쓰레드 vs 멀티 쓰레드

  • 싱글 쓰레드 : 프로세스 내의 쓰레드가 1개인 경우

  • 멀티 쓰레드 : 프로세스 내의 쓰레드가 2개 이상인 경우

    2

멀티쓰레드의 장점

  • 빠른 응답성
    • 프로그램의 한 부분을 수행하다가 중단되어도 다른 부분이 계속 수행할 수 있어 사용자에게 응답성을 좋게 할 수 있다
  • 자원 공유
    • 쓰레드는 프로세스 내의 code, data, heap 영역을 공유한다
  • 경제성
    • 프로세스의 생성은 메모리 할당 등 비용이 많이 들지만, 쓰레드는 프로세스 내에서 생성되며 비용이 적게 든다
  • 멀티 프로세서의 활용
    • 각 쓰레드가 다른 CPU에서 수행될 수 있으므로 멀티 프로세서의 여러 CPU를 활용할 수 있다

쓰레드의 종류

  • 사용자 수준의 쓰레드 라이브러리
    • 라이브러리에서 쓰레드를 관리하며 응용프로그램에게 쓰레드 생성 등의 관련 함수 제공
  • 커널 쓰레드
    • 쓰레드를 커널에서 직접 지원. 운영체제가 쓰레드 생성 등의 쓰레드 관리를 위한 시스템 호출을 제공한다

쓰레딩 모델

One-to-One

  • 각 사용자 수준 쓰레드가 하나의 커널 쓰레드에 대응된다

  • 한 쓰레드가 시스템 호출을 하여 중지 상태가 되었을 때, 다른 쓰레드가 실행 될 수 있다

  • 각 쓰레드 마다 커널 쓰레드를 만들어야 하므로 커널에 오버헤드 발생

    3

Many-to-One

  • 여러 개의 사용자 수준 쓰레드가 하나의 커널 쓰레드에 대응된다
  • 한 쓰레드가 시스템 호출을 하면, 전체 쓰레드가 중지 상태가 된다
  • 쓰레드들을 다중 프로세서에서 병렬로 실행할 수 없다

Many-to-Many

  • 여러개의 사용자 수준의 쓰레드가 동일한 개수 또는 적은 개수의 커널 쓰레드에 대응된다
  • One-to-One과 Many-to-One 의 장단점을 갖게 된다.
    캡처
반응형

'CS > 운영체제' 카테고리의 다른 글

CPU 스케줄링  (0) 2020.09.28
멀티 프로세스 vs 멀티 쓰레드  (0) 2020.09.28
프로세스  (0) 2020.09.28
프로세서 / 메모리 / 인터럽트  (0) 2020.04.24
운영체제 정의 / 기능 / 사례  (0) 2020.04.04