파이프

출처: https://blog.naver.com/akj61300/80130589983
- 기본 파이프는 단방향 통신
- fork()로 자식 프로세스 만들었을 때, 부모와 자식간의 통신
메세지 큐

출처:https://heo-seongil.tistory.com/73
msqid = msgget(key, msgflg)
msgsnd(msqid, &sbuf, buf_length, IPC_NOWAIT)
msqid = msgget(key, msgflg)
msgrcv(msqid, &sbuf, MSGZ, 1, 0)
- key를 같게해 큐값을 맞추고
- msgsnd로 보내고
- msgrcv로 받음
파이프와 메세지큐 비교
- 메세지 큐는 어느 프로세스간에라도 데이터 송수신 가능
- 파이프는 부모 자식 관계에서만 사용 가능
- FIFO구조
- 메세지 큐는 양방향 송수신 가능
- 파이프는 단방향 통신만 가능
파이프, 메세지큐는 커널 공간의 메모리 사용
공유 메모리(shared memory)
- 노골적으로 커널공간에 메모리 공간 만들고 변수처럼 사용
- 변수처럼 사용하기 때문에 FIFO방식이 아님
- 생성된 메모리의 key를 가지고 여러 프로세스가 접근 가능함