프로세스와 쓰레드의 정의와 차이
멀티 프로세스와 멀티 쓰레드
<출처: https://im-yeobi.io/posts/os/001-process-thread/>
<출처: https://im-yeobi.io/posts/os/001-process-thread/>
장점:
- 여러 개의 프로세스 중 하나에 문제가 발생할 때 문제가 발생한 프로세스 외에 다른 프로세스에는 문제가 발생하지 않음.
단점:
- 프로세스는 독립된 메모리 영역을 할당받기 때문에 프로세스 간 공유하는 메모리가 없음.
- 그렇기 때문에 Context Switching(빠른 속도로 Task를 바꿔 가며 실행하는 것)가 발생할 경우 캐쉬에 있는 모든 데이터를 리셋하고 다시 캐쉬 정보를 불러와야 함.
장점:
- 자원 효율성 증대: 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원의 효율성 증대
- 시스템 처리 속도 빠름: 프로세스에 비해 쓰레드 간의 데이터를 주고받는 것이 간단하여 시스템 처리가 빠름
단점
- 단일 프로세스을 사용하는 경우 좋은 효과를 기대하기 어려움
- 자원 공유 시 발생하는 문제가 있음
- 하나의 쓰레드에서 문제가 발생하면 전체 프로세스가 영향을 받음.