반응형
Notice
Recent Posts
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Today
Total
관리 메뉴

H-Log

[운영체제] 스레드 (thread) 본문

dev-log/cs

[운영체제] 스레드 (thread)

hong6v6 2023. 9. 27. 14:30
반응형

스레드

  • 경량 프로세스라고도 불림 (LWP, Light weight Process)
  • 프로세스에서 실행 제어만 분리한 실행 단위
  • CPU에 작업을 요청하는 실행 단위
  • CPU가 처리하는 작업의 단위는 스레드
    • 운영체제 입장에서 작업단위 : 프로세스
    • CPU 입장에서 작업단위 : 스레드

멀티 태스트 / 멀티 스레드

  • 멀티 태스크 : 여러개의 프로세스로 구성
  • 멀티 스레드 : 하나의 프로세스에 여러개에 스레드로 구성 → 스레드별로 작업 → CPU 부담이 적어짐
  • 멀티 태스킹 : 운영체제가 CPU한테 작업 시간을 잘게 쪼개어 주는 것
  • 멀티 프로세싱 : 여러개의 CPU로 여러개 스레드를 동시에 처리
  • CPU 멀티 스레드: 하나의 스레드를 잘게 쪼개어 동시에 처리하는 병령기법

멀티스레드 장점

  • 응답이 빠름
  • 자원 공유
  • 효율성 향상
  • 다중 CPU지원

멀티스레드 단점

  • 모든 스레드가 자원을 공유 → 하나의 문제가 전체에 영향

멀티스레드 모델

  • 사용자 스레드
    • 라이브러리에 의해 구현된 일반적인 스레드
    • 1 to N 모델
    • 커널의 스레드 1개 + 사용자 스레드 여러개 연결
    • 문맥교환X → 라이브러리가 직접 처리
    • 1개의 커널 스레드가 입출력 작업을 하면 모든 사용자 스레드가 대기상태에 들어감
    • 여러개의 CPU 사용할 수 없음
  • 커널 스레드
    • 운영체제의 커널이 직접 생성하고 관리하는 스레드
    • 1 to 1 모델
    • 커널 스레드 1개 + 사용자 스레드 1개 매칭
    • 독립적이라 하나의 스레드가 대기상태에 가도 상관 없음
    • 멀티 CPU 사용 가능
    • 보안에 강하고 안정적임
    • 문맥교환이 발생
    • 문맥교환할 때 오버헤드 때문에 느리게 작동
  • 멀티레벨 스레드
    • 사용자 스레드와 커널 스레드의 혼합방식
    • M to N 모델
    • 하나의 커널 스레드가 대기에 들어가면 다른 커널 스레드가 작업
    • 문맥교환 시 오버헤드가 있음 (커널스레드 보다는 작음)
    • 사용자 스레드만큼 빠르지는 않음
    • 빠르게 작업이 필요 → 사용자 스레드 작동
    • 안정적 작업 필요 → 커널 스레드 작동
반응형
Comments