본문 바로가기
CS 지식

멀티 프로세스와 멀티 스레드의 차이

by chanfficial 2023. 1. 15.

멀티 프로세스(Multi Process)

: 하나의 응용프로그램을 여러 개의 프로세스로 구성하며 여러 개의 프로세스가 협력하여 작업을 병렬처리 하는 것이다.

  각 프로세스 간 메모리 구분이 필요하거나 독립된 주소 공간을 가져야 할 때 사용한다.

 

장점

  • 독립된 구조이기 떄문에 안정성이 높다.
  • 여러 프로세스 중 하나가 죽는다 해도 문제가 확산되지 않는다.
  • 여러 개의 프로세스를 처리할 때 동일한 데이터를 사용하기 때문에 비용이 적게 든다.

단점

  • 멀티 스레드보다 많은 메모리 공간과 CPU를 차지한다.
  • 독립된 구조이기 때문에 작업량이 많을수록 오버헤드로 인한 성능 저하가 발생할 수 있다.

 


 

멀티 스레드(Multi Thread)

: 하나의 작업을 위해 프로세스에서 여러 스레드를 생성해 자원을 공유하며 작업을 나누어 수행하는 것이다.

 

장점

  • 프로세스를 생성하여 자원을 할당하는 시스템 자원 소모가 감소하여 자원의 효율성이 증가한다.
  • 스레드 간 작업량이 적어 context switching 이 빠르기 때문에 프로그램 응답시간이 단축된다.
  • 프로세스 내 스택 영역을 제외한 메모리 영역을 공유하기 때문에 통신 비용이 적게 든다.

단점

  • 자원을 공유하는 과정에서 동기화 문제가 발생할 수 있다.
  • 하나의 스레드에 문제가 발생하면, 전체 프로세스에 영향을 미친다.
  • 단일 프로세스 시스템의 경우 효과가 미미하다.

 

'CS 지식' 카테고리의 다른 글

동기(Synchronous)와 비동기(Asynchronous)  (0) 2023.02.06
[운영체제] 스케줄러  (0) 2023.02.05
프로세스(Process)와 스레드(Thread)의 차이  (0) 2023.01.15
SQL 과 NoSQL 의 차이  (0) 2023.01.08
교착상태(Dead Lock)  (0) 2023.01.08