컴퓨터왕/운영체제

프로세스와 스레드

찌 ㅋ 2020. 3. 17. 01:44

프로세스 VS 스레드 차이점

  • 프로세스는 자신만의 고유 공간과 자원을 할당받아 사용
  • 스레드는 다른 스레드와 공간, 자원을 공유하면서 사용

 

 

멀티 프로세스 대신 멀티 스레드를 사용하는 이유

  1. 자원의 효율성 증대
    • 멀티 프로세스로 실행되는 작업을 멀티 스레드로 실행할 경우 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리할 수 있음
      • 프로세스 간의 Context Switching 시 단순히 CPU 레지스터 교체 뿐만 아니라 RAM과 CPU 사이의 캐시 메모리에 대한 데이터까지 초기화되므로 오버헤드가 큼
    • 스레드는 프로세스 내의 메모리를 공유하기 때문에 독립적인 프로세스와 달리 스레드 간 데이터를 주고 받는 것이 간단해지고 시스템 자원 소모가 감소
  2. 처리 비용 감소 및 응답 시간 단축
    • 프로세스 간의 통신(IPC)보다 스레드 간의 통신 비용이 적음
      • 스레드는 Stack 영역을 제외한 모든 메모리를 공유하기 때문
    • 프로세스 간의 전환 속도보다 스레드 간의 전환 속도가 빠름
      • Context Switching 시에 Stack영역만 처리하면 되기 때문

'컴퓨터왕 > 운영체제' 카테고리의 다른 글

인터럽트  (0) 2020.03.17
스레드  (0) 2020.03.17
프로세스  (0) 2020.03.17
운영체제란  (0) 2020.03.17