정의
여러 개의 쓰레드가 각자 하나의 작업(task)을 맡아 처리하는 것
목적 및 특징
장점
단점
단점 극복 방법
예시
비교군과의 차이
Multi Processing
- 멀티 프로세싱
- Context Switching이 발생하면 캐시에 존재하는 모든 데이터를 리셋 하고 다시 캐시 정보를 불러와야한다. 즉 Context Switching의 오버헤드(overhead)가 커서 비용이 크다.
- 프로세스간의 통신에 복잡한 IPC를 사용하여 통신해야 한다.
- 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스에만 이상이 생기고 다른 프로세스에는 영향을 주지 않는 장점도 존재한다.
- 멀티 쓰레딩
- 시스템 자원 소모가 감소한다. 프로세스를 생성하는 system call이 줄어들어 자원을 효율적으로 관리할 수 있다.
- 시스템 처리량(Througput)이 증가한다. concurrency와 parallelism을 얻을 수 있기 때문에 효율적이다.
- 프로세스 내의 Data, Code, Heap 영역을 공유하기 때문에 쓰레드 간의 통신이 간단하다.
- 쓰레드 간의 자원을 공유하기 때문에 동기화 문제(Synchronize problem)가 발생할 수 있다.
- 디버깅이 까다롭다.
- 하나의 쓰레드에 문제가 발생하면 전체 프로세스에 영향을 준다.
질문
출처