CS/운영체제

[운영체제] KOCW 반효경 교수님 강의 - 7. Process 3

pythaac 2022. 3. 30. 01:56

  • Thread의 장점
    • 빠른 응답성
    • 자원 절약(공유되는 메모리) -> CPU 수행 관련 정보만 따로 가짐
    • 다중쓰레드의 협력으로 throughput을 높일 수 있음
    • CPU가 여러 개일 경우 병렬성을 높일 수 있음

  • Thread의 장점 정리
    • Responsiveness
      • 웹 브라우저에서 html 문서를 가져옴
      • 렌더링 중에 image가 필요함
      • image를 요청(blocked)
      • [쓰레드] 하나의 쓰레드가 image를 요청(blocked)
      • [쓰레드] 다른 쓰레드는 이미 가져온 텍스트를 렌더링
      • [쓰레드] 더 빨리 문서를 볼 수 있음
    • Resource Sharing
      • 똑같은 작업을 하는 두 쓰레드가 자원을 공유
    • Economy
      • creating
        - 프로세스를 생성하는 것보다 쓰레드를 생성하는 cost가 더 적게 소모
        - CPU 수행 관련(stack, PC, register 등) 정보만 생성
      • CPU switching
        - 프로세스의 context switching보다 cost가 적음
        - 캐시 메모리 flush 등 프로세스 cost가 큼
        - 대부분 문맥을 그대로 사용, CPU 수행 관련 정보만 교환
    • Utilization of MP Architectures
      • 멀티프로세서 환경에서 각 쓰레드가 서로 다른 processor에서 병렬로 처리

  • 쓰레드의 구현 방식
    • Kernel Thread
      • 운영체제의 지원을 받는 쓰레드
      • 쓰레드가 여러 개 있다는 사실을 운영체제 커널이 알고 있음
      • 쓰레드에서 다른 쓰레드로 넘어갈 때
        - CPU 스케줄링 하듯 커널이 쓰레드에서 쓰레드로 CPU를 넘겨줌
    • User Thread
      • 라이브러리 형태로 구현
      • 쓰레드가 여러 개 있다는 사실을 운영체제 커널이 모름
      • 프로세스 스스로 여러 개의 쓰레드를 관리