멀티 프로세스(Multi Process)
: 하나의 응용프로그램을 여러 개의 프로세스로 구성하며 여러 개의 프로세스가 협력하여 작업을 병렬처리 하는 것이다.
각 프로세스 간 메모리 구분이 필요하거나 독립된 주소 공간을 가져야 할 때 사용한다.
장점
- 독립된 구조이기 떄문에 안정성이 높다.
- 여러 프로세스 중 하나가 죽는다 해도 문제가 확산되지 않는다.
- 여러 개의 프로세스를 처리할 때 동일한 데이터를 사용하기 때문에 비용이 적게 든다.
단점
- 멀티 스레드보다 많은 메모리 공간과 CPU를 차지한다.
- 독립된 구조이기 때문에 작업량이 많을수록 오버헤드로 인한 성능 저하가 발생할 수 있다.
멀티 스레드(Multi Thread)
: 하나의 작업을 위해 프로세스에서 여러 스레드를 생성해 자원을 공유하며 작업을 나누어 수행하는 것이다.
장점
- 프로세스를 생성하여 자원을 할당하는 시스템 자원 소모가 감소하여 자원의 효율성이 증가한다.
- 스레드 간 작업량이 적어 context switching 이 빠르기 때문에 프로그램 응답시간이 단축된다.
- 프로세스 내 스택 영역을 제외한 메모리 영역을 공유하기 때문에 통신 비용이 적게 든다.
단점
- 자원을 공유하는 과정에서 동기화 문제가 발생할 수 있다.
- 하나의 스레드에 문제가 발생하면, 전체 프로세스에 영향을 미친다.
- 단일 프로세스 시스템의 경우 효과가 미미하다.
'CS 지식' 카테고리의 다른 글
동기(Synchronous)와 비동기(Asynchronous) (0) | 2023.02.06 |
---|---|
[운영체제] 스케줄러 (0) | 2023.02.05 |
프로세스(Process)와 스레드(Thread)의 차이 (0) | 2023.01.15 |
SQL 과 NoSQL 의 차이 (0) | 2023.01.08 |
교착상태(Dead Lock) (0) | 2023.01.08 |