Multi Process
하나의 응용프로그램(서비스)에서 다수의 프로세스를 실행하는 것
하나의 부모 프로세스는 자식 프로세스를 생성한다.(부모 - 자식 관계)
각 프로세스는 독립적인 메모리 공간을 사용하기 때문에, 하나의 프로세스에서 문제가 발생한 경우, 다른 프로세스에게 영향을 줄 가능성이 적다.
가령, 서버에서 동일한 서버 역할을 수행하는 프로세스를 다수 생성해서, 하나의 프로세스가 문제가 생겨도 다른 프로세스를 사용해서 서비스의 안정성을 확보한다.
Context Switching에 대한 오버헤드가 있다.(자원을 많이 사용)
Process 사이에서는 IPC(Inter Process Communication)를 통해 자원(메모리)을 공유한다.
Multi Thread
하나의 프로세스에서 다수의 스레드를 생성해 실행하는 것
하나의 프로세스에서 Context Switching이 없어 오버헤드가 적다(자원을 덜 사용)
하나의 프로세스의 메모리 공간을 사용하기 때문에 메모리 영역 자체를 공유한다.(IPC 보다 메모리 비용이 적다)
하나의 스레드에서 발생한 문제가 프로세스 전체에 영향을 줄 수 있다.
'CS > Operating System' 카테고리의 다른 글
| [Operating System] CPU Scheduling (0) | 2025.09.04 |
|---|---|
| [Operating System] 교착상태(Dead Lock) (0) | 2025.09.03 |
| [Operating System] Synchronize(동기화) (0) | 2025.09.02 |
| [Operating System] Process, Thread (0) | 2025.08.26 |
| [Operating System] 운영체제(OS) (0) | 2025.08.25 |