IPC (Inter Process Communication)
IPC의 종류
Same host
pipes, FIFOs, semaphores, shared memory
Different host
sockets
Communication
process1 -> channel(Same host) -> process3
pipe = 하나의 프로세스로부터 데이터 흐름을 다른 프로세스로 연결
한프로세스의 출력을 다른 프로세스의 입력으로 붙이거나 파이프로 연결
파이프 함수는 호출자가 순차적으로 생성된 파일 디스크립터를 통해 접근할수 있는 통신 버퍼 생성
Shared memory = 여러 프로세스들이 동일 메모리영역에서 읽고 쓸 수 있도록 제공
연관이 없는 프로세스들이 동일 물리적 메모리에 액세스
동기화 기능이 없어서 공유메모리에 대한 액세스를 동기화 해야함
Message Queue = 다른 프로세스들 간에 메시지를 주고받을 수 있는 IPC 메커니즘
파이프를 열고 닫을 필요가 없고, 송신프로세스, 수신프로세스에 대해 독립적으로 존재
부모-자식간은 Pipe 다른 부모-자식은 나머지것들
dup = copy fdp dup2 = change fdp
FIFO = open을 통해서 연 뒤 READ, WRITE로 FIFO에 액세스, 권한이 있음
mkfifo = Make FIFO file
unlink = REMOVE FIFO
Shared Memory
연관이 없는 두 프로세스가 동일 메모리에 액세스
read/write로 프로세스간 데이터를 주고받음
get key(ftok) -> get SM id(shmget) -> get start address(shmat) -> read/write -> free(remove)(shmdt) -> ipcrm(remove SM)(shmctl)
'SW > LINUX' 카테고리의 다른 글
Server & Client (0) | 2017.09.05 |
---|---|
NETWORK (네트워크) (0) | 2017.09.05 |
GDB (0) | 2017.09.05 |
버전관리, SVN (0) | 2017.09.05 |
GCC compiler (내부 매크로, Makefile) (0) | 2017.09.05 |