티스토리 뷰
멀티 프로세스
여러 개의 독립적인 프로세스가 동시에 실행되는 것을 말한다.
프로세스는 독립적인 메모리 공간을 할당받기 때문에 각 프로세스는 서로 다른 메모리 영역에서 작업을 한다.
이는 하나의 프로세스에서 발생하는 문제가 다른 프로세스에 영향을 미치지 않음을 의미한다.
- 장점
- 안정성: 하나의 프로세스에서 발생한 오류가 다른 프로세스에 영향을 미치지 않는다.
- 단점
- Context-Swtiching 비용: 프로세스 간에 컨텍스트 스위칭은 많은 비용을 발생시킨다. 프로세스는 독립된 메모리 영역이기 때문에 주소 공간의 공유가 잦을 경우 오버헤드 발생에 따른 성능 저하가 발생한다.
멀티 스레드
하나의 프로세스가 여러 작업을 동시에 수행할 수 있도록 한다.
하나의 프로세스에는 여러 개의 스레드가 존재하며, 프로세스가 할당된 메모리 영역을 공유한다.
- 장점
- 효율성: 스레드 간에 같은 프로세스의 자원을 공유하기 때문에, 자원을 효율적으로 사용할 수 있다.
- 응답성: 한 스레드가 긴 작업을 수행하고 있을 때, 다른 프로세스는 다른 작업을 수행할 수 있다.
- 단점
- 동기화 문제: 스레드들이 자원을 공유하기 때문에, 데이터의 일관성을 유지하기 위해서 추가적인 로직이 필요하다. 이는 종종 데드락과 레이스 컨디션 문제를 발새시킨다.
- 하나의 스레드에 오류가 발생하면, 이를 공유하는 다른 스레드 또한 모두 종료된다.