CS/OS

6. Process2 & 7. Process3

hjkim0502 2022. 3. 8. 18:42
  • Thread (lightweight process): CPU의 수행 단위
    • thread의 구성: program counter, register set, stack space (CPU 수행 관련 정보)
    • thread끼리 공유하는 부분(=task): code section, data section, OS resources
    • heavyweight process: 하나의 thread
    • 다중 스레드로 구성되면 하나의 서버 스레드가 blocked 상태여도 다른 스레드가 실행되어 빠른 처리 가능
    • 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율과 성능 향상
      • 동일한 일을 수행하는 프로세스를 여러개 실행하면 메모리 낭비가 심함
      • 스레드 생성, CPU switching이 프로세스 생성, context switching보다 오버헤드가 훨씬 적다
    • (다중 CPU일때) 다중 스레드 사용시 병렬성 ↑ (각각의 스레드가 서로다른 CPU에서 실행)
    •  

  • Implementation of Threads
    • 커널 스레드: 커널이 다중 스레드의 존재를 알며 CPU 스케줄링 하듯이 관리
    • 사용자 스레드: 커널은 다중 스레드인지 모르고, 사용자 프로세스가 라이브러리의 도움을 받아 관리
      • 커널이 모르기 때문에 구현 상으로 약간의 제약이 있을 수 있음
    • 실시간 기능을 지원하는 스레드도 있음

 

출처: https://core.ewha.ac.kr/publicview/C0101020140321141759959993?vmode=f 

https://core.ewha.ac.kr/publicview/C0101020140321143516139010?vmode=f