상세 컨텐츠

본문 제목

Multi Process 와 Multi Thread

운영체제

by 승학이 2024. 3. 6. 18:01

본문

멀티 프로세스와 멀티 스레드 비교

  • 멀티 스레드는 멀티 프로세스보다 적은 메모리 공간을 차지하고 Context Switching이 빠릅니다.
  • 멀티 프로세스는 멀티 스레드보다 많은 메모리공간과 CPU 시간을 차지합니다.
  • 멀티 스레드는 동기화 문제와 하나의 스레드 장애로 전체 스레드가 종료될 위험이 있습니다.
  • 멀티 프로세스는 하나의 프로세스가 죽더라도 다른 프로세스에 영향을 주지 않아 안정성이 높습니다. 

두 방법은 동시에 여러 작업을 수행한다는 측면에서 유사한 면이 있습니다. 적용할 시스템에 따라 두 방법의 장단점을 고려하여 적합한 방식을 선택해야 합니다. 메모리 구분이 필요할때는 멀티 프로세스가 유리합니다. 반면에 Context switching이 자주 일어나고 데이터 공유가 빈번한 경우, 그리고 자원을 효율적으로 사용해야 되는 경우에는 멀티 스레드를 사용하는 것이 유리합니다. 

 

 

 

멀티 프로세스 & 멀티 스레드

멀티 프로세스 대신 멀티 스레드로 구현할 경우, 메모리 공간과 시스템 자원 소모가 줄어들게 됩니다. 하지만 멀티 스레드를 사용할 때는 스레드간 자원을 공유하기 때문에 동기화 문제가 발생할 수 있기 때문에 이를 고려한 프로그램 설계가 필요합니다. 

 

또한 프로세스 간의 통신(IPC)보다 스레드 간의 통신 비용기 적기 때문에 통신으로 인한 오버헤드가 적습니다.

 

 

 

 

Multi Thread가 Multi Process보다 좋은 점

멀티 프로세스를 이용하던 작업을 멀티 스레드로 구현할 경우, 메모리 공간과 시스템 자원 소모가 줄어들게 됩니다. 또한 프로세스를 생성하고 자원을 할당하는 등의 system call을 생략할 수 있기 때문에 자원을 효율적으로 관리할 수 있습니다. 뿐만 아니라 Context switching 시 캐시 메모리를 초기화할 필요가 없어서 속도가 빠릅니다. 

 

데이터를 주고 받을 때를 비교해보면, 프로세스간의 통신보다 멀티 스레드간의 통신 비용이 적기 때문에 통신으로 인한 오버헤드가 적습니다. 

 

 

 

 

Multi Thread가 Multi Process보다 안좋은점

스레드간의 자원 공유 시 동기화문제가 발생할 수 있어서 프로그램 설계 시 주의가 필요하고, 스레드 문제가 생기면 프로세스 내의 다른 스레드에도 문제가 생길 수 있습니다.

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

Multi thread  (0) 2024.03.06
Multi process  (1) 2024.03.06
Process  (0) 2024.03.06

관련글 더보기