IPC는 서로 다른 프로세스들이 데이터와 신호를 주고받기 위한 메커니즘이다.
프로세스는 메모리가 분리되어 있어서, IPC 없이는 안전하게 정보를 공유하거나 협업하기가 어렵다.
IPC의 대표적인 종류
공유 메모리

- 프로세스 간 메모리 영역을 공유해서 사용하는 방식
- 대량의 데이터를 다른 프로세스에게 공유할 때 유리
- IPC 중 가장 빠른 편
- 단, 여러 프로세스가 공유하여 사용하기 때문에 동기화 문제를 해결해야 함
파이프

- 두개의 프로세스를 연결
- 기본적으로 단방향 (양방향은 2개 사용)
익명 파이프
- 일반적인 파이프
- 통신할 프로세스가 명확하게 알 수 있는 경우 사용
- 부모 - 자식처럼 관계가 있는 프로세스
- 외부 프로세스에서 사용 불가
명명 파이프
- 이름이 있어서 서로 관계없는 프로세스도 같은 이름으로 통신 가능
- FIFO라는 특수 파일을 이용하여 서로 관련 없는 프로세스 간 통신에 사용
소켓

- 클라이언트와 서버가 소켓을 통해 통신하는 구조
- 원격에서 프로세스 간 데이터를 공유할 때 사용
- 양방향 통신 가능
메세지 큐

- 메세지를 저장하는 큐를 사용하여 통신
- 프로세스는 큐에 메세지를 보내거나 받을 수 있음
- 윈도우에서 실행되는 각 애플리케이션들은 자신만의 메세지 큐를 가지고 있음