프로세스간의 통신 (IPC)
- Process들 간에 데이터 및 정보를 주고 받기 위한 Mechanism
- 메모리 단계를 넘어서 프로세스 간의 정보 교환을 효율적으로 구성
- Kernel에서 IPC를 위한 도구를 제공
- System Call의 형태로 프로세스에게 제공
- 필요성
- Process 협력 모델 (Cooperating Process Model) 구현
- 실행중인 프로세스는 협력하는 프로세스의 영향을 받음
- 데이터 교환을 위해 하드디스크에 쓰거나 읽는 작업을 줄이고, 메모리 기반의 빠른 데이터 교환을 가능하게 함
IPC Model : Shared Memory

- 프로세스의 특정 Memory 영역을 공유
- 실제 물리적 공간을 할당
- 메모리에 접근권한이 있는 것들은 꺼내갈 수 있음
- 공유한 Memory 영역에 읽기/쓰기를 통해서 통신을 수행
- 응용 프로그램 레벨에서 통신 가능
- 공유 메모리가 설정되면, 그 후 통신은 Kernel의 관여 없이 진행 가능
- 장점 : 빠른 속도, 커널 개입 최소화
- 단점 : 동기화 필요, 설정의 복잡성
- 구현 IPC : Shared Memory
- 데이터베이스에서 사용
IPC Model : Message Passing

- Process 간 메모리 공유없이 동작 가능
- 고정길이 메세지, 가변길이 메세지를 송/수신자끼리 주고 받음
- Kernel을 통한 메세지 통신 기능 제공
- 보안성과 안정성이 좋다.
- 클라이언트 - 서버 방식의 통신
- 구현 IPC
- Pipe
- Message Queue
- Socket : 프로세스가 물리적으로 다른 곳에 있다면 IP를 통해 전달