반응형
멀티프로세싱(Multiprocessing)
  • 멀티프로세싱은 여러 개의 독립적인 프로세스(process)를 사용하여 작업을 동시에 수행하는 방식입니다. 
  • 프로세스는 운영체제로부터 자원을 할당받고, 독립적인 주소 공간을 가지며, 각각 독립적으로 실행됩니다. 
  • 각 프로세스는 하나 이상의 쓰레드를 가질 수 있습니다.

 

장점
  • 안정성: 각 프로세스는 독립된 주소 공간을 가지고 있으므로, 한 프로세스의 문제가 다른 프로세스에 영향을 주지 않습니다.
  • 병렬성: 여러 개의 프로세스가 동시에 작업을 수행하므로, 멀티코어 시스템에서 병렬적으로 작업을 처리할 수 있습니다.
  • 확장성: 멀티프로세싱은 여러 개의 프로세서 또는 다중 컴퓨터를 활용하여 작업을 분산시킬 수 있습니다.
단점
  • 자원 소모: 프로세스 간 통신 및 동기화를 위한 추가적인 자원이 필요합니다.
  • 성능 저하: 프로세스 간의 전환(context switching)에 따른 오버헤드가 발생할 수 있습니다.

멀티쓰레딩 (Multithreading)
  • 멀티쓰레딩은 하나의 프로세스 내에서 여러 개의 쓰레드(thread)를 생성하여 동시에 작업을 수행하는 방식입니다. 
  • 쓰레드는 하나의 프로세스 내에서 공유된 자원에 접근하며, 쓰레드 간의 통신과 동기화가 필요합니다.
장점
  • 자원 공유: 쓰레드는 하나의 프로세스 내에서 메모리 등 자원을 공유하므로, 데이터를 효율적으로 공유할 수 있습니다.
  • 응답성 향상: 쓰레드는 프로세스 내에서 생성되고 제거되는 데에 비용이 적으므로, 작업의 응답성을 향상시킬 수 있습니다.
  • 경제성: 쓰레드 간의 통신과 동기화에는 프로세스 간의 통신보다 적은 자원이 필요하므로, 자원 소모가 줄어들고 실행 속도가 향상될 수 있습니다.
단점
  • 안정성: 하나의 프로세스 내에서 쓰레드가 공유 자원에 접근하므로, 동기화 문제가 발생할 수 있습니다. 쓰레드 간의 경쟁 상태(race condition)나 교착 상태(deadlock) 등의 문제가 발생할 수 있습니다.
  • 예외 처리: 하나의 쓰레드에서 예외가 발생하면 프로세스 전체가 종료될 수 있습니다.
  • 확장성 제한: 멀티쓰레딩은 단일 프로세스 내에서 작업을 분산시키는 것이므로, 멀티프로세싱에 비해 시스템 전체의 자원을 활용하기 어렵습니다.

요약

멀티프로세싱은 여러 개의 독립적인 프로세스를 사용하여 병렬 작업을 수행하고, 멀티쓰레딩은 하나의 프로세스 내에서 여러 개의 쓰레드를 생성하여 동시에 작업을 수행합니다. 멀티프로세싱은 안정성과 확장성 측면에서 이점을 가지며, 멀티쓰레딩은 자원 공유와 응답성 향상을 강점으로 가지고 있지만 안정성과 예외 처리에 주의해야 합니다. 선택은 상황과 요구사항에 따라 결정되어야 합니다.

반응형

'Etc > Network' 카테고리의 다른 글

IIS(인터넷 정보 서비스)란?  (0) 2021.10.26
DMZ란?  (0) 2021.10.25
FTP란?  (0) 2021.10.23
포트(Port) 란?  (0) 2021.10.21
포트 포워딩이란?  (0) 2021.10.20

+ Recent posts