새소식

iOS/CS

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

  • -

멀티 프로세스란?

멀티 프로세스란 여러개의 프로세스가 작업을 처리하는 것을 의미한다.

이렇게 말하면 너무 단순해 보일 수 있으니 추가로 설명을 붙이자면 여러개의 프로세스가 작업을 병렬적으로 처리하는 것이다.

보다 구체적으로 말하자면 하나의 작업에 여러개의 프로세스가 달라붙어 작업을 처리하고 있는 것이다.

멀티 스레드란?

멀티 스레드란 하나의 프로세스에서 여러개의 스레드가 작업을 처리하는 것이다.

스레드란 하나의 프로세스 내부에서 작업을 수행하는 단위를 의미하기에 하나의 프로세스에서 여러개의 작업이 처리되고 있다고 파악해도 될 것이다.

보다 구체적으로 말하자면 하나의 작업을 위하여 붙은 프로세스 내부에서 여러개의 스레드가 작업을 병렬적으로 처리하고 있는 것이다.

 

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

그렇다면 멀티 프로세스와 멀티 스레드의 차이점은 무엇일까?

위에서 얘기했듯이 결국 작업을 처리하기 위하여 여러개의 단위로 나누어서 병렬적으로 처리하는 것이 전부라면 왜 우리는 해당 과정을 이렇게 두개로 나누어서 처리하는 것일까?

 

쉽게 말하자면 처리비용 안전성으로 정의할 수 있을 것이다.

해당 내용을 알아보기 전에 우선은 간단하게 두 개념의 장점과 단점에 대해서 알아보자.

 

멀티 프로세스와 멀티 스레드의 장, 단점

  멀티 프로세스 멀티 스레드
장점 프로세스 중 하나가 문제가 발생하여도 다른 프로세스에서 문제가 없다. (안전성이 높다) 시스템 처리가 용이하다(처리비용이 낮다)
단점 Context Switching이 자주 일어날수록 오버헤드가 발생하여 성능 저하가 발생할 수 있음 (처리비용이 높다) 스레드 간의 동기화 문제 발생 가능성 유 (안전성 낮음)

 

* Context Switching이란? : CPU는 한번에 하나의 Process만 실행이 가능하다. 그렇기에 CPU에서 여러 개의 프로세스를 처리하기 위해 프로세스를 돌아가는 과정을 Context Switching이라고 한다.

 

멀티 프로세스의 경우에는 간단하게 설명을 하자면 PC용 구글을 생각하면 쉬울 것이다. 

PC용 구글은 대표적인 멀티 프로세스로 이루어진 프로그램이다.

해당 프로그램의 장점을 보자면 하나의 탭에서 문제가 발생하더라도 다른 탭에서 해당 문제가 공유되지 않는다. 또한 메모리를 다른 프로그램보다 많이 먹는 것을 알 수가 있다.

이것이 처리 비용이 높으며 안전성이 높은 멀티 프로세스의 특징이다.

* 모바일용 구글의 경우에는 유튜브에 들어가서 음악을 틀고 다른 탭으로 가면 음악이 멈추는 것을 알 수가 있다. 이를 통하여 모바일 구글의 경우에는 멀티 프로세스가 아니라는 것을 알 수가 있다.

 

반대로 멀티 스레드의 경우에는 쉽게 보면 모바일에서 브라우저를 사용할때 하나의 사이트에서 오류가 발생하면 무조건 브라우저를 꺼야 하는 경우를 겪었을 것이다.

물론 pc에서도 이와 같은 오류를 겪기도 하지만 PC의 경우에는 하나의 탭을 닫음으로서 해결이 되는 경우가 발생하는 것에 비하여 모바일의 경우에는 기본적으로 브라우저 프로그램 자체를 껴야 하는 방식으로 기동이 될 것이다.

이와 같은 점이 멀티 스레드와 멀티 프로세스의 가장 큰 차이가 될 것이다.

결론

멀티 프로세스의 경우에는 처리 비용이 높지만 안전성이 높고 멀티 스레드의 경우에는 처리 비용이 낮지만 안전성이 보다 떨어진다.

 

참조

https://livenow14.tistory.com/67

 

[OS]멀티 프로세스와 멀티 스레드의 차이는 무엇일까?

멀티 프로세스와 멀티 스레드는 둘 다 시스템의 컴퓨팅 성능을 높이는 데 사용되는 처리방식의 일종이에요. 혼용되는 키워드 실행단위 cpu core에서 실행하는 하나의 단위로 프로세스와 스레드를

livenow14.tistory.com

 

https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-multi-process-multi-thread

 

👩‍💻 멀티 프로세스 vs 멀티 스레드 비교 💯 완전 총정리

멀티 프로세스와 멀티 스레드는 한 어플리케이션에 대한 처리방식 이라고 보면 된다. 단순히 프로그램을 여러개 띄워놓는 것이 멀티 프로세스가 아니라 이 둘은 언제 어느때에 어떤 방식으로

inpa.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.