토픽 22 / 85·프로세스 동기화와 교착상태
메시지 큐 / 파이프 / 소켓
메시지 큐 / 파이프 / 소켓
프로세스 간 데이터를 교환하는 대표적 IPC 메커니즘으로, 각각 데이터 전달 방식과 범위가 다름
파이프(Pipe)
- •익명 파이프: pipe() 시스템 콜, 부모-자식 간 단방향 바이트 스트림, fd[0](읽기)/fd[1](쓰기)
- •명명 파이프(FIFO): mkfifo()로 파일시스템에 생성, 관계없는 프로세스 간 통신 가능
- •특징: 단방향(양방향 시 2개), FIFO 순서, 자동 동기화(버퍼 풀/엠프티 시 블로킹)
메시지 큐(Message Queue)
- •System V: msgget(생성) → msgsnd(송신) → msgrcv(수신, 타입별 선택적) → msgctl(제어)
- •POSIX: mq_open/mq_send/mq_receive, 더 현대적 API
- •특징: 메시지 단위(경계 보존), 우선순위 지원(타입별 수신), 양방향, 비동기 가능
소켓(Socket)
- •Unix Domain Socket: 로컬 전용, 파일시스템 경로 식별, 네트워크 스택 우회, 빠름
- •Internet Socket: IP+Port, TCP(SOCK_STREAM, 신뢰)/UDP(SOCK_DGRAM, 비신뢰)
- •특징: 양방향(Full-Duplex), 로컬+원격, 이기종 시스템, 가장 범용적
비교 표
연관: IPC, 프로세스 간 통신, 공유 메모리, 세마포어, TCP/UDP