간단한 IT 지식

[오늘의 지식] IPC (Inter Process Communication)

Sh_Blog 2024. 2. 26. 11:39

1. IPC 란?

다른 프로세스끼리 통신하고 데이터를 교환할 수 있게 해주는 기술이다.

 

2. IPC를 왜 사용할까?

프로세는 생성될 때 메모리 공간 등을 복사하여 별도의 자원을 할당하기 때문에

기본적으로 독립적인 메모리 공간을 가지고 있다.

 

따라서 프로세스는 직접적으로 다른 프로세스에 접근할 수 없는데 

IPC는 프로세스 간의 데이터 공유를 가능하게 해준다.

 

결론은 독립적인 프로세스의 정보들을 서로 공유할 수 있게 해주는 기술이 IPC다.

 

3. IPC의 종류

- 공유 메모리(Shared Memory)

여러 프로세스가 메모리 영역으로 공유하여 데이터를 읽고 쓰는 기술

데이터를 복사하지 않아도 되서 빠른 접근이 가능하지만 충돌로 인한 오류 방지 동기화 메커니즘이 필요하다.

 

- 메시지 큐(Message Queue)

메시지 큐나 통신 채널과 같은 중간 매체를 통해 프로세스 정보를 보내는 기술

메시지의 발신자가 수신을 확인하는 동기식,

메시지의 발신자가 수신을 확인하지 않는 비동기식이 있다.

 

- 파이프(Pipe)

한 프로세스의 출력은 다른 프로세스의 입력에 직접 연결하는 단방향 통신 채널(FIFO)

 

- 소켓(Sockets)

네트워크 통신 뿐만 아니라 컴퓨터 시스템 내에서도 프로세스의 통신이 가능하게 해주는 기술

 

- 시그널(Signals)

프로세스간의 이벤트 알림이나 예외 처리를 위한 방법

Kill 시스템 사용

 

- 원격 프로시저 호출(RPC)

원격 시스템에서 함수나 프로시저를 호출할 수 있는 기술

RPC는 IPC의 세부 정보를 숨겨 분산 애플리케이션 작성을 쉽게 해준다.