IPC 선택 비교표

IPC 선택 기준

프로세스가 독립된 주소 공간을 갖는다는 전제를 유지하면서, 복사 비용, 메시지 경계, 동기화 책임, 종료 신호를 기준으로 통신 방식을 좁힙니다.

pipe()

단방향 바이트 스트림

부모-자식 사이에서 stdout을 넘길 때 단순하며, writer를 닫아야 EOF가 전달됩니다.

msg queue

명령 단위 보존

작은 명령을 send/receive 단위로 처리하고, 큐 포화와 우선순위 정책을 함께 봅니다.

shm/mmap

대용량 복사 회피

공유 메모리는 빠르지만 mutex, semaphore, futex 같은 동기화가 없으면 데이터 경쟁이 납니다.

signal

비동기 사건 알림

SIGTERM, SIGCHLD처럼 짧은 알림에 쓰며 handler 안에서는 async-signal-safe 호출만 둡니다.

AF_UNIX

양방향 요청 응답

로컬 서비스 간 RPC에는 Unix 도메인 소켓이 맞고, EPIPE와 ECONNRESET을 실패 신호로 다룹니다.

복사량·경계·동기화

큰 버퍼를 계속 복사하면 shared memory를 검토하고, 메시지 경계가 깨지면 queue나 datagram socket을 검토합니다. 공유 메모리에서 락 설계가 없으면 IPC 선택이 아직 끝난 것이 아닙니다.