IT/etc.

프로세스간 통신(IPC)

Huitopia 2023. 2. 21. 16:25
728x90

IPC(Inter Process Communication)

프로세스들 간의 의사소통하는 것을 IPC라고 한다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고 받을 수 있다는 것이다. 동시에 접근 가능한 메모리 즉, 프로세스들이 공유하는 메모리가 필요하다는 뜻이다. 프로세스간 통신이 서버-클라이언트 간 통신과 유사하기 때문에 인터넷 통신을 IPC의 확장으로 이해할 수 있다. 따라서 컴퓨터 내부에서 보다 효율적으로 정보를 주고 받기 위한 통신의 일종이라 생각하면 된다.

 

IPC의 종류 별 사용 시기 및 특징

IPC 종류 PIPE Named PIPE Message Queue Shared Memory Memory Map Socket
사용 시기 부모 자식 간 단방향 통신 시 다른 프로세스와 단방향 통신 시 다른 프로세스와 단방향 통신 시 다른 프로세스와 양방향 통신 시 다른 프로세스와 양방향 통신 시 다른 시스템간 양방향 통신 시
공유 매개체 파일 파일 메모리 메모리 파일+메모리 소켓
구조 FIFO 구조
생성된 PIPE에 대하여 Write 또는 Read만 가능
FIFO 구조
생성된 PIPE에 대하여 Write 또는 Read만 가능
FIFO 구조
msgtype에 따라 다른 구조체를 가져옴
일정한 크기의 메모리를 프로세스간 공유하며 공유 메모리는 커널에서 관리 열린 파일을 메모리에 맵핑시켜 공유하는 방식 네트워크 소켓을 이용하여 Client-Server 구조로 데이터 통신
통신 단위 Stream Stream 구조체 구조체 페이지 Stream
통신 방향 단방향 양방향 단방향 양방향 양방향 양방향
통신 가능 범위 동일 시스템 동일 시스템 동일 시스템 동일 시스템 동일 시스템 동일 + 외부 시스템
유의 사항 쌍방 통신을 위해 Write, Read용 PIPE를 각 하나씩 만들어야함 쌍방 통신을 위해 Write, Read용 PIPE를 각 하나씩 만들어야함 커널에 제공하는 Message Queue이기 때문에 EnQueue하는데 제한이 존재함 프로세스간의 상요하려면 메모리 크기가 동일 해야함 Write 시기는 프로세스의 페이지가 메로리에서만 내려갈 때 Write된다. 네트워크 프로그래밍이 가능해야 하며, 데이터 세그먼트 처리를 잘 해야함

 

 

참고링크

 

[프로세스간 통신] IPC(inter process communication) 종류

[프로세스간 통신] IPC(inter process communication) 종류 (Linux) 1. IPC의 종류 1) PIPE 2) Named PIPE 3) Message Queue 4) Shared Memory 5) Memory Map 6) socket 2. IPC 별 사용 시기 및 특징 IPC 종류 PIPE Named PIPE Mesage Queue Shared Mem

doitnow-man.tistory.com

 

 

[OS] 프로세스 간 통신 방법(Inter Process Communication, IPC)

개념 프로세스들 간의 의사소통하는 것을 IPC라고 한다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고 받을 수 있다는 것이며, 동시에 접근 가능한 메모리 즉, 프로세스

dar0m.tistory.com

 

728x90