CS Study/운영체제
멀티 프로세스와 멀티 스레드
danalee252
2022. 5. 2. 20:32
멀티 프로세스란?
- 여러 개의 프로세서(CPU)가 하나의 작업을 동시에 처리하는 것이다.
- 프로세스 간 메모리 구분이 필요하거나 독립적인 주소공간이 필요할 때 사용한다.
- 독립된 공간을 사용하기 때문에 하나의 프로세스가 문제가 생겨도 다른 프로세스에 영향을 주지 않으므로 안전성이 높다.
- 독립된 공간을 사용하기 때문에 문맥교환(Context Switching) 이 많이 일어날 수 있고, 이로 인해 오버헤드가 발생하면 성능 저하로 이어질 수 있다.
멀티 스레드란?
- 하나의 프로세스를 여러 스레드로 나누어 자원을 공유하며 작업을 처리하는 것이다.
- 스택을 제외한 나머지 메모리 영역을 공유한다.
- 자원을 공유하고 스레드 간 데이터 공유가 가능하기 때문에 자원의 효율성이 좋다.
- 문맥교환(Context Switching)이 빠르다.
- 자원을 공유하기 때문에 동기화 문제가 발생할 수 있다.
- 하나의 스레드에 문제가 생기면 전체 프로세스에 영향이 미친다.
-> 각각의 장단이 있음으로 적용하는 시스템에 따라 적합한 동작 방식을 선택하고 적용해야 한다.