취업/기술면접

[CS / 운영체제(OS)] ep16. multi process와 multi thread를 비교설명해 주세요.

터틀넥 2023. 6. 7. 14:16

🤔 면접 질문

 

Q1. multi process multi thread를 비교설명해 주세요.

 

A1. multi process multi thread의 차이점은 다음과 같습니다.

  • multi threadmulti process보다 적은 메모리 공간을 차지하고 Context Switching이 빠릅니다.
  • multi processmulti thread보다 많은 메모리공간CPU 시간을 차지합니다.
  • multi thread동기화 문제하나의 thread 장애전체 thread 종료될 위험이 있습니다.
  • multi process하나의 process죽더라도 다른 process영향을 주지 않아 안정성이 높습니다.

 

 

 

💡 면접🐕🍯 tip

 

 두 방법은 동시에 여러 작업을 수행한다는 측면에서 유사한 면이 있다. 적용할 시스템에 따라 두 방법의 장단점을 고려하여 적합한 방식을 선택해야 한다.

 

메모리 구분이 필요할 때multi process가 유리하고, Context switching이 자주 일어고 데이터 공유가 빈번한 경우, 그리고 자원을 효율적으로 사용해야 되는 경우에는 multi thread를 사용하는 것이 유리하다.

 

비교하여 설명하라는 면접 질문이 나오면 위에 적은 내용 안에서 설명을 하면 된다.

 

 

 

1️⃣ Multi process & Multi thread

multi process대신 multi thread로 구현할 경우, 메모리 공간과 시스템 자원 소모가 줄어들게 된다.

 

하지만 multi thread를 사용할 때는 thread간 자원을 공유하기 때문에 동기화문제가 발생할 수 있고, 이를 고려한 프로그램 설계가 필요하다.

 

또한 process간의 통신(IPC)보다 thread간의 통신 비용이 적기 때문에 통신으로 인한 오버헤드가 적다.

 

 

  메모리 사용 / CPU 시간 Context switching 안전성
Multi Process 많은 메모리 공간 / CPU 시간 차지 느림 높음
Multi Thread 적은 메모리 공간 / CPU 시간 차지 빠름 낮음

 

 

 

🎁 참고자료 : chrome과 firefox의 차이(Multi Process vs multi Thread)

 

How web browsers use Processes and Threads

A process can be described as an application’s executing program. A thread is the one that lives inside of process and executes any part…

levelup.gitconnected.com

 

 

 

🚀 심화 면접 질문

 

Q2. multi threadmulti process보다 좋은 점은 무엇인가요?

 

A2.  multi process를 이용하던 작업을 multi thread로 구현할 경우, 메모리 공간과 시스템 자원 소모가 줄어들게 됩니다.

 

또한 process를 생성하고 자원을 할당하는 등의 system call을 생략할 수 있기 때문에 자원을 효율적으로 관리할 수 있습니다. 또한 Context switching캐시 메모리를 초기화할 필요가 없어서 속도가 빠릅니다.

 

데이터를 주고 받을 때를 비교해보면, process 간의 통신(IPC)보다 multi thread 간의 통신 비용이 적기 때문통신으로 인한 오버헤드가 적습니다.

 

 

Q3. multi thread multi process보다 안 좋은 점은 무엇인가요?

 

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