HS_development_log

멀티 프로세스 vs 멀티 쓰레드 본문

CS/운영체제

멀티 프로세스 vs 멀티 쓰레드

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

멀티 프로세스 vs 멀티 쓰레드

멀티 프로세스

  • 장점
    • 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽는 것 이상으로 다른 영향이 확산되지 않는다.
  • 단점
    • CPU가 프로세스를 교체할때 발생하는 문맥교환으로 인해 오버헤드가 발생한다
    • 프로세스간 자원 및 정보를 교환하기 어렵다

멀티 쓰레드

  • 장점
    • 쓰레드 끼리는 자원을 공유하므로 메모리 공간과 시스템 자원소모가 줄어들게 된다.
    • 문맥 교환시, 캐시 메모리를 비울 필요가 없기 때문에 비용이 적고 빠르다
    • 따라서 시스템 처리량이 향상되고 자원소모가 줄어들며, 프로그램 응답 시간이 단축된다
  • 단점
    • 서로 자원을 공유하기 때문에 동시에 자원에 접근하면 동기화 문제가 발생할 수 있다
    • 하나의 스레드에 문제가 생기면 전체 프로세스가 영향을 받는다

왜 멀티 쓰레드를 사용할까?

  • 하나의 프로그램 안에서 여러 작업을 해결하는 것이 효율적이기 때문
  • 프로세스를 생성하고 관리하는 것 보다 쓰레드를 생성하고 관리하는 것이 자원을 효율적으로 관리할 수 있다
  • 문맥교환시 드는 비용이 프로세스보다 적다.
  • 프로세스간 통신보다 스레드간 통신이 더 효율이 좋다
반응형

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

동기화  (0) 2020.09.28
CPU 스케줄링  (0) 2020.09.28
쓰레드  (0) 2020.09.28
프로세스  (0) 2020.09.28
프로세서 / 메모리 / 인터럽트  (0) 2020.04.24