computer
IPC 기법: pipe / message queue / shared memory
유순이
2021. 6. 22. 00:21
Pipe
기본적으로 단방향 통신 (parent > child)
fork()
pid = fork() 부분에 pid 값이 부모와 자식이 다르다.
fd[1]에 parent는 write하면
fd[0]을 childe가 read한다.
Message Queue
FIFO 형식으로 데이터 전송
(key값이 동일하면)
mq는 두 프로세스가 부모/자식 관계가 아니라 어느 프로세스든 상관없다.
먼저 넣은 데이터가 먼저 읽혀진다.
또한 단방향 / 양방향 가능하다.
둘 다 kernel 공간의 메모리를 사용한다.
(메모리 공간도 user/kernel로 구분된다.)
Shared Memory
노골적으로 kernel 공간에 메모리를 만든다.
해당 공간을 변수처럼 사용한다.
mq와 같이 FIFO가 아니라, 해당 메모리 주소를 변수처럼 사용하는 방식
공유 메모리의 key를 가지고 여러 프로세스가 접근 가능하다.