꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

시스템 프로그래밍

IPC 기법

gold_dragon 2021. 5. 7. 13:54

파이프 (pipe)

기본 파이프는 단방향 통신입니다. fork()로 자식 프로세스를 만들었을 때, 부모 프로세스에서 자식 프로세스로만 데이터를 보낼 수 있습니다.

메시지 큐 (message queue)

기본은 FIFO 정책으로 데이터가 전송됩니다. 먼저 들어온 데이터가 먼저 꺼내집니다.

 

파이프와 메시지 큐는 모두 kernel 공간의 메모리를 사용합니다.

공유 메모리 (shared memory)

kernel space에 메모리 공간을 만들고, 해당 공간을 변수처럼 쓰는 방식입니다. 메시지 큐처럼 FIFO 방식이 아닌 해당 메모리 주소를 마치 변수처럼 접근하는 방식입니다. 공유 메모리 key를 가지고, 여러 프로세스가 접근 가능합니다.