배경
프로세스 종류
- 독립적(independent): 아무런 데이터를 공유하지 않는 프로세스
- 협력적(cooperating): 다른 프로세스에게 영향을 주거나 or 받는 프로세스
- 즉, 데이터를 공유하고 있는 상황
- 이럴때 IPC(Inter-Process Communication)가 필요
IPC
- 정의: 협력적 프로세스간의 데이터를 교환하는 방법
- 종류: 2가지 모델이 존재
- 공유 메모리(shared memory)
- 메세지 패싱(message passing)
공유 메모리 | 메세지 패싱 |
![]() |
![]() |
정의: - 협력 프로세스 간 공유되는 메모리 공간을 통해 데이터를 교환하는 방식이다. - 협력 프로세스들은 해당 공간에 직접 접근하여 필요한 데이터를 읽고 쓰기가 가능하다 |
정의: - 협력 프로세스들이 OS(커널)을 통해 데이터를 교환하는 방식이다. - 협력 프로세스들은 메세지를 커널에 전달하고, 커널을 해당 메세지를 목적지 프로세스에 전달한다. |
- 장점: 중간 매개체 없이 직접 접근하기에 속도가 빠르다. - 단점: 여러 프로세스가 데이터에 동시에 접근하면 일관성 유지에 문제가 발생할 수 있음(동기화 문제) |
- 장점: OS(커널)이 데이터 교환 과정을 관리하기 때문에 여러 프로세스가 동시에 접근을 해도 문제가 발생하지 않는다. (동기화 문제x) - 단점: 모든 데이터 교환 과정에 OS(커널)이 간섭하기에 성능이 저하된다. |
'CS > 운영체제' 카테고리의 다른 글
[OS] CPU 스케줄링 (1) | 2024.09.02 |
---|---|
[OS] 스레드 (0) | 2024.09.02 |
[OS] 프로세스 구조, PCB와 Context Switching (1) | 2024.09.02 |
[OS] 시스템콜과 I/O인터럽트 (3) | 2024.09.02 |
[OS] 운영체제란 (0) | 2024.08.19 |